Este es un pequeño sombreador que apareció cuando estaba pensando en varios métodos para aplicar el mapa de flujo. Hay muchos efectos de transición / disolución, pero la mayoría de ellos se ven bastante estáticos ya que usan texturas estáticas. Este sombreador está lejos de ser perfecto, pero el movimiento suave lo hace visualmente atractivo como un efecto de quemado suave.
El sombreador en sí es extremadamente simple, a continuación describiré el proceso de creación. Como con la mayoría de mis sombreadores, lo envolví en una función de material para que pueda usarse con cualquier material existente.
Nota Puede abrir imágenes en una nueva pestaña para verlas en una resolución más alta.
Texturas
Utilicé las siguientes texturas en el sombreador, la primera es el ruido simple generado en el Diseñador de sustancias, la segunda es el mapa de flujo que pinté con
FlowMap Painter .


Configurar FlowMap
El mapeo de flujo es un método mediante el cual usamos vectores 2D almacenados como texturas para distorsionar las texturas UV a lo largo del tiempo. Esta animación luego se repite para crear la ilusión de flujo. Por lo general, esto se usa en corrientes de agua para crear la impresión de que el agua fluye alrededor de las piedras, etc. Pero, por supuesto, se puede usar para muchas otras cosas. En mi sombreador, lo uso para crear el efecto de quemar material. Si desea comprender más sobre el mapa de flujo, le recomiendo leer
un artículo sobre Polycount y ver una
lección de Simonschreibt , en la que explica perfectamente cómo trabajar con el mapa de flujo.
Mi opción de configuración a continuación

Como puede ver, tenemos opciones para controlar la intensidad de la distorsión, el mosaico de texturas y también la dirección del flujo.
Para controlar el efecto, utilizo la salida del canal rojo del mapa de ruido, si observa el nodo Lerp, verá el siguiente resultado:

Máscara Esfera
Este paso se puede implementar de varias maneras, al final, todo lo que necesita es un valor de escala de gradiente para controlar nuestro efecto. En este caso, uso SphereMask controlado por la posición del plano para mover nuestra máscara. Al mover el plano, puedo influir en qué áreas se queman, así como animar el radio de la esfera para crear un efecto de combustión. Si desea aprender cómo configurar un conjunto de parámetros de material para transferir la posición de BP a un sombreador, le recomiendo leer sobre el
sombreador Wormhole , donde describo esto en detalle.
Crear SphereMask es fácil, ya que UE4 ya tiene una función incorporada.

En este caso, el radio se indica en coordenadas mundiales (World Space), para ver esto, intente cambiar el valor del radio. Por defecto, la ubicación de SphereMask es {0, 0, 0}, por lo que notará que la esfera aparece en el centro de la malla.

El siguiente paso es restar el resultado del ruido del mapa de flujo de SphereMask, de modo que obtengamos un patrón similar a una grabación a medida que la máscara se escala.

Tenga en cuenta que puede configurar el parámetro de dureza de SphereMask para controlar la propagación en la transición.
Dureza: 0.2 | Dureza: 0.5 |
---|
 |  |
Ahora podemos tomar el resultado y multiplicarlo por Opacity_Mask y devolver la Opacidad del material a nuestro canal para obtener la máscara final.
También puede hacer esto sin ajustar el mapa de flujo utilizando solo una textura estática. La única diferencia es que usando el mapa de flujo lograrás una animación más suave. A continuación puedes ver la diferencia.
con diagrama de flujo | sin diagrama de flujo |
---|
 |  |
Edge Glow y carbonización
Para crear bordes ardientes y obtener un contorno negruzco carbonizado, utilizamos la técnica que utilicé en muchos de mis sombreadores, donde configuramos el gradiente de máscara en 0 y creamos una máscara de borde con la función de distancia.
A continuación puede ver estas configuraciones. Lo único que debe tenerse en cuenta aquí es que elegimos 0,45 para el contorno de brillo y 0,5 para el contorno de carbonización para que se compensen entre sí, y la carbonización aparece alrededor del brillo. Luego creamos un parámetro a partir del ancho para controlar la propagación según sea necesario.

Si coloca una vista previa en cada uno de estos nodos, verá lo siguiente
Emberglow | Carbonizado |
---|
 |  |
Ahora tome el resultado de EmberGlow y multiplíquelo por el color de la llama, luego agréguelo al color Emissive y regréselo a la entrada de nuestro material.

Alternativamente, puede usar el resultado de la sección EmberGlow como datos difusos para mostrar colores basados en el gradiente. Esta técnica se denomina renderizado de degradado, y UE4 ahora tiene una función CurveAtlass que le permite definir curvas de color y acceder a ellas dentro del sombreador. Tenga en cuenta que esta es una función experimental, y encontré varios bloqueos al intentar usarla en mis sombreadores, por lo que le aconsejo que se abstenga de usarla por ahora.

Luego tomamos el resultado de la sección de carbonización y lo multiplicamos por Basecolor de la entrada de la función para obtener el valor de Final Basecolor.

Ahora puedes ver cómo los bordes se vuelven negros antes de quemar

Aquí es donde hemos terminado.
Ahora la parte más genial: podemos mover nuestro plano para cambiar el área de combustión. Por ejemplo, en un juego, podemos usar la ubicación de la antorcha del jugador para controlar este efecto. Como resultado, parecerá que está quemando algo. Y podemos controlar el parámetro y el radio de dureza SphereMask para obtener el aspecto que necesitamos. Así es como se verá con diferentes configuraciones.

Además, puede animar el radio para que parezca que se apaga con el tiempo.
Puede tomar un proyecto de ejemplo con este sombreador desde
el repositorio de github