android - 是否应该动态加载和卸载 OpenGL 纹理

标签 android opengl opengl-es textures

我正在使用 OpenGL 实现一个游戏引擎,想知道手动卸载在相机的特定半径范围内未使用的纹理是否是个好主意。对于 Android 和 OpenGL ES,有人建议我根据需要动态加载和卸载纹理以节省内存可能是个好主意。这是否推荐用于 OpenGL ES 和 OpenGL?我个人不相信这种方法,但我很好奇这种方法何时会对桌面 PC 上的 OpenGL 设置和手机上的 OpenGL ES 有好处(如果有的话)。

最佳答案

这将取决于您在游戏中使用的纹理数量/纹理大小。

我相信这个神奇的数字是至少 10MB 的纹理内存,所以如果你的纹理使用的比这个多,人们倾向于使用纹理压缩(这里有手机兼容性问题,一些压缩格式是专有的,有一个完整的主题)。您可以在不使用纹理时卸载它们,但重新加载它们时会产生高昂的成本,因此请注意这一点。

不过,一般来说,您不需要求助于此方法。

关于android - 是否应该动态加载和卸载 OpenGL 纹理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7183565/

相关文章:

javascript - 如何在常规输入中隐藏 Android 密码建议功能区上的 Chrome

java - 查询 Firebase 的位置范围

java - decodeByteArray 和 copyPixelsToBuffer 不工作。 SkImageDecoder::Factory 返回空

opengl - 现代 GLSL 中的每像素光照?

opengl-es - 如何在 float 和 vec4、vec3、vec2 之间进行转换?

java - 在 Android OpenglEs 2.0 中加载纹理导致根本没有颜色

java - libgdx - 如何将 Sprite 批处理设置为像这样混合/着色?

android - 如何让 Android Studio 1.1 在 "Make"指令期间调用 generateDebugTestSources 而不是 assembleDebugTest?

linux - OpenGL:Linux 上的渲染时间限制

c++ - Visual Studio 2012 gl.h 在哪里?