MP-APS
Ein moderner OpenGL 3D -Rendering -Motor. Die Idee dahinter ist, sehr einfach zu verwenden: Keine seltsamen Abstraktionsschichten, verjüngende Variablennamen oder massive Zeilenklassen von mehr als 2000. Es ist in erster Linie ein Spielplatz für mich, um verschiedene Grafikprogrammierungstechniken zu implementieren (oder zumindest zu versuchen: P). Der Fortschritt war nur langsam, seit ich Vollzeit-Univesity-Studien, Arbeiten und versuche, körperlich aktiv zu sein. Schließlich möchte ich eine "szenenbasierte" Engine erstellen, in der Sie einige Modell (en) laden, einige ausgefallene Lichter hinzufügen und diese praktisch erkunden können.
Kompilieren
Ubuntu (und ähnlich)
bash install-deps-ubuntu.sh
make
cd build/
./MP-APS
Screenshots
Anti-Aliased Wire-Rahmen-Rendering: 
Physisch basiertes Rendering: 

Bildbasierte Beleuchtung (IBL): 
Blühen: 
(Alte Version) CPU-basierte Geländegenerierung mit Perlin-Rauschen: 
Merkmale
- Belastung für Anneigungsmodell.
- Nachverarbeitung (HDR, Vibrance, Blüte).
- Parallele Aabb Frustum Culling.
- XML Engine -Konfiguration.
- Unterstützung für
#include -Richtlinien in Shaders. - Shader-basiertes Wireframe-Overlay.
- Physisch basiertes Rendering.
Wip
- Varianzschattenzuordnung (weiche Schatten).
- Tiefenbufferoptimierung (https://outerra.blogspot.ca/2012/11/maximizingdepth-buffer-range-and.html).
Roadmap
- Shadow Volumes (http://www.alexandre-pestana.com/volumetric-lights/, https://www.slideshare.net/benjaminglatzel/volumetric-lighting-for-many-lights-lords-the-fallen).
- Pro-materielle Array-Texturen:
- (https://www.gamev.net/forums/topic/662654-best-practise-texture-atlas-38-vbo/?do=findCompment&comment=5191703)
- (https://www.khronos.org/opengl/wiki/array_texture)
- Neu implementieren vorwärts+.
- Weitere Nachbearbeitungseffekte:
- Fxaa (http://blog.simonrodriguez.fr/articles/30-07-2016_implementing_fxaa.html).
- Chromatische Aberration (https://gaMedev.stackexchange.com/a/58412/74957).
- Wechseln Sie zu Samplerobjekten.
- Eine Art GUI.
- Atmosphärische Streuung: (https://github.com/korgan00/tfg-atmospheric-scattering) oder (https://ebruneton.github.io/precomputed_atmospheric_Scattering/)
Rohrträume
- CDLOD -Gelände.
- Planetary Rendering.
- Globale Beleuchtung (kaskadierte Lichtbände).
Code von Drittanbietern
- Annahme.
- GLM.
- FROH.
- GLFW.
- STB_IMAGE.
- Pugixml.
- GLM AABB Wrapper: (https://github.com/iauns/cpm-glm-aabb).
Forschung verwendet
- Schnelle Extraktion von Frustum-Flugzeugen aus der Welt-View-Projection-Matrix (http://www.cs.ootago.ac.nz/postgrads/alexis/planeextraction.pdf). Gribb, Hartman (2001).
- Vorwärts+: Aufgeschobene Beleuchtung auf die nächste Ebene bringen (https://takahiroharada.files.wordpress.com/2015/04/forward_plus.pdf). Harada, McKee, Yang (2012).
- Solid Wirmrame (http://developer.download.nvidia.com/sdk/10/direct3d/source/solidwireframe/doc/solidwireframe.pdf). Nvidia (2007).
- Physikalisch basiertes Rendering (https://learnopengl.com/#!pbr/ibl/specular-ibl)
- Varianzschatten -Mapping (http://developer.download.nvidia.com/sdk/10.5/direct3d/source/varianceshadowmaping/doc/varianceshadowmapping.pdf)
- Tessellated Terrain Rendering mit dynamischem LOD (http://victorbush.com/2015/01/tessellated-terrain/)