Dagon 0.11.0

После полутора лет разработки вышла новая версия игрового движка Dagon. Релиз примечателен серьезным рефакторингом большинства компонентов, в первую очередь – системы рендеринга. Устранена сцепленность кода, теперь рендеринг логически отделен от остальной части движка, стало возможно написать свой собственный конвейер и подключить его к приложению. Улучшена производительность многих эффектов и шейдеров.

Из прочих крупных изменений отмечу следующие:

  • GUI на основе Nuklear, модуль шрифтов на основе Freetype, физический движок и загрузчик анимированных моделей IQM вынесены в расширения (субпакеты Dub), их нужно добавлять в зависимости отдельно (dagon:nuklear, dagon:ftfont). Это было сделано из-за трудностей у пользователей с установкой Nuklear под Linux.
  • Добавлена поддержка эффекта объемного рассеивания света (volumetric light scattering) для направленного источника. Это оптическое явление, возникающие в дисперсной среде, например, в тумане. Объекты, отбрасывающие тень, заслоняют собой свет и блокируют рассеивание, в результате чего в атмосфере образуются видимые лучи и неоднородности. В Dagon этот эффект основан на разновидности ray marching’а – теневая карта сэмплируется несколько раз вдоль луча в направлении взгляда из пикселя, результат нормируется и используется как коэффициент фазовой функции Хеньи-Гринштейна.
  • Добавлена поддержка файлов DDS для текстур. Поддерживаются форматы сжатия S3TC (DXT1/BC1, DXT3/BC2, DXT5/BC3), RGTC (BC4, BC5), BPTC (BC6H, BC7).
  • Добавлен новый оператор тональной компрессии Tonemapper.Filmic, близкий к тому, что используется в Blender/Eevee.

Dagon vs Eevee

В грядущем Dagon 0.11 будет поддерживаться дополнительный метод тональной компрессии схожий по результату с тем, что используется в Blender 2.8 (Filmic View Transform). Ниже – сравнение рендеров Eevee в Blender 2.82 и Dagon на примере сцены со шлемом из коллекции примеров glTF. Моя картинка чуть более контрастна, но зато нет “передержаных” бликов.

Новый домен

Я переношу все свои личные проекты на домен timurgafarov.ru, так что блог отныне будет доступен как https://gamedev.timurgafarov.ru/. Старый адрес в ближайшем будущем сохранится, но будет перенаправлять на новый.

С Новым годом!

Поздравляю всех читателей блога с наступившим 2020 годом! Желаю творческих успехов всем авторам и долгих лет жизни всем интересным проектам!

В качестве небольшого подарка – обновленная версия демки dagon-sandbox, которую теперь можно скомпилировать в “зимнем” режиме (version = Winter)

Переезд блога

Спустя 7 лет со дня открытия блога https://dlanggamedev.blogspot.com я наконец-то переезжаю на коммерческий хостинг и личный WordPress. Я только начал изучать эту CMS, но первые впечатления самые положительные: удобный редактор, админка, огромный выбор готовых тем, плагинов и виджетов. Абсолютно все можно настроить и кастомизировать. Еще один немаловажный плюс – нормальная работа WP-сайтов на мобильных платформах.

Переезд еще не завершен – необходимо создать страницы проектов. Но мне удалось автоматически перенести основной контент со старого блога, включая даже комментарии и часть картинок.