渲染图元堆栈时的openGl GPU优化

时间:2015-08-20 15:40:56

标签: opengl gpu

如果我渲染15个相同大小的完全不透明的四边形,深度测试禁用,GPU硬件/软件切割器是否足以处理最顶层的四边形并丢弃其他顶点/碎片?或者使用模板缓冲区来获得相同的效果会受益吗?

2 个答案:

答案 0 :(得分:3)

在这种情况下,大多数GPU都会过度使用,如果您的四边形很大,这将对性能非常不利。而不是使用模板缓冲区,优化的最佳方法可能是启用深度测试,分配适当的深度值并从前到后渲染四边形。

然而,在某些条件下(例如,没有混合),基于区块的延迟渲染(TBDR)GPU在许多移动设备中常见(特别是所有iOS设备和许多Android设备使用的PowerVR设备)将执行称为隐藏表面移除的过程( HSR)将优化这种情况并避免渲染将被遮挡的像素。

答案 1 :(得分:1)

当然,它会为所有不透明的四边形生成碎片。此外,如果禁用深度测试,您可能会在屏幕上看到背面。因为深度测试是禁用的,并且最后渲染的任何人都将绘制屏幕。

即使如果使用模板缓冲区,仍会为四边形生成碎片,通过模板和深度测试。