应该动态加载和卸载OpenGL纹理

时间:2011-08-24 23:35:31

标签: android opengl opengl-es textures

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

2 个答案:

答案 0 :(得分:1)

如果你不需要那个记忆,那么在那里没有任何伤害。如果你需要那个记忆,那么你已经知道你需要这样做。所以答案是......如果你需要来做。

答案 1 :(得分:1)

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

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

一般来说,你不应该采用这种方法。