UnityShader入门精要笔记-渲染流水线(流水线概述,详细的管线可读RTR4或者GAME101)
shader是什么:着色器
渲染流水线的最终目的:渲染一张二维纹理。
书中将渲染流水线分为3个阶段:
应用阶段、几何阶段、光栅化阶段

应用阶段
应用阶段可分为3个阶段:
(1)把数据加载到显存中
(2)设置渲染状态
(3)调用Draw Call
把数据加载到显存

设置渲染状态
定义了场景中的网格是怎么样被渲染的。

调用Draw Call
Draw Call就是一个命令
它的发起方是CPU,接收方是GPU。
命令仅会指向一个需要被渲染的图元。

GPU流水线
几何阶段和光栅化阶段的细分

顶点着色器
顶点着色器最基本的工作是:把顶点坐标从模型空间转换到齐次裁剪空间。

再由硬件做透视除法后,最终得到归一化的设备坐标(NDC)

裁剪
将那些不在视野范围内的物体裁剪掉。
以及将那些一部分在视野范围内的物体裁剪掉看不见的那部分。

屏幕映射
把每个图元的x和y坐标系转换到屏幕坐标系下。

三角形设置
光栅化阶段的主要目标:计算每个图元覆盖了哪些像素,以及为这些像素计算它们的颜色。
计算光栅化一个三角网格所需的信息。
三角形遍历(扫描变换)
检查每个像素是否被一个三角形网格覆盖。

片元着色器(像素着色器)

逐片元操作(合并输出阶段)


浙公网安备 33010602011771号