SpriteKit по-прежнему использует 32-битную память для RGBA4444_COMPRESSED.

Я пытаюсь снизить использование памяти, используя формат RGBA4444_COMPRESSED для папок атласа SpriteKit (а не для каталогов ресурсов).

Использование инструмента «Распределение» в «Инструментах» показывает, что текстура атласа размером 2048x2048 по-прежнему занимает ~ 16 МБ памяти, когда я предварительно загружаю атлас.

Я предположил, что RGBA4444 должен потреблять только половину объема памяти по сравнению с RGBA8888.

Я тестировал с iPad Air и iOS9.0.


person Min Tsai    schedule 28.09.2015    source источник


Ответы (1)


Я пытался загрузить различные виды текстур в SpriteKit, но кажется, что все, включая пиксели 24BPP, представлено как 1 слово (32BPP) для каждого пикселя. Можно загружать меньшие форматы пикселей непосредственно в OpenGL, но кажется, что совместимость OpenGL и Metal в SpriteKit означает, что 32BPP является общим форматом пикселей, который используется для всех текстур. Если вы хотите взглянуть на форму сжатия текстур, созданную поверх SKTexture, взгляните на этот ответ SO что в лучшем случае может сэкономить около 75% памяти.

person MoDJ    schedule 04.08.2016