Alfa pré-multiplicado, sim ou não?

10

Devo usar alfa pré-multiplicado? Lendo o artigo de Tom Forsyth , parece um desrespeito. O alfa pré-multiplicado (mistura de aditivos AKA) é superior em todos os sentidos.
No entanto, o alfa pré-multiplicado parece ter uma grande desvantagem, não é bem suportado por ferramentas.

Você já usou alfa pré-multiplicado?

Como é o suporte da ferramenta?

Em particular, não acho que o gimp edite bem imagens alfa pré-multiplicadas. Existem plugins gimp para exportar alfa pré-multiplicado? Que tal uma ferramenta externa?

deft_code
fonte
Estou exatamente na mesma posição que você - quero usá-lo em qualquer lugar, mas não sei com que facilidade posso editar meus ativos com ele se precisar desenvolver ferramentas extras para ele.
Kylotan

Respostas:

4

Eu uso o XNA 3.1 no momento com alfa pré-multiplicado (o suporte pré-multiplicado nativo alfa foi adicionado na versão 4.0).

Principalmente, economizo tempo e asseguro que as áreas transparentes das minhas imagens tenham as cores corretas. Também porto para o Silverlight, que pré-multiplica por padrão.

O XNA possui um pipeline de conteúdo que facilita a adição de pré - processamento alfa pré - multiplicado .

Esse link contém o código para fazer a conversão. Para cada pixel:

c.R = (byte)(c.R * c.A / 255);
c.G = (byte)(c.G * c.A / 255);
c.B = (byte)(c.B * c.A / 255);

Há muito a ser dito para se ter um pipeline de conteúdo. Se você não estiver usando o XNA, mas estiver usando o Visual Studio, poderá criar um . Quaisquer outros IDEs / processos de construção também devem ser capazes.

E, finalmente, se você não possui uma etapa de processamento de conteúdo em sua compilação (e, portanto, é provável que você não tenha muito conteúdo), você poderia executar a pré-multiplicação com a mesma facilidade em tempo de execução ao carregar suas texturas. Isso adicionará um fator constante ao tempo de carregamento da textura.

(Se a implicação não fosse clara: você provavelmente não deveria editar imagens alfa pré-multiplicadas. Exporte-as pré-multiplicadas, se puder, ou, melhor ainda, pré-processe-as.)

Andrew Russell
fonte
Obrigado. Deveria, como alfa pré-multiplicado, ser suficientemente suportado no XNA (ou em breve será). Ainda estou procurando ferramentas não XNA para criar meu pipeline.
Deft_code 27/08/10
3

Se você estiver usando XNA, há bastante suporte para alfa pré-multiplicado. Normalmente, a conversão é feita no pipeline de conteúdo, mas não há nada que o impeça de fazer você mesmo.

drxzcl
fonte
1

Eu uso alfa pré-multiplicado por padrão no meu mecanismo (o artista pode forçar não pré-multiplicado no arquivo de definição de material, se for necessário para um efeito especial de algum tipo)

As ferramentas, como você notou, não lidam bem com o alfa pré-multiplicado - o artista pode definir os canais alfa e de cor de maneira totalmente independente. Eu configurei as coisas para que meu artista possa criar imagens de textura com alfa que não seja de premissa (o que parece ser mais fácil para os cérebros dos artistas), e a ferramenta que se converte no formato de textura do mecanismo multiplica o alfa por padrão. Há uma opção que pode ser gerada sem pré-multiplicação, se for absolutamente necessária.

Branan
fonte