编程语言
首页 > 编程语言> > Java-部分纹理在屏幕外-性能差异

Java-部分纹理在屏幕外-性能差异

作者:互联网

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

A)多边形部分不在视口中
B)多边形完全在里面

我的问题:

情况’A)’是否会消耗更少的系统/ GPU资源*,因为纹理部分不在屏幕上,还是会执行与我在视口内部渲染的效果相同的效果,为什么?

*“资源”-表示速度,而不是内存.

我知道opengl会先计算顶点,然后再渲染纹理,并且如果顶点不在屏幕/视口之外,它会跳过任何进一步的计算,但是对于纹理对象部分处于屏幕外的情况是否相同?它会忽略不可见的纹理部分吗?

解决方法:

情况A应该更快.顶点处理将是相同的.之后,将应用裁剪到视图体积.在情况A中,部分多边形将被裁剪,而整个多边形在情况B中通过.之后,对多边形进行栅格化,然后将所得片段进行片段处理.由于情况A中的碎片较少,因此在此阶段要做的工作较少.片段着色器进行纹理采样,因此在这种情况下,将仅对纹理的可见部分进行采样.

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

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

标签:android,java,textures,performance-testing,opengl-es-2-0
来源: https://codeday.me/bug/20191013/1906988.html