【问题标题】:Loading more smaller textures vs. loading few large textures in OpenGL Android在 OpenGL Android 中加载更多较小的纹理与加载少量大纹理
【发布时间】:2019-07-06 23:40:18
【问题描述】:

我最近正在开发一款二维 Android 游戏,我正在使用 GLSurafaceView (OpenGL ES) 来渲染纹理。我将图形组合成精灵表并将它们加载到设备内存(GPU)中。最近图形的数量增长了不少..

我需要决定哪种方法更好以及为什么。因此,我应该加载 2-3 个大的 2048x2048 sprite-sheets,还是 8-12 个较小的 1024x1024 sprite-sheets?

这些方法将如何影响性能、游戏加载时间、内存消耗?

【问题讨论】:

  • @MorrisonChang 谢谢,顺便说一句,我已经读过这些了。在 Android 的情况下仍然不确定,也许具有特定 Android/GLSurfaceView 经验的人会提供更准确的答案..
  • 如果您正在尝试优化您的图形,那么您可能需要提供有关您如何实现游戏的更多信息。你使用了 OpenGL ES 1.x/2.x 还是 3.x,你使用了VBOs,你使用了任何Texture Compression吗?您的最低硬件/目标硬件是多少?
  • @MorrisonChang,OpenGL ES 1.0,我的目标是所有 Android 设备,该应用程序在商店中是公开的,它在我可能需要的所有设备上运行没有任何问题,我只是想选择一个更好的方法具有精灵表大小。
  • OpenGL ES 1.x 基本上已经过时 - 没有新游戏应该瞄准它。市场上几乎所有的 Android 设备都支持 OpenGL ES 2.0,因此这是一个合理的最低标准(并且比 ES 1.x 更具前瞻性,因为 3.x 基本上只是 2.0 的超集)。

标签: android graphics opengl-es textures


【解决方案1】:

较小的精灵表通常会更好,因为:

  • 需要更少的状态更改。
  • 更容易批量绘制调用。

也就是说,8-12 页在我的书中不算多。如果你有几百个,那么我会开始担心;)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-31
    • 2013-11-27
    • 2017-06-11
    • 2010-12-27
    相关资源
    最近更新 更多