20250708-渲染管线
渲染管线
1. Application
CPU计算出需要显示的顶点,以及这些顶点的属性(颜色、法向量、纹理坐标等)。
材质属性,光源属性,Uniform变量。
DrawCall提交准备阶段。
2. Geometry Processing
1. 顶点着色器
顶点变换:顶点从World、View、Clip Space转换。
GPU蒙皮。
UV计算。
顶点光照。
2. 曲面细分,几何着色(可选)
3. Rasterization
1. 屏幕映射
- 齐次除法,归一化设备坐标。
- 视口变换将投影变换得到的坐标XYZ[-1,-1,-1] -> [1,1,1] 映射到屏幕XY[0,0] -> [1,1],Z 0->1(OpenGL为-1到1)。
2. 背面剔除
3. 光栅化
- 将连续的3D物体转化为离散的屏幕像素过程。
- 三角形组装,三角形遍历。
- 确定图元覆盖的片段,顶点插值。
4. Pixel Processing
1. 片段Shader
- 逐像素操作。
- 光照计算。
- Alpha测试。
- Discard Clip。
2. Merging
对像素进行各种测试,来决定该像素的剔除和保留,一般有模板测试、深度测试(现代移动设备一般会将深度测试提前来优化移动设备GPU的处理能力)、Alpha Blend、Stencil Test等。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 Never Settle!
评论