什么是渲染流水线
渲染三大阶段
1.应用阶段:输出图元;2.几何阶段:输出屏幕空间的顶点信息3.光栅化阶段:绘制像素。
五大空间:
模型(局部)空间:建模软件决定的原点
世界空间:scene中的原点,
观察(相机)空间:相机为原点的空间,
裁剪空间:FOV,nearclip,FarClip构成的空间
屏幕空间:二维平面空间,注意左上角还是左下角是原点。
应用阶段
CPU主导,开发者可以完全控制,开发者三个任务1准备场景数据2粗粒度提出3设置渲染状态
重要目标:输出的几何数据,即渲染图元(rendering primitive),不是本书重点,进入下一步几何阶段。
几何阶段
GPU完成,处理渲染图元进行逐个顶点,逐个多边形操作,这里细分成多个流水线,本书重点。
重要任务:顶点转换到屏幕空间,输出二维顶点坐标,深度,着色信息。进入光栅化阶段。
光栅化阶段
GPU完成,处理二维顶点像素,绘制屏幕像素。这里细分成多个流水线,本书重点。
CPUGPU通信:应用阶段
应用阶段的三步骤:1数据加载显存2设置渲染状态3调用DrawCall(重点)
渲染数据物理移动路径:硬盘HDD->内存RAM->显存VRAWM。
设置渲染状态包括:指定顶点着色器,片元着色器,光源属性,混合属性,材质贴图1等。
DrawCall是完成上述工作之后,CPU通知GPU进行渲染的指令。DC会指向本次渲染的图元列表。
GPU流水线两大阶段:几何阶段,光栅化阶段。
几何阶段:顶点着色器,曲面细分着色器,几何着色器,裁剪,屏幕映射
光栅化阶段:三角形设置,三角形遍历,片元着色器,逐个片元操作。(粗体为可编程的)
顶点着色器:顶点空间变化,顶点着色等。
曲面细分着色器:可选项,可以细分图元
几何着色器:可选项,可以逐个图元操作,或者产生更多图元
裁剪:剔除摄像机视野外面的三角面。
屏幕映射:不可编程,将图元的空间坐标转换到屏幕坐标。
三角形设置,三角形遍历:固定函数控制不可编程。
片元着色器:可编程,逐个片元Fragment着色。
逐片元操作:不可编程但是可配置,逐个片元Fragment处理,如修改颜色,深度缓冲,混合等。<

最低0.47元/天 解锁文章
513

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



