3D软件渲染器。
不借助外部库,仅使用C++标准库而制作的3D软渲染器。
(Windows平台需要使用WinAPI)
(模型导入需要assimp库)
- 线框绘制(顶点着色器和几何着色器) - Wireframe drawing (Vertex Shader and Geometry shader)
- 片段着色器(像素着色器) - Fragment Shader (Pixel Shader)
- 高洛德着色 - Gouraud Shading
- 冯氏着色 - Phong Shading
- Whitted-Style光线追踪 - Whitted-Style
- PBR光线追踪 - Physically Based Rendering
- 全局光照 - Global Illumination
- 光照: (Lighting)
- 高洛德着色 - Gouraud Shading
- 冯氏着色 - Phong Shading
- 环境光照 + 漫反射光照 + 镜面光照 - Ambient light + Diffuse light + Specular lighting
- 定向光源 + 点光源 + 聚光源 - Directional light + Point light + Spotlight
- 多光源 - Multiple light source
- 阴影 - Shadow
- 仿射/透视纹理映射 - Affine texture mapping
- 双线性滤波 - Bilinear filtering
- 背面剔除 - Back culling
- 透视修正 - Perspective correction
- 深度缓存(1/z) - Depth buffer(1/z-buffer)
- 简单CVV裁剪 - Canonical View Volume Clip
- 水平裁剪,垂直裁剪 - Horizontal Clip and Vertical Clip
- 外部3D模型导入
高洛德着色 |
冯氏着色 (GIF左侧是帧率,很明显冯氏着色慢一些) |
基于高洛德着色的阴影 |
基于冯氏着色的阴影 |
光栅化(无阴影) |
光追(Whitted-Style) |
光追(Whitted-Style),添加全局光照Trick(右侧方块有部分蓝色反光) |
光追(PBR),4深度,4采样点 |
光追(PBR),16深度,2048采样点 |