Пост-обработка в Dagon теперь стала намного проще — все встроенные фильтры легко включаются/выключаются и настраиваются при помощи специального API, являющегося частью класса BaseScene3D. Есть и возможность добавлять свои фильтры.
dagon
Тени с учетом карты высот
vec4 shadowCoord = shadowMatrix * vec4(eyePosition + eyeNormal * height * 0.3, 1.0);
Таким образом, мы создаем фейковую точку, расположенную выше реальной поверхности, и тень для нее будет рассчитываться как если бы поверхность была действительно рельефной. Эффект особенно заметен на краях тени, углах и скруглениях — там, где при обычном расчете теневых координат была бы сплошная тень, появляются освещенные участки:
Главный недостаток метода — расчет теневых координат происходит пофрагментно, а не повершинно, но на современном железе это не слишком большая жертва.
Не знаю, использовалась ли такая техника раньше, и как она называется — может быть, что-то вроде height-corrected shadow mapping?
Уроки по Dagon

Также недавно я получил в свое распоряжение руль, и, соответственно, добавил поддержку рулей в Dagon (вернее сказать, улучшил уже существовавшую обертку над API ввода SDL2). Пример Dagon с машиной уже работает с рулями — надеюсь скоро выложить видео.
Планы на будущее следующие: в ближайшее время собираюсь довести до ума поддержку PBR-материалов, после чего выпустить Dagon 0.7 с новым HDR-рендером. Дальше, скорее всего, буду смотреть в сторону deferred rendering, поскольку на прямом рендере стало уже сложно получать современную картинку.
HDR уже здесь
Также появилась поддержка motion blur (который делается все в том же широком диапазоне), а все доступные фильтры постобработки стали частью стандартной сцены (BaseScene3D). В будущем надеюсь сделать их более настраиваемыми, а также добавить новые фильтры.
Итоги 2017 года
- Для Atrium был разработан новый графический движок Dagon на основе OpenGL 3.3 и SDL2, поддерживающий множество современных технологий, в том числе CSM и кластерный рендеринг.
- Я написал ради развлечения симулятор автомобиля с использованием физического движка dmech — в итоге, этот код стал частью демонстрационного приложения Dagon.
- Вышли несколько важных релизов коллекции библиотек dlib — 0.10, 0.11 и 0.12. Появились новые компоненты — например, dlib.async и dlib.memory, поддержка анимированных изображений и APNG, а также загрузчик формата HDR.
- Вышли три номера журнала «FPS» (46, 47, 48). В 2018 году журналу исполняется уже 10 лет!
- «Blender. Настольная книга» теперь доступна на GitHub — в виде markdown-исходников, автоматически публикующихся через gh-pages.
- На сайте LightHouse Software вышла моя статья по D — Векторная графика в dlib.
Напоследок, по сложившейся традиции, перечислю самые значимые для меня события в мире CG, СПО и геймдева:
- Бэкенд DMD был перелицензирован под лицензией Boost, что наконец-то сделало компилятор полностью свободным.
- Начало разработки Blender 2.8 с новым фотореалистичным вьюпортом Eevee.
- Выход OpenGL 4.6.
- Закрытие Steam Greenlight.
- Официальное прекращение развития Flash — важный шаг в сторону открытого веба.
- Анонс нового открытого фильма от Blender Institure — «Agent 327».
Motion blur
Также доступна демка Dagon 0.6.0 со сборкой под Windows 64-bit. Сборки под остальные платформы будут в ближайшее время.