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). Огромное спасибо за вашу поддержку!
Отдельное спасибо контрибьюторам Rafał Ziemniewski, Mateusz Muszyński, Björn Roberg, dayllenger, my-ijet, а также Lawrence Aberba, Andrey Penechko, Elias Batek, aferust, enjoysmath за багрепорты и полезные идеи.
На сегодняшний день Dagon включает следующие особенности и возможности:
Сайт проекта:
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). Огромное спасибо за вашу поддержку!
Отдельное спасибо контрибьюторам 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).
- Dagoban - клон Sokoban
- Dagon-shooter - скроллинг шутер в разработке.
Very nice game engine. I keep following the development. You're doing awesome work. Keep up.
ОтветитьУдалитьgreet sir
ОтветитьУдалитьKeep up the good work!! :D