DGL

DGL - это графический движок, сформированный мной из наработок проекта Atrium, а также других моих игр и демок. Сейчас DGL полностью самостоятелен, его можно использовать для создания 2D- и 3D-игр любых жанров. Движок написан на D с использованием OpenGL, SDL и FreeType.

Репозиторий проекта: https://github.com/gecko0307/dgl

Жизненный цикл DGL подошел к концу, в настоящее время я развиваю новый движок, частично основанный на коде DGL (но несовместимый с ним) - Dagon.


DGL существует в двух реализациях. Основная ветка наиболее стабильна, однако я уже не вношу в нее новые возможности. Разработка переключилась на ветку dgl/gc-free, в которой был произведен серьезный рефакторинг движка, добавлена поддержка ручного управления памятью и различных современных графических технологий.


Основные возможности DGL в новой ветке:
  • Низкие системные требования. Для работы основных компонентов достаточна поддержка OpenGL 1.2. При этом на более мощных системах можно задействовать шейдеры и другие современные фичи;
  • Поддерживает Windows, Linux, Mac OS X, FreeBSD;
  • Расширяемая объектно-ориентированная архитектура;
  • Система событий (есть полная поддержка событий SDL + возможность создавать пользовательские события; "слушать" события может любой объект);
  • Благодаря библиотеке FreeType, есть поддержка вывода символов национальных алфавитов. В качестве кодировки используется UTF-8. Возможен также ввод юникод-символов с клавиатуры в текущей раскладке;
  • Менеджер ресурсов, собственный формат сцен с экспортером для Blender;
  • Материалы, текстуры;
  • Система освещения с поддержкой неограниченного количества динамических источников света;
  • Шейдеры на GLSL;
  • Встроенный убер-шейдер с поддержкой normal mapping и parallax mapping, интегрированный в систему освещения;
  • PBR;
  • Экранный антиалиасинг
  • Мягкие динамические тени (PCF);
  • Экранный текст, 2D-спрайты (в том числе анимированные);
  • Встроенные геометрические тела (сфера, параллелепипед, цилиндр и пр.);
  • Собственный язык разметки DML, использующийся в файлах формата DGL2;
  • Встроенная система конфигурирования.
Ключевой особенностью DGL является поддержка физически корректного рендеринга (physically-based rendering). По сути, это единственный известный PBR-движок, написанный на D:



Все записи блога с тегом "DGL"

2 комментария:

  1. Есть ли в планах реализация поддержки api vulkan, в котором устранены узкие места opengl?

    ОтветитьУдалить
    Ответы
    1. В обозримом будущем - нет, так как для это придется большую часть движка переписать заново. Если и буду писать под Vulkan, то, наверное, это будет что-то совершенно новое.

      Удалить