我可以使用glscissor提高性能吗?

时间:2010-12-03 03:44:30

标签: android opengl-es

我正在使用OpenGL ES 1.1开发Android游戏2D游戏,我想知道这个想法是好/坏/没用。

我的屏幕分为3个部分,因此我使用剪刀避免从一个视图到另一个视图的对象重叠。

我粗略地理解剪刀的低级实现,因为我的绘图占据了计算的很大一部分,所以我正在寻找加速它的想法。

我目前的想法如下:

如果我在绘制之前在每个对象周围放置一个glscissor,我是否会提高应用程序的速度。

我的想法是,如果我放置一个GLScissor(中心+/- sizetexture),那么OpenGL管道将进行较少的测试(因为它可以通过glscissors丢弃90%~99%的表面。

所以对所有opengl专家来说,这是好的,坏的还是没有影响?为什么?

1 个答案:

答案 0 :(得分:1)

它应该没有任何影响,恕我直言。我不是专家,但我的想法如下:

  • 剪刀测试可以节省GPU的填充率(硬件每秒可以放入帧缓冲区的碎片/像素数量),
  • 如果你在每个物体周围放置glScissor,测试实际上不会切断任何东西 - 将渲染相同数量的像素,因此不会保存填充率。

如果你想让你的渲染得到优化,一个好的起点就是确保你做得最佳batching并减少绘制调用或复杂状态开关(纹理开关)的次数。

当然,正确的优化方法是尝试诊断为什么渲染速度慢,所以以上只是我的猜测,在您的特定情况下可能会有所帮助。