【问题标题】:Android opengles glBindTexture() callsAndroid opengles glBindTexture() 调用
【发布时间】:2011-07-31 23:02:06
【问题描述】:

我的游戏已经包含一个 1024x1024 大小的图集,因为我知道这是纹理的最大大小。问题是我需要大约 1-2 个这些 1024x1024 纹理。那应该给我 3 个 glBindTexture() 调用,我知道这是巨大的性能拖累。我还没有测试它,因为我目前有其他问题,但这会大大减慢我的应用程序吗?还有其他解决方案吗?

【问题讨论】:

  • 我不认为三个glBindTexture 会拖累性能。至少不在你应该担心的范围内。

标签: android opengl-es


【解决方案1】:

如果您担心任何性能损失,我建议您对应用程序进行分析,以便真正了解应用程序的瓶颈在哪里,如果结果很糟糕,然后再回来。

三个大图集纹理仍然比你一遍又一遍绑定的许多小纹理更好。

【讨论】:

    【解决方案2】:

    目前我的游戏有大约 6 个 512x512 纹理图集,到目前为止我仍然不需要任何手机上的任何加载屏幕。虽然如果您要进行大量绑定,您可能需要考虑制作一个 Batcher 类,将您的所有顶点一次提交给 GPU,它会大大加快您的应用程序

    【讨论】:

    • 我目前确实使用了一个批处理器,我在其中绘制(添加)所有顶点,然后对 glDrawArray/Elements 进行最终调用。到目前为止,这对性能的影响最大,因为我不需要太多的绘图调用。
    • 即使是少量的draw call也不应该影响你的表现,它可能会稍微影响你的表现,但随着时间的推移,最好有一个
    猜你喜欢
    • 2011-06-16
    • 2012-10-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-27
    相关资源
    最近更新 更多