MP-APS
Современный двигатель рендеринга OpenGL 3D. Идея, лежащая в основе этого, состоит в том, чтобы быть очень простым в использовании: никаких странных слоев абстракции, имен переменных, или массивных классов Line 2000+. Для меня это в первую очередь игровая площадка, чтобы внедрить (или, по крайней мере, попробовать: P) различные методы графического программирования. Прогресс был медленным с тех пор, как я жонглировал штатными исследованиями, работами и стараюсь быть физически активным. В конце концов, я хочу создать двигатель «на основе сцены», где вы можете загрузить некоторые модели, добавить несколько причудливых огней и практически исследовать его.
Компиляция
Ubuntu (и аналогично)
bash install-deps-ubuntu.sh
make
cd build/
./MP-APS
Скриншоты
Антиолизированный каркасный рендеринг: 
Физически основанный рендеринг: 

Освещение на основе изображений (IBL): 
Цвести: 
(Старая версия) Генерация местности на основе процессора с использованием шума Перлина: 
Функции
- Загрузка модели Assimp.
- После обработки (HDR, Vibrance, Bloom).
- Параллельный aabb frustum отбор.
- Конфигурация двигателя XML.
- Поддержка директив
#include в шейдерах. - Основательное наложение каркасов на основе шейдера.
- Физически основанный рендеринг.
Пари
- Дисперсия картирования тени (мягкие тени).
- Оптимизация глубины (https://outerra.blogspot.ca/2012/11/maximizing-depth-buffer-range-and.html).
Дорожная карта
- Теневые объемы (http://www.alexandre-pestana.com/volumetric-lights/, https://www.slideshare.net/benjaminglatzel/volumetric-lighting-for-many-lights-in-holors-of-the-fallen).
- Текстуры массива для материала:
- (https://www.gamedev.net/forums/topic/662654-best-practise-texture-atlas-38-vbo/?do=findcomment&comment=5191703)
- (https://www.kronos.org/opengl/wiki/array_texture)
- Переосмысление вперед+.
- Больше эффектов постобработки:
- FXAA (http://blog.simonrodriguez.fr/articles/30-07-2016_implementing_fxaa.html).
- Хроматическая аберрация (https://gamedev.stackexchange.com/a/58412/74957).
- Переключитесь на объекты Sampler.
- Какой -то графический интерфейс.
- Атмосферное рассеяние: (https://github.com/korgan00/tfg-atmoshererce-cashatting) или (https://ebruneton.github.io/precomputer_atmosheric_scateing/)
Трубопровод
- CDLOD LERAN.
- Планетарный рендеринг.
- Глобальное освещение (объемы распространения каскадного света).
Сторонний код
- Ассимп.
- GLM.
- РАДОСТНЫЙ.
- GLFW.
- stb_image.
- Pugixml.
- GLM AABB Обертка: (https://github.com/iauns/cpm-glm-aabb).
Исследование использовалось
- Быстрое извлечение просмотра плоскостей Frustum из матрицы мировоззрения-прозрака (http://www.cs.otago.ac.nz/postgrads/alexis/planeextraction.pdf). Грибб, Хартман (2001).
- Вперед+: выдвижение отложенного освещения на следующий уровень (https://takahiroharada.files.wordpress.com/2015/04/forward_plus.pdf). Харада, Макки, Ян (2012).
- Сплошной каркас (http://developer.download.nvidia.com/sdk/10/direct3d/source/solidwireframe/doc/solidwireframe.pdf). Nvidia (2007).
- Физически основанный рендеринг (https://learnopengl.com/#!pbr/ibl/specular-ibl)
- Сопоставление тени (http://developer.download.nvidia.com/sdk/10.5/direct3d/source/viarseshadowmapping/doc/varianceShadowpaping.pdf)
- Тесселляционный рендеринг с динамическим LOD (http://victorbush.com/2015/01/tessellated-terrain/)