среда, 20 сентября 2017 г.

Облака

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


вторник, 19 сентября 2017 г.

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

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


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

понедельник, 18 сентября 2017 г.

суббота, 16 сентября 2017 г.

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

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


четверг, 14 сентября 2017 г.

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.

среда, 13 сентября 2017 г.

Dagon + OpenGL 3.3

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

четверг, 7 сентября 2017 г.

Dagon 0.3.0

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


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

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

среда, 6 сентября 2017 г.

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

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

Сверточные фильтры в dlib с выводом в QtE

Очередной замечательный материал по dlib от LightHouse Software - продолжение серии статей по обработке изображений в dlib.

От автора:
"В этой статье мы попытаемся подружить QtE5 и dlib, сделав несложный и удобный интерфейс для накладывания фильтров на изображения, оставив при этом возможность для пользователя добавлять свои фильтры".

http://lhs-blog.info/programming/dlang/digital-filters

вторник, 5 сентября 2017 г.

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

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

Скачать для Windows