Загрузка 3D моделей (обертка библиотеки assimp)
Класс CDirectionalLight – направленный источник света. Передача uniform в шейдерную программу.
Класс CFlyingCamera. Характеристики, перемещение мышью, клавишами. Вызывается в RenderScene.
Класс CFramebuffer. Работа с буфером глубины, текстурами, буфером теней (теневой картой). Вычисляются матрицы перспективной и ортографической проекций.
Обертка библиотеки работы со шрифтами.
Работа с Картой высот / нормалей.
Работа с материалами.
Загрузка файлов мешей *.obj
Класс COpenGLControl. Инициализация OpenGL, изменение размеров, установка параметров пирамиды видимости, получение матрицы проекции, установка высоты/ ширины окна. Инициализация glew. CALLBACK функция. Инициализация OpenGL, создание временного и основного контекстов. Частота рендеринга.
Работа с системой частиц.
Точечный источник освещения. Задание параметров. Передача uniform в шейдерную программу.
Объявляются объекты всех классов. Создаются VAO и VBO. Загружаются текстуры, в т.ч. SkyBox. Создается FBO для карты теней. Создается источник направленного света, камера в позиции источника для формирования теней. Формирование матриц преобразований. Вывод полигонов. Все управляющие клавиши.
Обертка для загрузки и компиляции шейдеров. Кол-во шейдеров 14. Определяются шейдерные программы extern CShaderProgram spMain, spColor, spShadowMapper, spShadowMapRender, spSkybox;
Класс CSkybox. Загрузка 6 текстур, рендер и удаление.
Прожектор, параметры, Передача uniform в шейдерную программу.
цилиндр, тор – процедурная генерация, размещение в VBO; кубы – разные способы задания, явно в коде. (индексный и не индексный); плато – явно в коде, индексный способ
Используется библиотека Freeimage. Текстура – буфер глубины. Создание пустой текстуры. Загрузка из данных, из файла. Установка Sampler. Фильтрование текстур. Удаление текстур, освобождение памяти. Вид использования текстур (wrap). CreateRotationTexture ?
Обертка для работы с VBO. Создание, удаление, размещение в памяти GPU, и т.д.
Win_main, Класс COpenGLWinApp работа с таймером, клавишами. Создание и регистрация класса окна, окна приложения. Бесконечный цикл обработки событий. common_header.h Подключаемые библиотеки. Определение циклов.
Генерация частиц.
Описание параметров направленного источника (без main).
https://free3d.com/3d-model/low-poly-dead-tree-16797.html
https://github.com/assimp/assimp/tree/master/test/models/OBJ