基于OpenGL的简易渲染器

基于OpenGL的简易渲染器

项目简介

项目描述:学习应用 OpenGL 、图形学和其他游戏引擎相关知识编写的项目,使用 C++ 编写,可以让用户编写测试代码进行简易图形渲染等功能。项目分为两部分,核心部分封装了项目的关键组件(如摄像机、光源、可渲染对象和 OpenGL 对象等);测试部分则可视化展示项目特点(如多光源多物体渲染测试等)。

项目特点

  • 渲染模块:简单封装 OpenGL ,封装渲染器核心部件(如Camera,GLObject,Material类等);支持前向渲染管线(默认),延迟渲染管线;支持 平行光, 点光源, 聚光灯 三种光源,简单Shadow MappingBlinn-Phong光照模型PBR渲染模型;支持 天空盒法线&视差映射HDRSSAOBloom等渲染技术。
  • 动画模块:使用Assimp库读取模型的蒙皮骨骼动画信息,使用SSBO存储动画信息,实现动画播放;实现简单动画混合(简单线性混合,CrossFading,Partial Skeleton混合,Additive混合);实现简单IK(Two-Bone IK, CCD IK, FABRIK);

图片展示

动画模块

动画的读取与播放
简单线性混合 - 当前动画姿势与绑定姿势
CrossFading过渡混合
部分骨骼混合 - 上半身为动画A, 下半身为动画B
附加混合 - 蹲姿动画上附加装弹动画

渲染模块

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

相关链接

  • github页面