Sabemos que em PNG, BMP, etc ... o valor de pixel armazenado não está no espaço RGB linear. Mas não encontrei nenhum documento dizendo nada sobre o canal alfa. O canal alfa está armazenado nos arquivos de imagem no espaço linear ou não?
Sabemos que em PNG, BMP, etc ... o valor de pixel armazenado não está no espaço RGB linear. Mas não encontrei nenhum documento dizendo nada sobre o canal alfa. O canal alfa está armazenado nos arquivos de imagem no espaço linear ou não?
Respostas:
Sabemos que em PNG, BMP, etc ... o valor de pixel armazenado não está no espaço RGB linear.
Isto não é necessariamente verdade. Você pode armazenar o espaço de cores que desejar em uma imagem, que nem precisa ser de cores (como mapas normais).
O canal alfa é geralmente linear. O canal alfa não é exibido, mas geralmente é um termo não colorido usado para transparência (ou qualquer outra coisa). Como eles não precisam ser exibidos em um monitor, não há motivo para armazenar no espaço gama. Se o fizesse, perderia desnecessariamente a precisão na extremidade inferior dos valores alfa. Os mapas de normais seguem uma linha de raciocínio semelhante, como explicado muito bem por Julien Guertault .
Os formatos de arquivo de imagem em si não consideram a gama, mas armazenam valores de pixel não modificados, pois o programa de autoria (por exemplo, o Photoshop) decide armazenar os valores, para que os canais RGB e alfa não façam distinção do ponto de vista do formato de arquivo de imagem (exceto possíveis estratégias de compactação com perda, mas esse é outro tópico).
No entanto, quando você cria imagens no Photoshop, elas são exibidas na tela no espaço sRGB, incluindo o canal alfa, portanto, se você cria um canal alfa contando que o brilho percebido dos pixels representa transparência, pode dizer que o alfa também é armazenado no espaço gama. MAS, se você cria alfa usando a transparência da camada no Photoshop, o alfa é armazenado linearmente (por exemplo, 50% da camada transparente é armazenada como alfa = 128).
Portanto, no final, depende de como você cria os dados, em que espaço os dados são armazenados e como você deve interpretá-los. Também é importante considerar se a distribuição não linear de valores oferece benefícios de precisão. Os valores das cores são armazenados no sRGB porque o sistema visual humano responde logaritmicamente ao brilho da luz; portanto, faz sentido ter mais detalhes em tons escuros do que brilhantes para reduzir as faixas percebidas, mas você pode perguntar se essa distribuição se beneficiaria, digamos, mapas normais ou valores de rugosidade armazenados em texturas.