Cargando datos de textura de 4 canales en iOS

Quiero cargar datos de textura de 4 canales de un archivo en iOS, por lo que considero la textura como un mapa (continuo)

[0,1]x[0,1] -> [0,1]x[0,1]x[0,1]x[0,1]

Si utilizo el formato de archivo.png, XCode / iOS considera el archivo como una imagen, y así multiplica cada componentergb cona (Alfa premultiplicada), corrompiendo mis datos. ¿Cómo debo resolver esto? Los ejemplos pueden ser

Utiliza dos texturas con componentes.rgb (3 canales)postdivide alfausar otro formato de archivo

De estos, considero que la mejor solución es utilizar otro formato de archivo. El formato de archivo comprimido GL (PVRTC?) No es independiente de la plataforma Apple y parece ser de baja resolución (4 bits) (referencia).

EDITAR: Si mi propia respuesta a continuación es verdadera, no es posible obtener los datos de 4 canales de png's en iOS. Dado que OpenGL se trata de crear imágenes en lugar de presentar imágenes, debería ser posible cargar datos de 4 canales de alguna manera. png es un formato de archivo para imágenes (y la compresión depende de los 4 canales pero la compresión de un canal es independiente de los otros canales, por lo que se puede argumentar que debo usar otro formato de archivo. Entonces, ¿qué otros formatos de archivos comprimidos debo usar, que sean fáciles de leer / integrar en iOS?

ACTUALIZACIÓN: "combinatoria" mencionó una forma de cargar texturas de 4 canales sin premultiplicación, así que tuve que darle la respuesta correcta. Sin embargo, esa solución tenía algunas restricciones que no me gustaban. Mi siguiente pregunta es "Acceder a datos en bruto de 4 canales desde archivos png en iOS" :)

Creo que es un mal diseño de biblioteca que no permite leer datos de png de 4 canales. No me gustan los sistemas que intentan ser más inteligentes que yo.

Respuestas a la pregunta(5)

Su respuesta a la pregunta