Symulator EU07 (i nie tylko) > Na warsztacie
Zabawy z OpenGL 3.2/3.3+
ShaXbee:
Zrodelka: https://github.com/shaxbee/maszyna-client
Instrukcja kompilacji:
* Pobierz zrodla z repo
* Zainstaluj Microsoft Visual Studio Express 2013
* Zainstaluj CMake
* Uruchom CMake, ustaw 'source directory' na katalog do ktorego sciagnales repo, a 'build directory' na nowy, czysty katalog
* Kliknij Configure/Generate i wybierz opcje Microsoft Visual Studio 2013
* Otworz wygenerowany projekt visual studio z katalgu ustawionego wczesniej w 'build directory'
* Dobry kompresor/dekompresor tekstur - https://code.google.com/p/crunch/
* Realistyczna przezroczystosc bez sortowania trojkatow - http://jcgt.org/published/0002/02/09/paper.pdf / https://software.intel.com/sites/default/files/m/1/2/a/5/7/37944-adaptive_transparency_hpg11.pdf
* Optymalizacja indeksow wierzcholkow - https://home.comcast.net/~tom_forsyth/papers/fast_vert_cache_opt.html
* Nowoczesna biblioteka do konfiguracji okien i opengl - http://www.glfw.org/
* Binarne wiadomosci bez narzutu deserializacji - http://kentonv.github.io/capnproto lub https://github.com/google/flatbuffers
* Komunikacja sieciowa jako kolejki wiadomosci - http://zeromq.org/
* Programowanie w OpenGL 3.2+ - http://www.tomdalling.com/blog/modern-opengl/
* Biblioteka do operacji na macierzach i kwaternionach - https://github.com/g-truc/glm
Build:
* Obsluga zewnetrznych bibliotek w CMake: http://stackoverflow.com/questions/9689183/cmake-googletest
OpenGL:
* Minimalna wersja OpenGL 3.2
* Wyswietlanie tylko GL_TRIANGLE
* Modele w formacie binarnym, optymalizacja modeli offline
* Geometry instancing dla powtarzalnych obiektow
* Frustrum culling / system czasteczkowy na GPU przy uzyciu transform feedback
* glMultiDrawArraysIndirect - renderowanie wielu obiektow przy uzyciu jednego wywolania
* Aliasy do tekstur - binding tekstur dla wielu submodeli jednoczesnie (do 32 jednoczesnie)
ShaXbee:
Na dzien dzisiejszy mam przygotowany szkielet z wymaganymi zaleznosciami na https://github.com/shaxbee/maszyna-client. Poki co kompiluje sie na Macu i Linuxie.
Tworzenie okna i inicjalizacja kontekstu jest robiona przy pomocy GLFW, rozszerzenia OpenGL sa ladowane przy pomocy GLEW, dodatkowo dorzucilem googlemock / googletest do unit testow.
Mam gotowa integracje flatbuffers (binarna serializacja/deserializacja) na osobnym repo wiec niedlugo zaczne pisac prosty loader modeli i renderer.
Sawi:
@ShaX jako, że nie znam się na programowaniu zapytam otwarcie, jakich wad i zalet (opis dla laika) można się spodziewać po wykonaniu tej implementacji?
ShaXbee:
To jest poki co tylko zbior luznych pomyslow.
Chcialbym zeby renderer nie mial artefaktow przy renderowaniu przezroczystosci, wprowadzic lepsze oswietlenie i umozliwic szybkie i latwe wyswietlanie duzej ilosci powtarzalnych obiektow (drzewa, trawa, ogrodzenia etc.).
Edit:
@Ra: Dodalem wstepna definicje binarnego formatu modeli: https://github.com/shaxbee/maszyna-client/blob/master/client/schema/model.fbs - masz pomysl co warto tam jeszcze dodac?
@Q: Jakies postepy z kompilacja pod windowsem?
Ra:
Mi to nic nie mówi, poza tym nie mam czasu na takie rzeczy.
Nawigacja
[#] Następna strona
Idź do wersji pełnej