【问题标题】:OpenGL ES 2 - one big vs multiple small textures atlas. What's better performance wise?OpenGL ES 2 - 一个大的与多个小的纹理图集。什么是更好的性能明智?
【发布时间】:2014-07-23 14:53:27
【问题描述】:

我正在使用 already existing engine 在 Android 中开发游戏。

我必须为我的动画使用大纹理,我想知道什么是更好的性能。 新版本的引擎支持 npot 纹理(如果你问自己为什么我使用这样的分辨率)。

拥有多个 2330x1100 纹理图集还是只有一个 2330x(1100 x number_of_textures_i_need) 纹理图集更好? 这种选择会影响加载时间吗?(我认为它们需要的内存是相同的,因为它们包含相同数量的像素)

我在某处读到切换纹理可能是一个缓慢的操作..

支线任务:

1) 罐纹理更有效(在环境构建中以便它可以处理 npot 纹理)?

2) 我可以只使用一个纹理达到某个尺寸/内存限制吗?

【问题讨论】:

  • 使用一个大纹理或将它们分开应该没有太大区别。只要您事先上传所有纹理即可。在渲染过程中更新如此大的纹理可能是非常耗时的操作。至于内存使用,例如使用 RGB_565,您拥有的一个这样的纹理大约需要 5MB 内存 - 所以是的 - 您可能会遇到一些内存限制。
  • @harism 谢谢!是的,它只在应用程序启动时加载一次。移动设备上的 vmemory 这么低吗?
  • 实际上,内存使用可能不是您最关心的问题,而是图像尺寸。如果在 IPad2 上的纹理大小限制为 2048x2048,那么如果在一般的 Android 设备上较少,我不会感到很惊讶。

标签: android opengl-es opengl-es-2.0


【解决方案1】:

一个大纹理应该更好,因为加载和激活很慢,因为内存上传到显存。它还应该使用更少的能源,从而增强用户体验;-)

尝试一下 - 并编写一个长时间运行的测试来证明它。

【讨论】:

    猜你喜欢
    • 2019-05-02
    • 1970-01-01
    • 1970-01-01
    • 2011-08-11
    • 1970-01-01
    • 2015-02-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多