OpenGLRenderer
3D-рендерер с нуля на C++ и OpenGL 3.3: загрузка моделей через Assimp, кастомный GLSL forward-lighting конвейер (directional/point/spot света, Phong shading) и камера от первого лица в стиле fly.
OpenGLRenderer — 3D-рендерер с нуля на C++ и OpenGL 3.3 core profile. Обучающий движок без фреймворка, сцены или ECS — только чистый OpenGL для текстурированной, освещённой 3D-геометрии.
Загружает OBJ-модели через Assimp (Triangulate / FlipUVs / GenSmoothNormals / JoinIdenticalVertices), рендерит текстурированные меши через кастомный GLSL шейдерный конвейер с полноценной multi-light forward-lighting моделью: directional, point и spot света с Phong ambient/diffuse/specular затенением и материалами. MAX_POINT_LIGHTS/MAX_SPOT_LIGHTS синхронизируются между C++ и фрагментным шейдером.
Камера от первого лица (WASD + mouse-look) управляет небольшой сценой с процедурными кубическими сетками, землёй и классическими тестовыми моделями (Stanford bunny, horse, teapot, Suzanne, здание). Один spot свет перепозиционируется каждый кадр как фонарик на камере.
Key features
- OpenGL 3.3 core-profile рендерер на C++ с GLFW/GLEW — без фреймворка.
- Загрузка OBJ через Assimp (Triangulate / FlipUVs / GenSmoothNormals / JoinIdenticalVertices).
- Кастомный GLSL forward-lighting: directional + point + spot света, Phong shading, материалы.
- Fly-style камера (WASD + mouse-look, yaw/pitch, view matrix).
- Процедурная генерация кубов (линия / 10×10 / 6×6×6) с interleaved pos/uv/normal layout.
- Загрузка текстур через stb_image с mipmap; GLCall macro + glDebugMessageCallback.
- Зеркалирование uniform-struct между C++ и GLSL для массивов point/spot светов.