部分屏幕纹理 - 性能差异

时间:2014-04-20 18:35:50

标签: java android textures opengl-es-2.0 performance-testing

图片是两种情况的示例,其中渲染纹理多边形。全部由Opengl ES2完成。

enter image description here

A)多边形部分偏离视口 B)多边形完全位于其中

我的问题:

情况'A)'会消耗更少的系统/ gpu资源*,因为纹理部分偏离屏幕,或者它的表现与我在视口内部渲染的情况一样,为什么?< / strong>

*“资源” - 意思是速度,而不是记忆。

我知道opengl在渲染纹理之前首先计算顶点,如果顶点在屏幕/视口之外,它会跳过任何进一步的计算,但是与纹理对象部分偏离屏幕的情况相同吗? 是否会省略不可见的纹理部分?

1 个答案:

答案 0 :(得分:3)

情况A应该更快。顶点处理将是相同的。之后,应用裁剪到视图体积。在情况A中,多边形的一部分将被剪裁,而整个多边形在情境B中经过。之后,多边形被光栅化,并且所得到的片段进入片段处理。由于情况A中的碎片较少,因此在此阶段的工作量较少。片段着色器执行纹理采样,因此在这种情况下只会对纹理的可见部分进行采样。

剪辑也可以在片段生成后发生,但我总是希望它在片段着色器之前完成。

虽然在情况A中总是会有较少的工作,但这并不一定意味着你会在渲染中看到速度差异。您可能在管道的其他部分或应用程序代码中存在瓶颈。