【问题标题】:OpenGl performance/hinderance gain?OpenGL性能/障碍增益?
【发布时间】:2011-11-09 22:50:21
【问题描述】:

在 OpenGL(适用于 Android 的 ES)中,使用 GL10.glTranslatef(x, y, z); 然后绘制一个对象(在我的情况下为六边形图块)比将新坐标传递给对象并重构缓冲区(如果需要)更有效/实用是)?

【问题讨论】:

    标签: android performance opengl-es


    【解决方案1】:

    这取决于您的其余代码。例如,如果您谈论的是单个四边形的差异,则差异可能可以忽略不计。黄金法则是避免状态变化并围绕该目标优化几何。例如,如果您有 10000 个图块,可以在一次调用 glDrawElementsglDrawArrays 中绘制,如果您在代码中进行翻译并集体上传顶点位置,那么可以肯定的是,您会看到改进。如果您为每个图块调用一次 glDrawElementsglDrawArrays,那么您不太可能注意到任何差异。

    所以:如果它允许您将更多几何图形一起批处理,这是一个值得的更改,否则它可能不会产生太大的可能性。根据我的轶事经验,在第一代 iOS 设备上,它有一个 PowerVR MBX,有一个精灵风格的引擎,我的设备从几百个精灵有点挣扎到它能够处理数千个精灵。批处理我的几何图形意味着 GPU/CPU 同步不再是瓶颈。

    【讨论】:

    • 感谢您的详细解答。
    猜你喜欢
    • 2011-12-05
    • 2011-12-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-07
    相关资源
    最近更新 更多