2012-10-18 4 views
0

Cocos2D 2.0에서 알 수 있듯이 1025 * 1025 텍스처는 1024 * 1024 텍스처보다 4 배 더 많은 메모리를 사용하지 않고 비례하여 더 많이 사용합니다.Cocos2D 2.0이 NPOT 텍스처를 지원할 때 Texture Atlases를 사용해야하는 이유는 무엇입니까?

아틀라스에 질감을 넣으면 사용하지 않는 공간이 거의 항상 있습니다. 이것은 낭비입니다. (iOS5 POT 텍스처 메모리 버그는 말할 것도없고, POT 텍스처 아틀라스가 33 % 더 많은 메모리를 낭비하게 만듭니다.) 그러나 텍스처를 그대로 사용하면 낭비되는 메모리가 없습니다. 제 생각에 Texture Atlases의 유일한 장점은 SpriteBatchNode를 사용할 수 있다는 것입니다. 그러나 내 응용 프로그램은 메모리가 많이 제한되어 있으며 NPOT 텍스처를 지원하는 장치 만 지원합니다. 나는 NPOT 텍스처 처리가 약간 더 느리다는 것을 알고 있지만 메모리를 절약하는 것이 가장 중요하다.

내가 틀렸을 수도 있습니다. 나를 확인해주십시오. 왜 내가 틀렸는지를 보여주십시오. 고맙습니다! :)

답변

2

최악의 경우를 고려하여 설계해야합니다. 버그가 항상 있다고 가정하고 이에 따라 앱의 메모리 사용량을 설계하십시오. 버그가 사라지거나, 다시 나타나거나, 더 나쁜 버그가 더 새로운 iOS 버전으로 도입되는지 여부는 알 수 없습니다.

전체 메모리 사용량에 도달하는 것은 좋은 생각이 아닙니다. 가끔씩 이상 함을 허용하기 위해 항상 임계 값을 유지해야합니다. 새로운 iOS 버전이 또 다른 버그를 유발하고 더 많은 메모리를 사용하며 더 많은 메모리를 사용하는 백그라운드에서 실행되는 앱을 가질 수 있으며 시간이 지남에 따라 누적되는 작은 메모리 누출이있을 수 있습니다.

또한 CCSpriteBatchNode는 텍스쳐 아틀라스뿐만 아니라 모든 텍스처와 함께 사용됩니다.

+1

메모리 사용에 더하여, 더 중요한 것은 많은 작은 텍스처를로드하는 것은 모든 작은 텍스처 (일반적으로)를 포함하는 해당 텍스처 맵을로드하는 것보다 훨씬 더 많은 시간이 걸리는 것입니다. –

관련 문제