3

众所周知,android 每个应用程序的内存限制为 16mb(或在其他设备上更高)。我开始开发一个 rpg 并且你也应该知道,由于图形的原因,这类游戏需要超过 16 MB。

当您使用 NDK 用 C 语言编写部分代码时,没有内存限制(使游戏成为地牢守卫者成为可能)。libGDX 部分用 C 编码以获得更好的性能。

所以,这是我的问题:

它将纹理存储在 Java 部分还是本机 C 部分?

4

1 回答 1

3

纹理存储在设备 GPU 上的VRAM中。当您的图形引擎加载纹理时,它们可能是从本机方法加载的,但您的纹理仍在 VRAM 中。

重要的是,它没有明确地将纹理存储在“Java”或“C”部分中,并且没有存储它们的这些部分。当您int从一个loadTexture()函数中取回一个只是访问 VRAM 上纹理的“键”时。

最大纹理数量(和 VBO:s)取决于设备 GPU 上的最大 VRAM 级别。

于 2011-04-01T16:21:46.513 回答