PBR

Начал работу над PBR-шейдером:

Dagon — обновленная демка

Как и обещал, выкладываю демку Dagon 0.5.0: релиз на GitHub. Есть готовые сборки для 32- и 64-битной Windows.

Пока пришлось отказаться от разделения на сцены с переключением через меню (теперь все, что демонстрировалось в отдельных сценах, объединено в одну), но в будущем я постараюсь это вернуть.

Dagon 0.5.0

Портирование Dagon на OpenGL 3.3 наконец-то завершено — я решил ознаменовать это новым релизом. В данной версии, помимо общего рефакторинга многих компонентов движка, улучшены встроенные шейдеры, стабилизирован движок кластерного освещения, добавлены сферические источники света. Dagon все еще не вполне готов для перевода на него Atrium, но работа проведена колоссальная, и цель уже близка.

В ближайшее время ждите обновленную демку.

Ландшафт

Ландшафт с автоматическим мультитекстурированием и тенями:

Облака

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

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

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

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

Прогресс по 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.