渲染管道

渲染管道git

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

二、渲染管道概观数据结构

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

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

  3)应用程序阶段(CPU)设计

  4)几何阶段(GPU)游戏

  5)光栅化阶段(GPU)ip

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

四、合并阶段不能编程,但高度可配置。若片断经过了全部测试,其颜色就会与帧缓冲原来的颜色进行混合。资源

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

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

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

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

九、把可见表中彻底被其余物体遮挡的物体移除,称为遮挡剔除(occlusion culling)。常见的作法有入口系统,反入口系统。

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

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

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

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

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

相关文章
相关标签/搜索