MP-APS
Un moteur de rendu 3D OpenGL moderne. L'idée derrière elle est pour être très simple à utiliser: pas de couches d'abstraction étranges, de noms de variables janky ou de classes de ligne de 2000+ massives. C'est principalement une aire de jeux pour moi de mettre en œuvre (ou du moins d'essayer: P) différentes techniques de programmation graphique. Les progrès ont été lents depuis que je jongle avec des études d'unives à temps plein, le travail et l'essai d'être physiquement actif. Finalement, je veux créer un moteur "basé sur une scène", où vous pouvez charger des modèles, ajouter des lumières fantaisistes et l'explorer pratiquement.
Compilation
Ubuntu (et similaire)
bash install-deps-ubuntu.sh
make
cd build/
./MP-APS
Captures d'écran
Rendu filaire anti-aliasé: 
Rendu physiquement: 

Éclairage basé sur l'image (IBL): 
Floraison: 
(Old Version) Génération de terrains basée sur le processeur en utilisant Perlin Noise: 
Caractéristiques
- Chargement du modèle Asimp.
- Post-traitement (HDR, vibrance, floraison).
- Amélioration parallèle AABB Frustum.
- Configuration du moteur XML.
- Prise en charge des directives
#include dans les shaders. - Superposition wireframe à base de shader.
- Rendu physiquement basé.
Vider
- Mappage de l'ombre de variance (ombres douces).
- Optimisation de profondeur-Buffer (https://outerra.blogspot.ca/2012/11/maximisation-depth-buffer-range-and.html).
Feuille de route
- Falle des volumes (http://www.alexandre-pestana.com/volumetric-lights/, https://www.slideshare.net/benjaminglatzel/volumetric-lighting-for-many-lights-infords-of-the-fallen).
- Textures par tableau par matériau:
- (https://www.gamedv.net/forums/topic/662654-best-pracse-texture-atlas-38-vbo/?do=FindComment&comment=5191703)
- (https://www.khronos.org/opengl/wiki/Array_Texture)
- Remplémentation vers l'avant +.
- Plus d'effets post-traitement:
- Fxaa (http://blog.simonrodriguez.fr/articles/30-07-2016_implementing_fxaa.html).
- Aberration chromatique (https://gamedv.stackexchange.com/a/58412/74957).
- Passez aux objets d'échantillonneur.
- Une sorte de GUI.
- Dispersion atmosphérique: (https://github.com/korgan00/tfg-atmosphérique-scattering) ou (https://ebruneton.github.io/precomputed_atmosphérique_scattering/)
Raboteur
- Terrain Cdlod.
- Rendu planétaire.
- Éclairage mondial (volumes de propagation de la lumière en cascade).
Code tiers
- Assimp.
- GLM.
- CONTENT.
- Glfw.
- STB_IMAGE.
- pugixml.
- GLM AABB Wrapper: (https://github.com/iaUns/CPM-GLM-AABB).
Recherche utilisée
- Extraction rapide de la visualisation des plans de frustum de la matrice du monde-visualité-projection (http://www.cs.otago.ac.nz/postgrads/alexis/planeextraction.pdf). Gribb, Hartman (2001).
- Forward +: amener l'éclairage différé au niveau suivant (https://takahiroharada.files.wordpress.com/2015/04/forward_plus.pdf). Harada, McKee, Yang (2012).
- Wireframe solide (http://developer.download.nvidia.com/sdk/10/direct3d/source/solidwireframe/doc/solidwireframe.pdf). Nvidia (2007).
- Rendu physiquement basé (https://learnopenngl.com/#!pbr/ibl/specular-ibl)
- Mapping Shadow de variance (http://developer.download.nvidia.com/sdk/10.5/direct3d/source/varianqueshadowmapping/doc/variancheshadowmapping.pdf)
- Tessellated Terrain Rendering with Dynamic Lod (http://victorbush.com/2015/01/tessellated-terrain/)