Alfa premultiplicado, sí o no?

10

¿Debo usar alfa premultiplicado? Leyendo el artículo de Tom Forsyth parece un nobrainer. El alfa premultiplicado (combinación de aditivos AKA) es superior en todos los sentidos.
Sin embargo, el alfa premultiplicado parece tener un gran inconveniente, no es compatible con las herramientas.

¿Has / has usado alfa premultiplicado?

¿Cómo es el soporte de la herramienta?

En particular, no creo que gimp edite bien las imágenes alfa premultiplicadas. ¿Hay algún complemento de gimp para exportar alfa premultiplicado? ¿Qué tal una herramienta externa?

código_deft
fuente
Estoy exactamente en la misma posición que usted: quiero usarlo en todas partes, pero no estoy seguro de cuán fácilmente puedo editar mis activos con él si necesito desarrollar herramientas adicionales para ello.
Kylotan

Respuestas:

4

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

Andrew Russell
fuente
Gracias. Debería indicar que el alfa premultiplicado es lo suficientemente compatible con XNA (o pronto lo será). Todavía estoy buscando herramientas que no sean XNA para crear mi canalización.
deft_code
3

Si está utilizando XNA, hay bastante soporte para alfa multiplicado previamente. Por lo general, la conversión se realiza en la tubería de contenido, pero no hay nada que le impida hacerlo usted mismo.

drxzcl
fuente
1

Yo uso alfa premultiplicado por defecto en mi motor (el artista puede forzar no premultiplicado en el archivo de definición de material, si es necesario para un efecto especial de algún tipo)

Las herramientas, como habrás notado, no funcionan bien con alfa premultiplicado: el artista puede configurar el color y los canales alfa de manera totalmente independiente. He configurado las cosas para que mi artista pueda crear las imágenes de textura con alfa no premul (que parece ser más fácil para los cerebros de artistas), y la herramienta que convierte al formato de textura del motor multiplica el alfa por defecto. Hay un interruptor para que se pueda generar no premultiplicado si es absolutamente necesario.

Branan
fuente