dagon
Освещение частиц
Работаю над освещением частиц:
Используется процедурная сферическая карта нормалей – то есть, каждый биллборд системы частиц интерпретируется пиксельным шейдером как виртуальная сфера. Планируются и пользовательские карты нормалей.
Тени от частиц
Реализовано путем отброса пикселей с прозрачностью ниже порогового значения при рендеринге частиц в теневую карту. Конечно, такая техника не позволяет рендерить прозрачные тени от дыма, но и такой результат все же лучше, чем полное отсутствие теней или, тем более, тени в виде квадратиков.
Карты окружения в отложенном рендере
В ближайшее время планирую реализовать поддержку кубических карт с полноценным интегрированием Монте-Карло (сейчас используются равнопромежуточные карты с простым box-фильтром, формируемые стандартным mip-генератором OpenGL, что, конечно, дает достаточно далекий от физически корректного результат, хотя и визуально приемлемый). Также обдумываю вариант загрузки кубической карты из файла DDS, что позволяет строить мип-уровни в сторонних утилитах типа CubeMapGen.
Dagon 0.8.0. Deferred Shading на подходе
Вскрылись проблемы с работой движка под macOS – поскольку у меня нет возможности тестировать его под этой ОС, поддержка Mac отныне не гарантирована. Но буду благодарен, если кто-то исследует эту проблему и предложит решение.
Одновременно я начал работу над поддержкой отложенного освещения и уже добился результата. Заодно реализовал SSAO, мягкие частицы и улучшил функцию неба, что заметно на высоких значениях шероховатости.
Скорее всего, отложенный рендер полностью заменит кластерный. Для прозрачных объектов я планирую ввести классический прямой метод освещения с отбором ближайших к объекту источников света.