当Cocos2D 2.0支持NPOT纹理时,为什么要使用纹理图集?

时间:2012-10-18 15:13:04

标签: ios memory cocos2d-iphone atlas texturepacker

据我所知,在Cocos2D 2.0中,1025 * 1025纹理不会比1024 * 1024纹理使用4倍的内存,只是按比例增加。

如果我将纹理放到地图册上,几乎所有时间都会有一些未使用的空间。这是浪费。 (更不用说iOS5 POT纹理内存错误,它使POT纹理地图集浪费了33%的内存。)但如果我只是按照它们的方式使用我的纹理,那么就没有浪费内存。在我看来,Texture Atlases的唯一优势是能够使用SpriteBatchNode。 但我的应用程序内存有限,我只支持支持NPOT纹理的设备。我知道NPOT纹理处理有点慢,但保存内存对我来说是最重要的。

我可能错了,请确认我,或告诉我为什么我错了。谢谢! :)

1 个答案:

答案 0 :(得分:2)

你应该为最坏的情况设计。假设bug始终存在,并相应地设计应用程序的内存使用情况。没有人知道这个bug是否会消失,重新出现,或者是一个更新的iOS版本引入的更糟糕的bug。

在全内存使用的边缘骑行并不是一个好主意,你总是要留下一个门槛以允许偶尔的奇怪。一个新的iOS版本可能会引入另一个错误,占用更多内存,用户可能会在后台运行使用更多内存的应用程序,可能会有一些微小的内存泄漏随着时间的推移而增加等等。

此外,CCSpriteBatchNode可以与任何纹理一起使用,而不仅仅是纹理图集。