From BlenderWiki

Jump to: navigation, search

Blender 2.66: Transparencia de imágenes

El procesamiento de imágenes ha sido refactorizado para manipular mejor la transparencia en imágenes. Existen dos tipos de alfa que resultan útiles para diferentes propósitos, ahora se intenta convertir y operar con el tipo correcto de forma automática. Antiguamente era necesario habilitar de forma manual las opciones de premultiplicación para obtener resultados correctos.

Composición y procesamiento

Para composición y procesamiento, el alfa premultiplicado es el estándar en Blender. Las capas de procesamiento contendrán un alfa premultiplicado y las imágenes que se carguen al procesar o componer serán convertidas también a este formato.

Composición

Si una operación de composición debe ser realizada usando un alfa directo, puede utilizarse el nodo Convertir alfa. Usualmente esta sería una operación de corrección de color donde se logre un mejor resultado al trabajar con canales de color RVA que no contengan información de alfa. Si el alfa es convertida a directa en el compositor, debe ser vuelta a convertir a premultiplicada antes del nodo de salida Composición, de otra forma es posible que aparezcan algunos defectos de imagen.

Procesamiento del alfa con el motor Estándar

En el panel de Sombreado de las opciones de Procesamiento, ha cambiado la opción the Alfa. Existen ahora dos opciones:

  • Cielo efectúa un procesamiento sin alfa y produce una imagen donde el cielo del entorno rellena el fondo.
  • Transparente efectúa un procesamiento con un canal alfa y produce píxeles con el alfa premultiplicado.

Comparado con las versiones anteriores, se ha removido el modo de alfa Directo. La razón para esto es que ahora es posible guardar archivos con el tipo correcto de alfa, en vez de que el usuario tenga que definirlo manualmente. El modo de alfa Cielo ya no produce un canal alfa, porque esto daba resultados erróneos y guardar una imagen así provocaría defectos sobre los bordes suavizados.

Procesamiento del alfa con Cycles

La opción Transparente permanece incambiada, al ser habilitada se creará una imagen procesada con alfa premultiplicado. La diferencia es que el usuario ya no tendrá que convertir el tipo de alfa para guardar correctamente en formatos como PNG o similares, ahora esta conversión se hará de forma automática.

Procesamiento del alfa con OpenGL

El procesamiento con OpenGL sigue las mismas reglas que el hecho con el motor Estándar de Blender: si el modo del alfa está definido como Cielo no habrá un alfa presente en las imágenes procesadas con OpenGL, si el modo de alfa se define como Transparente, entonces no habrá color en las áreas transparentes.

La pintura rápida de texturas establecerá el alfa como transparente, de manera que el procesamiento con OpenGL para esta herramienta producirá una imagen con fondo transparente, que no tendrá efectos sobre la pintura de texturas.

Archivos de imagen

Image alpha channel settings

Al guardar imágenes, éstas serán convertidas al tipo de alfa correspondiente para el tipo de formato de archivo escogido.

  • los formatos de 8 bits (como PNG) serán guardados con un alfa directo, los formatos decimales (como OpenEXR o DPX) usarán un alfa premultiplicado.
  • TIFF es manejado de forma un poco distinta, ya que soporta ambos tipos de alfa. Los TIFF de 8 bits serán guardados con alfa directo, pero los de 16 bits lo harán con un alfa premultiplicado. Se guardará la información apropiada en los metadatos del archivo TIFF y éste debería poder ser abierto correctamente con otros programas como Gimp.

Al cargar archivos, ahora es posible definir qué modo de alfa será usado, si bien normalmente es posible dejar esta opción en su valor predefinido y obtener resultados correctos.

Otra opción relacionada con el alfa ha sido agregada a la imagen, llamada Usar alfa. Si esta opción es deshabilitada, el canal alfa de la imagen será ignorado y la imagen cargada será totalmente opaca. Esta opción reemplaza a la opción Usar alfa de las texturas.


Teoría

Alfa Directo

This is the alpha type used by paint programs such as Photoshop or Gimp, and used in common file formats like PNG, BMP or Targa. So, image textures or output for the web are usually straight alpha. RGBA color are stored as (R, G, B, A) channels, with the RGB channels unaffected by the alpha channels.

Alfa Premultiplicado

Rendering will output premultiplied alpha images, and the OpenEXR file format uses this alpha type. So, intermediate files for rendering and compositing are often stored as premultiplied alpha. Compared to straight alpha, the colors could be considered to be stored as (R*A, G*A, B*A, A), with the alpha multiplied into the RGB channel.

This is the natural output of render engines, with the RGB channels representing the amount of light that comes toward the viewer, and alpha representing how much of the light from the background is blocked.

Conversión

Conversion between the two alpha types is not a simple operation and can involve data loss, as both alpha types can represent data that the other can not, though it is often subtle.

Straight alpha can be considered to be an RGB color image with a separate alpha mask. In areas where this mask is fully transparent, there can still be colors in the RGB channels. On conversion to premultiplied alpha this mask is 'applied' and the colors in such areas become black and are lost.

Premultiplied alpha on the other hand can represent renders that are both emitting light and letting through light from the background. For example a transparent fire render might be emitting light, but also letting through all light from objects behind it. On converting to straight alpha this effect is lost.