基于C++实现的软渲染练习,实现了CPU端的光栅化渲染,模拟了包括顶点着色器、光栅化、片元着色器、后处理在内的流程。前面 part_ 开头可执行文件均为ssloy的软渲染教程对应章节的分步实现,最终综合实现版本请直接运行 tiny_renderer 项目。
效果图如下:
项目亮点:
- 简易渲染管线的完整模拟
- 完善的顶点着色器与片元着色器模拟
- 基于重心坐标的精确光栅化
- 基于切线空间的法线计算
- Phong与Blinn-Phong着色模型的实现
- 屏幕空间Shadowmap算法的完整实践
- SSAO算法的简易实现与集成
请参考博客中的光栅化渲染管线笔记同步观看,本项目实现的管线流程图如下:
flowchart TD
A[Raw Data]
A-->B
B[Vretex Shader]
B-->|Transformed vertices|C
C[Primitive assembly]
C-->|Primitives|D
D[Rasterizer]
D-->|Fragments|E
E[Fragment Shader]
E-->|Processed fragments|F
F[Output merging]
F-->|Pixels|G
G[Show in screen]
