Dagon – это мой движок для разработки 3D-игр, основанный на OpenGL 4.0 и SDL2. Полный список возможностей и особенностей см. ниже.

Сайт проекта: https://gecko0307.github.io/dagon
Исходники: https://github.com/gecko0307/dagon
Демонстрационное приложение: https://github.com/gecko0307/dagon-demo

Если вы заинтересованы в развитии этого проекта, поддержите его на Patreon: https://www.patreon.com/gecko0307. Все, кто пожертвует $10 и выше, будут перечислены в списке спонсоров на этой странице, в репозитории Dagon, а также на сайте движка. Вы также можете сделать разовое пожертвование через PayPal: https://www.paypal.me/tgafarov. Заранее благодарен!

Спонсоры проекта: Rafał Ziemniewski, Kumar Sookram, Александр Ковалев, Robert Georges, Jan Jurzitza (WebFreak), Раис Сафиуллин (SARFEX), Koichi Takio. Огромное спасибо за вашу поддержку!

Отдельное спасибо контрибьюторам Rafał Ziemniewski, Mateusz Muszyński, Björn Roberg, dayllenger, my-ijet, а также Lawrence Aberba, Andrey Penechko, Elias Batek, aferust, enjoysmath за багрепорты и полезные идеи.

На сегодняшний день Dagon включает следующие особенности и возможности:

  • Использование OpenGL 4.0 и SDL2.
  • Поддержка форматов моделей OBJ и IQM.
  • Собственный формат сцен *.asset с экспортером для Blender. Используется для хранения мешей, объектов, материалов и текстур.
  • Поддержка текстур PNG, JPG, TGA, BMP, HDR.
  • Поддержка контейнера Box для ресурсов. Это простой несжатый архив, альтернатива TAR с использованием UTF-8 для имен файлов.
  • Скелетная анимация.
  • HDR-рендеринг с поддержкой автоматической экспозиции и операторов тональной компрессии ACES, Hable/Uncharted, Reinhard.
  • Отложенный рендеринг с использованием прокси-геометрии (световых объемов). Прозрачные объекты рендерятся в прямом режиме поверх непрозрачной геометрии, пока без учета точечных источников света.
  • Неограниченное (fillrate-bound) количество точечных/объемных источников света.
  • Сферические и трубчатые объемные источники света. 
  • Направленные и конусные источники света.
  • Каскадные теневые карты (cascaded shadow maps) для направленных источников света, поддержка мягких теней (PCF).
  • Normal mapping, parallax mapping, parallax occlusion mapping.
  • PBR (roughness/metallic workflow), Cook-Torrance BRDF.
  • Декали.
  • Процедурное динамическое небо с солнцем по модели Рэлея.
  • Рендеринг ландшафтов с поддержкой шума OpenSimplex для карт высот.
  • HDR-карты окружения (кубические и равнопромежуточные), рендеринг сцены в кубическую текстуру.
  • Система частиц с поддержкой векторных полей, мягкие частицы, освещаемые частицы, тени от частиц.
  • Постобработка, встроенные фильтры SSAO, FXAA, Motion Blur, Glow, Lens Distortion, Color Grading.
  • Рендеринг текста в кодировке UTF-8 с использованием TTF-шрифтов.
  • Модель управления памятью на основе концепции владельца (owner), позаимствованной из Delphi. Любой объект может принадлежать другому: когда удаляется объект-владелец, удаляются и все принадлежащие ему объекты.
  • Менеджер сцен. Каждая сцена – это отдельная сущность со своим набором объектов и ресурсов, логическим контекстом, параметрами графического конвейера и т.д.
  • Модель сущностей и компонентов (entity-component), позволяющая расширять функциональность объектов динамически, без наследования классов
  • Контроллер – абстракция, позволяющая гибко управлять трансформацией сущностей. Например, можно создать контроллер твердого тела, чтобы синхронизировать сущность с телом в физическом движке, либо контроллер персонажа, позволяющий двигать сущность по законам кинематики.
  • Динамическая перезагрузка ресурсов при их модификации сторонним приложением без перезапуска игры. 
  • Система событий. 
  • Файлы конфигурации.
  • Встроенная логика для камеры от первого лица (first person view) и свободного просмотра сцены (freeview). 

Игры и приложения, сделанные при помощи Dagon:

  • Dagoban – клон Sokoban
  • Dagon-shooter – скроллинг шутер в разработке.

Оставить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *