Covellite++  Version: 2.3.0 Revision: 2580 Platform: x64 Build: 15:23 16.10.2020
Кроссплатформенный фреймворк для разработки приложений на С++
Демонстрационный режим

Демонстрационный режим использования фрейворка для отрисовки 3D сцен.

Задача - демонстрация возможности создания кроссплатформенной 3D игры, используя только возможности фреймворка.

Заметки
Объекты в сцене активно удаляются и создаются заново (при попадании/удалении в/из поля зрения камеры) специально для возможности тестового запуска в работу на несколько суток.

Исходные требования

Первый этап

  • Отображение при помощи камеры 'от третьего лица', расположенной таким образом, чтобы были видны ячейка расположения персонажа и объекты в соседних ячейках, а впереди было бы видно столько объектов, сколько позволяет рендерить 'железо'.
  • 3D сцена:
    • Простой равнинный ландшафт.
    • Ландшафт из отдельных ячеек, формирующих рельеф местности, каждая из которых представляет собой вертикально расположенный шестигранник.
    • Различные типы поверхности (трава/песок/камни) для ячеек ладшафта, текстурированных в зависимости от типа поверхности.
    • Объекты, расположенные в ячейках ландшафта из вертикальных пересекающихся плоскостей с текстурой (трава/камни/кусты/деревья).
    • Отображение поверхности воды.
    • Перемещение по ландшафту (повороты вправо/влево, шаг вперед) с плавным изменением положения/ориентации.
    • Проходимость с учетом объектов в сцене.
  • Игровой Gui:
    • Главное меню (Ручное управление/Демо/Описание/Выход).
    • Окно загрузки сцены.
    • Окно перемещения по 3D сцене с кнопками перемещения/поворотов.

Второй этап

  • Рендеринг только тех объектов, которые попадают в поле зрения камеры.
  • Динамическая подгрузка и выгрузка объектов сцены по мере перемещения камеры по бесконечному игровому миру.

Третий этап

  • Полноценные 3D модели вместо упрощенных объектов.
  • Рендеринг моделей из набора с несколькими уровнями детализации.

Описание

Схема взаимодействия классов