本篇参考B站视频:【技术美术百人计划】图形 1.1 渲染流水线_哔哩哔哩_bilibili
一.整体流程
渲染管线之所以叫渲染管线,因为他的工作流程是线性的。
1.应用阶段:粗粒度剔除,进行渲染设置,准备基本数据,输出到几何阶段
2.几何阶段:顶点着色器,曲面细分,几何着色器,顶点裁剪,屏幕映射
3光栅化阶段:三角形(点/线)设置,三角形(点/线)遍历,片段着色器
4.逐片元操作:裁剪测试,透明度测试,深度测试,模板测试,混合
x.后处理
顶点数据→ 顶点着色器(几何阶段)→ 几何着色器(几何阶段)→ 曲面细分着色器(几何阶段)→ 投影(几何阶段)→ 裁剪(几何阶段)→ 屏幕映射(几何阶段)→ 三角形设置(光栅化阶段)→三角形遍历(光栅化阶段)→ 片元着色器(光栅化阶段) → 逐片元操作(光栅化阶段)→ 屏幕图像
顶点着色器,曲面细分着色器,几何着色器,片元着色器,可完全编程控制
裁剪,逐片元操作,可配置但不能编程
屏幕映射,三角形设置,三角形遍历,由GPU固定实现
顶点数据,屏幕图像不可编程不可配置
渲染流水线最终目的:输入虚拟摄像机(计算机动画课程里也可讲“视点”),光源,shader以及纹理,生成或渲染一张二维纹理;
二.分阶段介绍:
1.应用阶段:
应用阶段在CPU中处理
此阶段的任务有:
- 准备好场景数据。如:光源信息,场景中的物体数据,摄像机的参数等。
- 粗粒度剔除(culling),包括视锥体剔除(Frustum Culling)和遮挡剔除(Occlusion Culling)两种。为了提高渲染性能,把不可见的物体剔除出去,这样就不需要再移交给几何处理阶段进行处理了。
视锥体剔除:裁剪的依据主要是根据摄