基于OpenGL的简易渲染器

基于OpenGL的简易渲染器

项目简介

时间:2024年3月-至今

项目描述:学习应用 OpenGL 基础知识而编写的练手项目,使用 C++ 编写,可以让用户通过使用封装好的 OpenGL 类进行简易图形渲染。项目分为两部分,核心部分封装了项目的关键组件(如摄像机、光源、可渲染对象和 OpenGL 对象等);测试部分则对项目特点进行可视化展示(如多光源多物体渲染测试等)。

项目特点

  • 封装 OpenGL 对象,如 VAO, VBO, IBO, FBO, Shader, Texture等;
  • 封装渲染器核心部件,如摄像机(基于四元数)、可渲染对象(可读取简单顶点数据/复杂模型)、材质类(管理可渲染对象的ShaderTexture)、UUID等;
  • 支持多物体多光源渲染,现已实现 Blinn-Phong 光照模型平行光, 点光源, 聚光灯 三种光源;
  • 支持帧缓冲延迟渲染管线,并据此实现 屏幕后处理SSAOBloom等技术;
  • 支持天空盒Shadow Mapping法线&视差映射HDR,简单 PBR 等渲染技术。
  • 使用传统glGetError()或较新glDebugMessageCallback()进行Debug日志输出;

图片展示

多光源多物体渲染
图片后处理
简单PBR
SSAO
延迟渲染
泛光
视差映射
Shadow Mapping

相关链接

  • github页面