Облака

Моделирую новую тестовую сцену для Dagon. Добавил простейшие облака – две плоскости со скроллящимися текстурами и динамически рассчитываемым цветом в зависимости от положения солнца:

Анимированные модели в Dagon/gl33

Портировал загрузчик формата IQM и реализовал рендеринг анимированных мешей:

Осталось только переписать систему частиц, и ветку gl33 можно будет сделать основной.

Объемные источники света в Dagon/gl33

Добавил в стандартный шейдер поддержку spherical area lights – сферических объемных источников света:

Прогресс по Dagon/gl33

В ветке gl33 реализован кластерный рендеринг и шейдер неба. Добавлена оптимизация кластерного рендеринга, заключающаяся в том, чтобы хранить позиции источников света в world-space и не обновлять буферы, если источники света на сцене не меняются.

Dagon 0.4.0 и прогресс по gl33

Выпустил новую версию Dagon – 0.4.0. Основное нововведение релиза – встроенные каскадные тени на основе массива текстур (поддержка обычных теневых карт удалена). Исправлен баг с parallax mapping, из-за которого сдвиг текстурных координат происходил для всех материалов, даже тех, которые не используют эту технику. Кроме того, появилась возможность отключать динамическии рассчитываемый цвет неба/фона. Движок теперь использует OpenGL 2.1.

Это последняя версия Dagon, использующая старый OpenGL – дальнейшая разработка будет сосредоточена на ветке gl33. Новый Dagon будет максимально совместим со старым, но будет несколько косметических изменений в некоторых интерфейсах. Картинка останется неизменной, все шейдеры напрямую портируются из старой кодовой базы.

В ветке gl33, между тем, реализованы вывод текста, постобработка, рендеринг теней, добавлен стандартный бэкенд материала BlinnPhongBackend, в котором реализованы normal mapping и parallax occlusion mapping. Демка ветки приближается по графике к сцене First Person из стандартного демонстрационного приложения Dagon.