![]() |
|
Dagon 2 - Printable Version +- Xtreme3D Community (https://xtreme3d.org/forums) +-- Forum: Общее (https://xtreme3d.org/forums/forumdisplay.php?fid=5) +--- Forum: Свой движок (https://xtreme3d.org/forums/forumdisplay.php?fid=17) +--- Thread: Dagon 2 (/showthread.php?tid=5) |
Dagon 2 - Gecko - 05-06-2026 До обрушения старого хоста у меня на форуме была тема про движок, который я пишу с 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/ ![]() ![]() Список фич версии 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). RE: Dagon 2 - Gecko - 05-06-2026 В связи с выходом Dagon 1.0 я также делаю игровую техно-демку с реализацией механики шутера:
|