До обрушения старого хоста у меня на форуме была тема про движок, который я пишу с 2016 года, так что создаю заново.
Dagon - это фреймворк для разработки 3D-игр на языке D на базе SDL и OpenGL 4.3. В этом году я выпустил первую стабильную версию, Dagon 1.0.0, и теперь сосредоточился на новой, в которой портирую рендер на SDL GPU (под капотом - Vulkan). Нацеливаюсь на фотореалистичную графику: Dagon 2 будет не просто прямым портом уже готовых шейдеров, а улучшенной версией с множеством новых фич, в числе которых стохастические отражения SSLR, более продвинутый PBR, 2x supersampling, поддержка новых форматов сжатия текстур, поддержка HDR-мониторов и многое другое.
Репозиторий Dagon 1.0: https://github.com/gecko0307/dagon
Репозиторий Dagon 2.0: https://github.com/gecko0307/dagon2
Страница Dagon 2 в моем блоге: https://blog.pixperfect.online/dagon2/
![[Image: dagon2-sslr-new2.jpg]](https://blog.pixperfect.online/wp-content/uploads/2026/05/dagon2-sslr-new2.jpg)
![[Image: dagon2-sslr-new1.jpg]](https://blog.pixperfect.online/wp-content/uploads/2026/05/dagon2-sslr-new1.jpg)
Список фич версии 1.0:
- Ядро имеет минимум сторонних зависимостей - основано на OpenGL 4.3, SDL2, SDL2_Image и FreeType. Физика, звук, GUI и много чего еще реализовано через подключаемые расширения;
- Движок работает под Windows и Linux;
- Переключение видеорежимов без перезагрузки, растягивание окна во время игры. Поддержка HiDPI;
- Виртуальная файловая система. Поддержка библиотеки PhysFS для загрузки ресурсов из архивов;
- Встроенная поддержка моделей в форматах glTF 2.0 и OBJ. Поддержка FBX и множества других форматов через библиотеку Assimp;
- Скелетная анимация, GPU-скиннинг;
- Поддержка всех популярных форматов изображений: PNG, JPG, WebP, AVIF, TGA, BMP, HDR, DDS, KTX, KTX2, SVG и др. Для DDS и KTX поддерживаются форматы сжатия S3TC, RGTC, BPTC, ASTC, для KTX2 - транскодирование из Basis Universal в S3TC или BPTC в зависимости от выбранного профиля. SVG-изображения при загрузке растеризуются в выбранное разрешение;
- Встроенный быстрый компрессор DXT1/DXT5 для сжатия текстур на лету. Экспорт текстур в DDS для кэширования;
- Звуковой движок на основе SoLoud. Воспроизведение WAV, MP3, OGG/Vorbis, FLAC, а также трекерных форматов при наличии libopenmpt. Микшер с поддержкой 3D-звука, частотные фильтры, синтезаторы. Поддержка пространственного звука 5.1 и 7.1;
- Поддержка воспроизведения видео при помощи библиотеки libVLC;
- HDR-рендеринг с поддержкой всех популярных операторов тональной компрессии (ACES, Filmic, Uncharted, Reinhard, Unreal, AgX, Khronos PBR Neutral). Автоэкспозиция на основе средней яркости сцены;
- Отложенный рендеринг с использованием прокси-геометрии (световых объемов). Неограниченное количество локальных источников света;
- Несколько типов источников света: параллельные, сферические, трубчатые, конусные;
- Каскадные теневые карты (CSM) для параллельных источников света, поддержка мягких теней (PCF). Для позиционных источников - тени методом двойного параболоида (DPSM), для конусных - перспективные тени (PSM);
- Эффект объемного рассеивания света (volumetric light scattering);
- Эффекты normal mapping, parallax mapping, parallax occlusion mapping;
- PBR (roughness/metallic workflow), GGX BRDF для освещения;
- IBL при помощи кубических и равнопромежуточных HDR-карт окружения. Префильтрация кубических карт. Загрузка кубических карт c mip-уровнями из файлов DDS и KTX / KTX2;
- Декали;
- Процедурное динамическое небо по модели Рэлея (Rayleigh scattering);
- Рендеринг ландшафтов с поддержкой шума OpenSimplex для карт высот;
- Рендеринг воды. Волны Герстнера;
- Система частиц с поддержкой векторных полей. Мягкие частицы, освещаемые частицы, тени от частиц;
- Постобработка. Встроенные фильтры SSAO, FXAA, motion blur, glow, lens distortion, film grain, color grading, цветокоррекция на основе 3D LUT. Эффекты ретро-рендеринга (снаппинг вершин, пикселизация) для создания игр с графикой в стиле 90-х. Возможность добавлять пользовательские фильтры;
- Базовая поддержка OpenVR;
- Вычислительные шейдеры;
- Кэширование шейдерных бинарников;
- Рендеринг текста с использованием FreeType. Поддержка любых языков и символов Юникода - динамическая подгрузка глифов из файла шрифта по мере их использования в игре;
- Модель сущностей и компонентов (ECS), позволяющая расширять функциональность объектов динамически, без наследования классов;
- Система событий. Ввод с клавиатуры, мыши и геймпада. Поддержка вибрации и горячего подключения геймпадов. Под Windows - поддержка ввода с Wintab-совместимых графических планшетов;
- Микросервисы и worker-потоки для запуска фоновых задач без блокировки основного цикла игры. Асинхронный межпоточный обмен сообщениями;
- Логгер;
- Файлы конфигурации;
- Поддержка GUI на основе тулкита ImGui + встроенный простой GUI для отладочного вывода и добавления внутриигровой консоли. Системные диалоги открытия/сохранения файла;
- Поддержка локализации приложений;
- Проверка столкновений для выпуклых тел на основе алгоритма Minkowski Portal Refinement;
- Физика на основе движков Jolt Physics и Newton Dynamics. Встроенный контроллер персонажа;
- Интегрирование Верле для симуляции веревок и цепей;
- Встроенная логика для камеры от первого лица (first person view) и свободного просмотра сцены (freeview).
Dagon - это фреймворк для разработки 3D-игр на языке D на базе SDL и OpenGL 4.3. В этом году я выпустил первую стабильную версию, Dagon 1.0.0, и теперь сосредоточился на новой, в которой портирую рендер на SDL GPU (под капотом - Vulkan). Нацеливаюсь на фотореалистичную графику: Dagon 2 будет не просто прямым портом уже готовых шейдеров, а улучшенной версией с множеством новых фич, в числе которых стохастические отражения SSLR, более продвинутый PBR, 2x supersampling, поддержка новых форматов сжатия текстур, поддержка HDR-мониторов и многое другое.
Репозиторий Dagon 1.0: https://github.com/gecko0307/dagon
Репозиторий Dagon 2.0: https://github.com/gecko0307/dagon2
Страница Dagon 2 в моем блоге: https://blog.pixperfect.online/dagon2/
![[Image: dagon2-sslr-new2.jpg]](https://blog.pixperfect.online/wp-content/uploads/2026/05/dagon2-sslr-new2.jpg)
![[Image: dagon2-sslr-new1.jpg]](https://blog.pixperfect.online/wp-content/uploads/2026/05/dagon2-sslr-new1.jpg)
Список фич версии 1.0:
- Ядро имеет минимум сторонних зависимостей - основано на OpenGL 4.3, SDL2, SDL2_Image и FreeType. Физика, звук, GUI и много чего еще реализовано через подключаемые расширения;
- Движок работает под Windows и Linux;
- Переключение видеорежимов без перезагрузки, растягивание окна во время игры. Поддержка HiDPI;
- Виртуальная файловая система. Поддержка библиотеки PhysFS для загрузки ресурсов из архивов;
- Встроенная поддержка моделей в форматах glTF 2.0 и OBJ. Поддержка FBX и множества других форматов через библиотеку Assimp;
- Скелетная анимация, GPU-скиннинг;
- Поддержка всех популярных форматов изображений: PNG, JPG, WebP, AVIF, TGA, BMP, HDR, DDS, KTX, KTX2, SVG и др. Для DDS и KTX поддерживаются форматы сжатия S3TC, RGTC, BPTC, ASTC, для KTX2 - транскодирование из Basis Universal в S3TC или BPTC в зависимости от выбранного профиля. SVG-изображения при загрузке растеризуются в выбранное разрешение;
- Встроенный быстрый компрессор DXT1/DXT5 для сжатия текстур на лету. Экспорт текстур в DDS для кэширования;
- Звуковой движок на основе SoLoud. Воспроизведение WAV, MP3, OGG/Vorbis, FLAC, а также трекерных форматов при наличии libopenmpt. Микшер с поддержкой 3D-звука, частотные фильтры, синтезаторы. Поддержка пространственного звука 5.1 и 7.1;
- Поддержка воспроизведения видео при помощи библиотеки libVLC;
- HDR-рендеринг с поддержкой всех популярных операторов тональной компрессии (ACES, Filmic, Uncharted, Reinhard, Unreal, AgX, Khronos PBR Neutral). Автоэкспозиция на основе средней яркости сцены;
- Отложенный рендеринг с использованием прокси-геометрии (световых объемов). Неограниченное количество локальных источников света;
- Несколько типов источников света: параллельные, сферические, трубчатые, конусные;
- Каскадные теневые карты (CSM) для параллельных источников света, поддержка мягких теней (PCF). Для позиционных источников - тени методом двойного параболоида (DPSM), для конусных - перспективные тени (PSM);
- Эффект объемного рассеивания света (volumetric light scattering);
- Эффекты normal mapping, parallax mapping, parallax occlusion mapping;
- PBR (roughness/metallic workflow), GGX BRDF для освещения;
- IBL при помощи кубических и равнопромежуточных HDR-карт окружения. Префильтрация кубических карт. Загрузка кубических карт c mip-уровнями из файлов DDS и KTX / KTX2;
- Декали;
- Процедурное динамическое небо по модели Рэлея (Rayleigh scattering);
- Рендеринг ландшафтов с поддержкой шума OpenSimplex для карт высот;
- Рендеринг воды. Волны Герстнера;
- Система частиц с поддержкой векторных полей. Мягкие частицы, освещаемые частицы, тени от частиц;
- Постобработка. Встроенные фильтры SSAO, FXAA, motion blur, glow, lens distortion, film grain, color grading, цветокоррекция на основе 3D LUT. Эффекты ретро-рендеринга (снаппинг вершин, пикселизация) для создания игр с графикой в стиле 90-х. Возможность добавлять пользовательские фильтры;
- Базовая поддержка OpenVR;
- Вычислительные шейдеры;
- Кэширование шейдерных бинарников;
- Рендеринг текста с использованием FreeType. Поддержка любых языков и символов Юникода - динамическая подгрузка глифов из файла шрифта по мере их использования в игре;
- Модель сущностей и компонентов (ECS), позволяющая расширять функциональность объектов динамически, без наследования классов;
- Система событий. Ввод с клавиатуры, мыши и геймпада. Поддержка вибрации и горячего подключения геймпадов. Под Windows - поддержка ввода с Wintab-совместимых графических планшетов;
- Микросервисы и worker-потоки для запуска фоновых задач без блокировки основного цикла игры. Асинхронный межпоточный обмен сообщениями;
- Логгер;
- Файлы конфигурации;
- Поддержка GUI на основе тулкита ImGui + встроенный простой GUI для отладочного вывода и добавления внутриигровой консоли. Системные диалоги открытия/сохранения файла;
- Поддержка локализации приложений;
- Проверка столкновений для выпуклых тел на основе алгоритма Minkowski Portal Refinement;
- Физика на основе движков Jolt Physics и Newton Dynamics. Встроенный контроллер персонажа;
- Интегрирование Верле для симуляции веревок и цепей;
- Встроенная логика для камеры от первого лица (first person view) и свободного просмотра сцены (freeview).

