我正在使用 OpenGL 实现一个游戏引擎,想知道手动卸载在相机的特定半径范围内未使用的纹理是否是个好主意。对于 Android 和 OpenGL ES,有人建议我根据需要动态加载和卸载纹理以节省内存可能是个好主意。这是否推荐用于 OpenGL ES 和 OpenGL?我个人不相信这种方法,但我很好奇这种方法何时会对桌面 PC 上的 OpenGL 设置和手机上的 OpenGL ES 有好处(如果有的话)。
最佳答案
这将取决于您在游戏中使用的纹理数量/纹理大小。
我相信这个神奇的数字是至少 10MB 的纹理内存,所以如果你的纹理使用的比这个多,人们倾向于使用纹理压缩(这里有手机兼容性问题,一些压缩格式是专有的,有一个完整的主题)。您可以在不使用纹理时卸载它们,但重新加载它们时会产生高昂的成本,因此请注意这一点。
不过,一般来说,您不需要求助于此方法。
关于android - 是否应该动态加载和卸载 OpenGL 纹理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7183565/