OpenGL ES 2 - 一个大的纹理图集还是多个小的纹理图集,哪个性能更好?

5
我正在使用已有的引擎在Android上开发游戏。
我的动画需要使用大贴图,想知道哪种方式更加高效。
新版本的引擎支持非2次幂纹理(如果你想知道我为什么要使用这样的分辨率)。
是使用多个2330x1100的贴图集还是只使用一个2330x(1100 x 所需贴图数)的贴图集更好?这个选择会影响加载时间吗?(我认为它们所需的内存相同,因为它们包含相同数量的像素)
我在某处读到切换贴图可能是一种缓慢的操作...
附加问题:
1)在构建可以处理非2次幂纹理的环境中,pot纹理是否更有效?
2)只使用一个纹理时,我能否达到某些尺寸/内存限制?

使用一个大纹理还是分开使用不应该有太大的区别。只要您预先上传所有纹理即可。在渲染期间更新这样一个大纹理可能会非常耗时。至于内存使用,例如使用RGB_565,一个此类纹理大约需要占用5MB的内存 - 因此,是的 - 您可能会遇到一些内存限制。 - harism
@harism 谢谢!是的,它只在应用程序启动时加载一次。移动设备上的虚拟内存很低吗? - Makers_F
1
实际上,内存使用可能不是您最大的关注点,而是图像尺寸。如果在iPad2上纹理大小限制为[2048x2048](https://dev59.com/PkzSa4cB1Zd3GeqPpMLv),那么一般情况下安卓设备上的限制可能会更小。 - harism
1个回答

1

使用一个大的纹理会更好,因为由于内存上传到视频内存,加载和激活速度较慢。这也应该使用更少的能量,从而增强用户体验;-)

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接