文章目录
阅读前的注意事项
该系列文章为个人对书中知识学习总结,详细知识点请参考《Unity Shader入门精要》一书。
渲染流水线
渲染流水线在概念上大致可以分为三个阶段:应用阶段、几何阶段、光栅化阶段。为了更简单直观地来理解渲染流程,我制作了一个思维导图,图中所列为较重要的知识点。大白话总结请直接跳转文末总结(图里的基本就是我想讲的所有内容,下面对其简单的补充)
一、应用阶段
CPU是渲染流水线的起点,简单说一下其主要任务。
1.把数据加载到缓存中
哪些数据?所有渲染需要的数据都需要。主要有顶点的位置信息、顶点颜色、法线方向、纹理坐标等。
2.设置渲染状态
渲染状态定义了一个网格是怎样被渲染的:使用哪些顶点/片元着色器、材质、光源属性等。如果没有更改渲染状态,那么所有的网格都使用同一种渲染状态。打个比方:一个正方形网格,一个圆形网格,不更改状态的话会看起来材质都一样。
3.调用Draw Call
Draw Call是一个命令,发起方是CPU,接收方是GPU,指向一个需要被渲染的图元列表(渲染图元可以理解为点、线、面等)。给定Draw Call后,GPU就会开始根据渲染状态和数据计算并输出像素。