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?


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.)


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.


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.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.