En este momento utilizo XNA 3.1 con alfa premultiplicado (se agregó soporte nativo de Alpha premultiplied en 4.0).
En su mayoría, me ahorra tiempo y me aseguro de que las áreas transparentes de mis imágenes tengan los colores correctos. También porto a Silverlight, que realiza la premultiplicación por defecto.
XNA tiene una canalización de contenido que hace que sea muy fácil agregar preprocesamiento alfa premultplied .
Ese enlace contiene el código para hacer la conversión. Por cada píxel:
c.R = (byte)(c.R * c.A / 255);
c.G = (byte)(c.G * c.A / 255);
c.B = (byte)(c.B * c.A / 255);
Hay mucho que decir para tener una tubería de contenido. Si no estás usando XNA, pero estás usando Visual Studio, entonces puedes armar uno tú mismo . Cualquier otro IDE / proceso de construcción también debe ser capaz.
Y, por último, si no tiene un paso de procesamiento de contenido en su compilación (y, por lo tanto, es probable que no tenga mucho contenido de todos modos), podría realizar fácilmente la premultiplicación en tiempo de ejecución cuando carga sus texturas. Agregará un factor constante a su tiempo de carga de textura.
(Si la implicación no estaba clara: probablemente no debería editar imágenes alfa premultiplicadas. Exportelas premultiplicadas si puede, o mejor aún, preprocese).