This forum uses cookies
This forum makes use of cookies to store your login information if you are registered, and your last visit if you are not. Cookies are small text documents stored on your computer; the cookies set by this forum can only be used on this website and pose no security risk. Cookies on this forum also track the specific topics you have read and when you last read them. Please confirm whether you accept or reject these cookies being set.

A cookie will be stored in your browser regardless of choice to prevent you being asked this question again. You will be able to change your cookie settings at any time using the link in the footer.

Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Dagon 2
#1
До обрушения старого хоста у меня на форуме была тема про движок, который я пишу с 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]

[Image: 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).
Reply


Messages In This Thread
Dagon 2 - by Gecko - 05-06-2026, 10:10 PM
RE: Dagon 2 - by Gecko - 05-06-2026, 10:20 PM

Forum Jump:


Users browsing this thread: 1 Guest(s)