Carregando dados de textura de 4 canais no iOS

Eu quero carregar dados de textura de 4 canais de um arquivo no iOS, então considero a textura como um mapa (contínuo)

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

Se eu usar o formato de arquivo.png, O XCode / iOS considera o arquivo como uma imagem e multiplica cada componentergb coma (alfa pré-multiplicada), corrompendo meus dados. Como devo resolver isso? Exemplos podem ser

use duas texturas com componentesrgb (3 canais)pósdivide alphausar outro formato de arquivo

Destes, considero a melhor solução para usar outro formato de arquivo. O formato de arquivo compactado GL (PVRTC?) Não é independente da plataforma Apple e parece ser de baixa resolução (4 bits) (referência).

EDIT: Se a minha própria resposta abaixo for verdadeira, não é possível obter os dados de 4 canais de png no iOS. Como o OpenGL é sobre a criação de imagens em vez de apresentar imagens, deve ser possível carregar dados de 4 canais de alguma forma. png é um formato de arquivo para imagens (e compressão depende de todos os 4 canais mas a compressão de um canal é independente dos outros canais), então pode-se argumentar que eu deveria usar outro formato de arquivo. Quais outros formatos de arquivo compactados devo usar, o que é fácil de ler / integrar no iOS?

ATUALIZAÇÃO: "combinatorial" mencionou uma maneira de carregar texturas não pré-multiplicadas de 4 canais, então eu tive que dar a resposta correta. No entanto, essa solução tinha algumas restrições que eu não gostei. Minha próxima pergunta é "Acessar dados brutos de 4 canais de arquivos png no iOS" :)

Eu acho que é um projeto de biblioteca ruim não tornando possível ler dados png de 4 canais. Eu não gosto de sistemas tentando ser mais inteligentes do que eu.

questionAnswers(5)

yourAnswerToTheQuestion