渲染管道

渲染管道

1、吞吐量(throughput)度量总体每秒可产生的数据量。潜伏期(latency)度量单个数据需要花多少时间才能走完整个管道。

2、渲染管道概观

  1)数字内容创作(digital content creation,DCC):mesh和材质数据是由DCC应用程序创建。

  2)资产调节管道(asset conditioning pipeline,ACP):导出处理、链接多个种类的资产,生成内聚的整体。

  3)应用程序阶段(CPU)

  4)几何阶段(GPU)

  5)光栅化阶段(GPU)

3、裁剪(clipping)阶段把三角形在平截头体以外的部分切掉。其原理是先判定哪些顶点在平截头体之外,而相交点会被裁剪后形成新的三角图元。

4、合并阶段不能编程,但高度可配置。若片段通过了所有测试,其颜色就会与帧缓冲原来的颜色进行混合。

5、几何着色器的输入为单个n顶点几何图元,其输出为0或多个图元,这些图元的种类可与输入的有所不同。

6、着色器的输出是将要写至帧缓冲的颜色。

7、在着色器编程中,访问内存只有2个方法:寄存器和纹理贴图。在调用着色器程序之前,GPU会从显存自动复制顶点或片段属性数据至适当的输入寄存器;当程序执行完成,GPU会把输出寄存器的内存写入显存,使数据能给予下个管道阶段。

8、在3)应用程序阶段,应用应该仅把可见的物体提交GPU,以免浪费宝贵的资源渲染总是看不见的物体。

9、把可见表中完全被其他物体遮挡的物体移除,称为遮挡剔除(occlusion culling)。常见的做法有入口系统,反入口系统。

10、GPU管道内的所有可配置参数称为硬件状态(hardware state)或渲染状态(render state)。这些状态设置完全由每个子网格对应的材质扬描述。如果在提交图元之间,我们忘记设置某方面的渲染状态,那么上一图元的设置便会“泄漏”至下一图元。叫做渲染状态泄漏(render state leak)

11、深度预渲染(z prepass),关闭像素着色器并仅更新深度缓冲,GPU便会使用特设的双倍速度的渲染模式。在此渲染步骤中,不透明物体可按从前至后的顺序渲染,使尝试缓冲的写入次数变得最少。

12、渲染半透明几何物体时,我们必须接受频繁切换状态的成本。

13、对于大量物体的场景,全使用平截头体剔除每个这些物体,通常难以置信地耗费时间资源。通常精心设计场景图(scene graph)数据结构,可以迅速丢弃大量完全不接近摄像机下截头体的世界部分。如四叉树、八叉树、BSP树(binary space partitioning, BSP)

14、对于有室外平坦地形的游戏,四叉树非常合适。对于内容密集场景,反入口系统非常合适。

 

 

 

 

你可能感兴趣的:(管道)