Dagon + OpenGL 3.3

Рано или поздно я должен был перейти на современный OpenGL, и этот “час X” наступил. Поводом стали вскрывшиеся проблемы с расширением GL_EXT_gpu_shader4 для старых версий OpenGL на видеокартах AMD и Intel (плохо не иметь много разных конфигураций для тестов!). Решив больше не мучаться с расширениями в попытках сохранить совместимость с железом эпохи OpenGL 2.x, я начал портировать Dagon на OpenGL 3.3 core profile. Переход оказался не слишком сложным – движок почти не использует устаревшую функциональность и по архитектуре неплохо вписывается в современные версии стандарта. Разработка порта ведется в отдельной ветке – gl33. На данный момент готовы рендеринг статических мешей и загрузка текстур, а также заготовка для стандартных бэкендов материалов.

Dagon 0.3.0

Выпустил новую версию Dagon – 0.3.0. Главное нововведение релиза – поддержка кластерного рендеринга, а также эффектов постобрабоки (реализованы FXAA и lens distortion). Кроме того, появился шейдер неба.

Соответственно, обновлена демка – улучшен пример движка от первого лица, куда добавлены почти все фичи Dagon. Скачать ее можно тут.

Осталось реализовать PBR-материалы и поддержку формата DGL3 (хотя, скорее всего, я сделаю новый формат для хранения сцен, с учетом всех возможностей Dagon).

Динамическое небо

Экспериментирую с шейдером неба и солнца. Используется простая модель с линейной интерполяцией – полноценный физически корректный Rayleigh мне показался слишком тяжелым для реалтайма.

Кластерный рендеринг – обновленная демка

Доступна обновленная демонстрация clustered forward shading в Dagon. Повышена плотность кластеров, добавлена поддержка normal mapping и parallax mapping, а вместо бликов по Фонгу теперь используется модель Кука-Торренса.

Скачать для Windows

Кластерный рендеринг – демка

Доступна демка кластерного рендеринга на основе Dagon:

Скачать для Windows