Los modos de mezcla describen cómo se debe mezclar la salida del material actual con lo que ya se haya dibujado en el fondo. Dicho en términos más técnicos, permite controlar cómo el motor combinará el material (color fuente) con lo que ya haya en el búfer de fotogramas (color de destino) al realizar el renderizado de este material enfrente de otros píxeles.
Las opciones de Modo de mezcla se encuentran en el panel de detalles, con el resto de las propiedades del material base:
Este documento utiliza una esfera colocada entre la cámara y una pared para demostrar los distintos modos de mezcla. Al cambiar el modo de mezcla en el material de la esfera, puedes notar cómo el objeto se mezcla con los píxeles detrás de él.
Opaco
El modo de mezcla opaco es el más directo y probablemente el que utilizarás con más frecuencia. Define una superficie que la luz no puede atravesar ni penetrar. Esto es perfecto para la mayoría de plásticos, metales, piedra y un gran porcentaje de las demás superficies. Desde la perspectiva de la cámara, la esfera dorada oculta por completo la pared detrás de ella.
Con máscara
El modo de mezcla enmascarado se utiliza cuando hace falta controlar selectivamente la visibilidad de forma binaria (activada/desactivada). Por ejemplo, piensa en un material que simule una valla de alambre o rejilla. Tendrás algunas zonas que se parecen sólidas, mientras que otras son invisibles. Tales materiales son perfectos para el modo de mezcla enmascarado.
A continuación, se muestra un grafo de material enmascarado con una textura de rayas en blanco y negro conectada a la entrada máscara de opacidad. Las partes blancas de la máscara se renderizan, mientras que las partes negras son invisibles. No hay niveles intermedios de opacidad cuando se utiliza un material enmascarado.
Aquí está ese material desde la perspectiva de la cámara:
Es importante tener en cuenta la diferencia entre transparente y no renderizado. Una superficie transparente, como el vidrio, sigue interactuando con la luz en forma de reflejos (especularidad). Los píxeles que se destruyen en el modo enmascarado es que no se dibujan sin más; no verás ningún reflejo en esas zonas. Si deseas conservar los reflejos o los aspectos especulares, harías bien en utilizar el modo de mezcla traslúcido o considerar hacer un material en capas.
Además, dado que estas funciones no se renderizan en el área enmascarada, no se calculan, lo que genera ahorros en el rendimiento de la GPU.
Máscara de recorte de opacidad
Al utilizar el modo de mezcla enmascarado, deberás prestar especial atención a la propiedad valor de recorte de máscara de opacidad. Esta propiedad mantiene un valor escalar 0-1 que controla qué valor de la máscara de texturas de opacidad se utilizará en un punto límite, más allá del cual no se renderizarán todos los píxeles más oscuros.
Valor de recorte de la máscara de opacidad (arrastra el control deslizante para previsualizar).
En el ejemplo anterior, el material tiene la propiedad dos caras establecida en true (marcada), por lo que se puede ver el interior de la caja.
Además, a pesar del ejemplo interactivo que se muestra aquí, la propiedad valor de recorte de máscara de opacidad no está diseñada para cambiarse en el tiempo de ejecución.
Traslúcido
El modo de mezcla traslúcida se usa para objetos que requieren alguna forma de transparencia. Esto difiere del modo de mezcla enmascarado dado que permite diversos niveles de traslucidez.
Este modo de mezcla funciona tomando un valor o textura de opacidad y aplicándolo a la superficie de tal manera que las zonas negras sean completamente transparentes, las zonas blancas sean completamente opacas, y los distintos tonos de gradación entre ellos dan como resultado los niveles de transparencia correspondientes. En el ejemplo, se conecta una gradación de negro a blanco en la entrada de opacidad, lo que da como resultado una esfera que es completamente transparente en la parte superior de la malla y gradualmente alcanza la opacidad total en la parte inferior.
Una consideración importante al utilizar materiales traslúcidos es que actualmente no admiten la especularidad. Esto significa que no verás reflejos a lo largo de la superficie. Sin embargo, estos reflejos se pueden fingir utilizando un mapa de cubos en una red de nodos similar a esta. La textura del mapa de cubos se añade encima del color base y ya está.
Additive
El modo de mezcla aditivo se limita a tomar los píxeles del material y añadirlos a los del fondo. Esto es muy similar al modo de mezcla Sobreexposición lineal (Añadir) en Photoshop. Esto significa que no hay oscurecimiento; dado que todos los valores de píxeles se añaden, los negros se renderizarán como transparentes. Este modo de mezcla es útil para varios efectos especiales como el fuego, el vapor o los hologramas.
Al igual que sucede con el modo de mezcla traslúcido, este modo de mezcla no respeta la especularidad (es decir, los reflejos). En cualquier caso, la naturaleza aditiva de la mezcla hace que no sea probable que la utilices, pero es posible simular un efecto similar a un reflejo utilizando el método de mapa de cubos que se muestra arriba en la sección Traslúcido.
En la imagen de abajo, se añade una segunda esfera a la escena. Ten en cuenta que donde las dos esferas se superponen, los píxeles se suman y, por lo tanto, se iluminan.
Una desventaja de los materiales aditivos es que a menudo son difíciles de ver contra fondos de colores claros. Una vista lateral de las esferas puede demostrarlo.
Una solución es sustituirlo por el modo de mezcla AlphaComposite, lo que puede mejorar la saturación y la visibilidad en escenas brillantes.
Modular
El modo de mezcla modulado multiplica el valor del material por los píxeles del fondo. El comportamiento es muy similar al modo de mezcla Multiplicar en Photoshop y produce un efecto de oscurecimiento.
En el grafo anterior, el modelo de sombreado de materiales está establecido como sin iluminación y el modo de mezcla como modulado. Se conecta un vector Constant3 en la entrada emisiva para definir el color de la superficie.
Podrás notar de nuevo que con varias esferas, los píxeles que se superponen se multiplican y se oscurecen.
El modo de mezcla modulado es el más adecuado para ciertos efectos de partículas, pero hay que tener cuidado ya que no admite iluminación ni traslucidez separada.
Compuesto alfa
El modo de mezcla AlphaComposite te permite controlar cómo se mezclan partes del material. Con cierta lógica y configuración del material, puedes controlar qué partes se mezclan de forma aditiva y cuáles de forma traslúcida usando la entrada de opacidad del material. AlphaComposite funciona multiplicando el color de la escena subyacente por la inversa de la opacidad del material para que, cuando se añada el material al color de la escena, las zonas de alta opacidad aparezcan más saturadas y llenas que aquellas que son más opacas.
Retención de alfa
El modo de mezcla AlphaHoldout te permite "retener" el alfa de un material, perforando un agujero a través de los objetos directamente detrás de él en el espacio de visualización. La siguiente imagen muestra la disposición de la cámara y la escena para una implementación de AlphaHoldout.
La cámara.
Una malla estática en primer plano actúa como el objeto de "perforación". La AlphaHoldout del material se aplica a esta malla. Este material debe utilizar el modelo de sombreado no iluminado.
Se coloca una superficie receptora (a través de la cual se pretende perforar un agujero) detrás del objeto AlphaHoldout; en este caso, una pared de ladrillos. El material en la superficie receptora debe utilizar los modos de mezcla traslúcido, aditivo, modulado o AlphaComposite. Un material AlphaHoldout no puede actuar sobre un material opaco.
El fondo de la escena, que será visible a través del agujero.
Desde la perspectiva de la cámara, verás un orificio transparente a través de la superficie receptora, haciendo visibles los objetos detrás de esta.
Dado que el material de AlphaHoldOut está en un recurso de malla estática separado, puedes moverlo fácilmente en el editor o animarlo en el juego.
Fórmulas del modo de mezcla
| Modo | Descripción |
|---|---|
Opaco | Color final = Color fuente. Esto significa que se dibujará el material encima del fondo. Este modo de mezcla es compatible con la iluminación. |
Enmascarado | Color final = Color fuente si OpacityMask > OpacityMaskClipValue; de lo contrario, el píxel se descarta. Este modo de mezcla es compatible con la iluminación. |
Traslúcido | Color final = Color fuente * Opacidad + Color de destino * (1 - Opacidad). Este modo de mezcla no es compatible con la iluminación dinámica. |
Aditivo | Color final = Color fuente + Color de destino. Este modo de mezcla no es compatible con la iluminación dinámica. |
Modulado | Color final = Color fuente x Color de destino. Este modo de mezcla no es compatible con la iluminación dinámica ni con la niebla, a menos que sea un material proyectado sobre otro. |
AlphaComposite (alfa premultiplicado) | Color final = Color fuente + Color de destino * (1 - Opacidad fuente). |
AlphaHoldout | Color final = Color de destino * (1 - Opacidad fuente). Este modo de mezcla no es compatible con la iluminación dinámica. |