AntoshkaEngine. Инкарнация вторая

Столкнувшись с трудностями оптимизации при разработке воксельного движка (предыдущая история), я решил ориентироваться на классические полигональные модели. Плюс предыдущая версия вообще на движок не походила - это был просто набор "низкоуровневого" кода с вызовом API OpenGL напрямую.
Произошёл серьезный рефакторинг кода и движок заимел какую-никакую архитектуру. Почитать о ней вкратце можно в этом файле.
Расписывать какой получился классный движок изнутри  особо не хочется (да и это и не так...). Скажу лишь, что основная идея была - как можно сильнее абстрагировать и скрыть от программиста-пользователя внутренние "низкоуровневые" действия, предоставляя простое API в виде:

загрузить текстуру из файла
создать материал -> назначить текстуры материалу
создать меш -> загрузить меш
создать ноду -> назначить ноде меши -> назначить материалы
Отрисовка и позиционирование уже производятся внутри движка менеджером сцены.

Движок умеет грузить и рендерить статические меши из форматов OBJ, 3DS, VOX:
А также анимированные морфингом модели формата MD2 (idTech2 и Quake2, привет!). Есть возможность установки плавной и покадровой анимации. В чем разница смотрим на видео:

Остановился я после загрузки и рендеринга (какого-никакого) карт BSP формата Quake3. При загрузке также формируются кривые поверхности Безье (на видео розовым цветом):

Что же случилось с таким "замечательным" движком? А вот об этом - в следующем выпуске ))

Комментарии