【问题标题】:What is the maximum allocatable memory for Textures in OpenGL for Android 2.3?OpenGL for Android 2.3 中纹理的最大可分配内存是多少?
【发布时间】:2011-12-20 13:20:47
【问题描述】:

正如标题所说,我可以为 Android 2.3 的 opengl 中的纹理分配多少内存?

我想知道这一点,因为我在任何地方都没有看到任何与此相关的真实数字。我在一个银河选项卡上成功地为几十个纹理分配了高达 96 MB 的空间,但在 96 MB 渲染之后,速度减慢到极度爬行。我在测试中使用了相同的算法,只增加了分配的纹理,但 96MB 以上的渲染性能不到 96MB 或更少的 5%。

这是有原因的吗?

这适用于所有 android 2.3 设备还是它们之间有区别?

对于大多数 2.3 及以上的 Android 设备,我可以安全地为 opengl 纹理分配多少内存?

提前谢谢...

【问题讨论】:

  • (我把opengl标签改成了opengl-es)

标签: android opengl-es textures


【解决方案1】:

96 MB 是很多纹理数据,您应该看看是否可以减少一点。
不管怎样,here 是今天早些时候发布的关于纹理大小和限制的帖子。

您可以在glbenchmark.com 上获得有关各个设备的大量信息。
你也应该看看android docs on openGl

【讨论】:

  • 96 Mb 确实不算多,尤其是当您拥有一台具有 1gb 内存的设备并且只想利用其中的一部分时。感谢您的链接,但 etc1 纹理压缩已失效,因为我使用 alpha 并且 glbenchmark 与总最大纹理内存无关。
  • 不是真的,但考虑到系统必须考虑到较弱的系统(256 MB 共享内存?)以及您从 96 MB 中获得多少(屏幕上可能没有的>20 1k 纹理具有比 800*480 更高的分辨率有点矫枉过正)。但话又说回来,如果您的目标是平板电脑,那就更有意义了。
  • 另外,我查看了您的个人资料,如果他们解决了您的问题,您应该接受您的一些问题的答案,所以他们会被“关闭”。
  • 对于一个视觉上吸引人的应用程序,你需要大量的 gfx 来处理各种动画,我认为 100mb 对于 800x480 来说并不过分,因为最新的 2.3 设备至少有 512mb 内存。跨度>
  • 没错,但由于我受过教育,除了编程和开发之外还从事设计和图形方面的工作,我也知道优化图形通常是可能的,如果你只是知道该怎么做。纹理大小似乎是一个非常常见的问题。但也有很多技巧可以节省内存。
【解决方案2】:

此限制取决于 gpu 硬件。 gpu 对 OpenGL 有很多限制。您应该针对这些限制进行设计。

【讨论】:

猜你喜欢
  • 2019-02-17
  • 2012-02-14
  • 1970-01-01
  • 2023-04-08
  • 1970-01-01
  • 1970-01-01
  • 2011-01-31
  • 2011-10-12
  • 2011-11-11
相关资源
最近更新 更多