android - 我可以使用 glscissor 提高性能吗

标签 android opengl-es

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

我有一个分为 3 个部分的屏幕,所以我使用剪刀来避免对象从一个 View 重叠到另一个 View 。

我大致了解 scissor 的低级实现,并且由于我的绘图占据了很大一部分计算,我正在寻找加快速度的想法。

我目前的想法是这样的:

如果我在绘制每个对象之前用 glscissor 围绕它,我会提高应用程序的速度吗。

我的想法是,如果我放置一个 GLScissor,(center+/-sizetexture),那么 OpenGL 管道将有更少的测试要做(因为它可以丢弃 90~99% 的表面,这要归功于 glscissors。

那么对于所有 opengl 专家来说,这是好事、坏事还是没有影响?为什么?

最佳答案

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

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

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

当然,正确的优化方法是尝试诊断渲染缓慢的原因,因此以上只是我的猜测,可能对您的特定情况有帮助,也可能没有帮助。

关于android - 我可以使用 glscissor 提高性能吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4342284/

相关文章:

android - PowerVR SGX GPU 的 OpenGL ES 问题

iphone - 将 iPhone 3-D 游戏代码转换为在 Android 设备上运行的最佳方式?

android - GLConsumer 已附加到新 SurfaceTexture 的上下文

android - 在命令行找到命令但在脚本中找不到

javascript - 如何从 phonegap HTML 页面调用 Android 函数?

Android L Preview Material 风格的标签

java - 如何导航到 .java 文件而不是 .class 文件,其中在类路径中指定了源路径?

java - 如何将人脸存储在内存中

ios - 球体上两点之间的圆柱方向,Scenekit,四元数 IOS

Android从mysql服务器获取包含特殊/复制粘贴字符的数据