shader:着色器
渲染流水线
- 主要任务:输入一个三维场景,输出一张二维图像。
- 渲染流程:
- 应用阶段:
- 输入:场景数据、粗粒度剔除(culling)、渲染状态
- 输出:渲染图元
- 几何阶段
- 输入:渲染图元
- 操作:逐顶点、逐多边形
- 任务:将顶点坐标转换为屏幕坐标
- 输出:二维坐标顶点、坐标深度值、着色等信息
- 光栅化阶段:
- 输入:几何阶段的输出
- 输出:屏幕像素
- 应用阶段:
CPU和GPU之间的通信
- 把数据加载到显存中
HDD -> CPU -> GPU(显卡访问显存速度更快) - 设置渲染状态
纹理、顶点着色器、片元着色器 - 调用DrawCall
GPU流水线
- 顶点着色器
- 处理单位:顶点
- 主要工作:坐标转换、逐顶点光照
- 裁剪
- 完全视野外:不会传递下个流水线
- 完全视野内:向下个流水线传递
- 部分视野内:裁剪
- 屏幕映射:将图元坐标的x,y转化为屏幕坐标
- 片元着色器:顶点插值得到一个或多个颜色信息
- 逐片元操作:
1.可见性:深度测试、模板测试
2.合并:透明度
3.双重缓存:保证图像连续。
《Unity Shader 入门精要》冯乐乐