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