Unity Shader入门精要学习笔记 - 第2章 渲染流水线
本系列为UnityShader入门精要读书笔记总结,
原作者博客链接:http://blog.youkuaiyun.com/candycat1992/article/
书籍链接:http://product.dangdang.com/23972910.html
第2章 渲染流水线
2.1 综述
渲染流水线的最终目的在于生成或者说是渲染一张二维纹理,即我们在电脑屏幕上看到的所有效果。它的输入是一个虚拟摄像机、一些光源、一些Shader以及纹理等。
渲染流程分成3个阶段:应用阶段、几何阶段、光栅化阶段。

应用阶段:
这个阶段开发者主导,通常由CPU负责实现。
在这个阶段三个主要任务:
首先,准备好场景数据,例如摄像机的位置、场景中模型、使用光源等;
其次,粗粒度剔除工作,剔除不可见物体,省去后续几何阶段进行处理;
最后,设置好每个模型的渲染状态。这些渲染状态包含材质、纹理、Shader等。
输出的是渲染所需的几何信息,即渲染图元,这些渲染图元将被传递给下一阶段:几何阶段。
几何阶段:(对应的顶点函数)
几何阶段通常在GPU上进行,负责和每个渲染图元打交道,进行逐顶点、逐多边形的操作。
几何阶段的一个重要任务就是把顶点坐标变换到屏幕空间中, 再交给光栅器进行处理。
这一阶段将会输出屏幕空间的二维顶点坐标、 每个顶点对应的深度值、 着色等相关信息, 并传递给下一个阶段。
光栅化阶段: (对应的片元函数)
这一阶段将会使用上个阶段传递的数据来产生屏幕上的像素,并渲染出最终的图像。
这一阶段也是在GPU上运行。
光栅化的任务主要是决定每个渲染图元中的哪些像素应该被绘制在屏幕上。它需要对上个阶段得到的逐顶点数据进行插值,然后再进行逐像素处理。
2.2 CPU和GPU之间的通信
渲染流水线的起点是CPU,即应用阶段。大致分为三个阶段:
(1) 把数据加载到显存中
(2) 设置渲染状态
(3) 调用Draw Call
把数据加载到显存中:
所有渲染

最低0.47元/天 解锁文章
1466

被折叠的 条评论
为什么被折叠?



