Какие форматы сжатых текстур поддерживаются в iOS?
Исходя из фона Windows, единственным форматом сжатых файлов, к которому я привык, является DDS, который использует сжатие S3 DXT.
Я не уверен, поддерживается ли DDS на устройствах iOS, и какие еще могут быть варианты? Я слышал о таких вещах, как Ericsson Texture Compression (ETC) и PVRTC, но я не понимаю, как они все сочетаются друг с другом и насколько они зависят от конкретной аппаратной функциональности.
2 ответа
Все устройства iOS поддерживают PVRTC. К сожалению, он производит заметные артефакты при сжатии графики спрайтового типа и ограничен мощностью двух квадратных текстур. Новый формат PVRTC2 обеспечивает гораздо лучшее качество и снимает ограничения по размеру. К сожалению, Apple решила отключить эту функцию, хотя их аппаратное обеспечение поддерживает ее. Другой альтернативой является ASTC, качество которого аналогично PVRTC2, но оно доступно только для новых устройств A8, использующих OpenGL ES 3.0.
Строго говоря, Windows имеет как исходные форматы сжатия, производные от S3TC (IIRC BC1-BC5), так и дополнительные, более сложные, BC6 и 7 (которые, я думаю, возможно, были получены через AMD). Как правило, они 4bpp или 8bpp, но если вы хотите что-то кроме 2-уровневой альфы, вам нужно использовать режим 8bpp.
На iOS основным форматом сжатых текстур, вероятно, является PVRTC, который может быть в режиме 4bpp или 2bpp. Они оба могут обеспечить прозрачность, но сжатие изображений в режиме 2bpp является сложной задачей, хотя YMMV - конечно, некоторые хорошо известные крупные разработчики используют 2bpp.
Как и в большинстве систем, для декомпрессии используется аппаратное обеспечение. Я полагаю, что ETC может быть обязательным с OpenGL ES3, поэтому он также может быть выставлен на IOS.