[Unity] Aplicación ShaderGraph (flujo de expansión del modelo)

[Unity] Aplicación ShaderGraph (flujo de expansión del modelo)

lograr efecto

ShaderGraph es una herramienta de programación gráfica de Shader para Unity. Este artículo presenta el uso de ShaderGraph para realizar el efecto de flujo de expansión del modelo. Este efecto puede deberse a funciones relacionadas, como la simulación del flujo de fluidos en tuberías.

1. Método de implementación

1. Introducción al uso de nodos

nodo clave

UV : obtiene las coordenadas ultravioleta del modelo.

Vector normal : obtiene las coordenadas normales del modelo.

Posición : obtiene las coordenadas del vértice del modelo.

nodo informático

Agregar : agregar

Restar : menos

Multiplicar : multiplicar

Dividir : excepto

Truncar : redondear (tomar directamente la parte entera antes del punto decimal)

Coseno : cos (valor de entrada en radianes, valor de salida -1 a 1)

otros nodos

Abrazadera : el valor de entrada se intercepta en los valores máximo y mínimo.

Dividir : descomponer

2. Principio de implementación

Como se muestra arriba, Cos puede estar en radianes de 0 a 2 π \piLa distribución sobre π es una curva cóncava suave. Usando esta característica, el eje x (o eje y) uv se puede estirar de 0 a 1 a 0 a 2π \piπ , mediante el cambio de la función cos, se obtiene la posición uv comovalor de la curva cos.

Como se muestra en la figura anterior, el círculo de vértice del modelo corresponde a un valor que se distribuye verticalmente en un cierto valor en el eje X. Al calcular el valor en el eje x uv, se puede calcular el valor de deformación del círculo.

Como se muestra en la figura anterior, es el mapa normal de vértice del modelo. La normal de cada vértice apunta a la dirección de expansión del modelo. Multiplicando el valor Cos de uv por la normal se puede obtener el vector de expansión del vértice .

3. Pasos de implementación

  • Estirar la coordenada x de la uv.
  • Rango de expansión de intercepción
  • Convertir valor cos
  • obtener el vector de inflación
  • Desplazamiento de vértice
  • Muestreo de textura y reflejos dilatados.

(1) Estire la coordenada x de uv

variable

  • UVxLong (flotante): El múltiplo de la longitud de UVxLong, considerando que la distribución en el eje x de uv puede no ser de 0 a 1, si la longitud del eje x de uv es 2, UVxLong es 2. Se utiliza para adaptarse a rayos UV de diferentes longitudes.

  • Tiempos (flotación): El número de períodos de cambio.

Propósito: eliminar UVxLong del eje x de UV para normalizar uv y multiplicar el eje x por 2 π 2\pi2 π (no encontrado aquíπ \pinodo π , reemplazar con 6.28)

(2) Rango de expansión de intercepción

variable

  • Velocidad (flotación): velocidad de cambio de tiempo

Propósito: cuando el período de cambio es mayor que 1, solo existe un nodo de expansión en el modelo. La imagen de arriba se intercepta usando Clamp y el rango de intercepción es de 0 a 6,28.

La función de Times en la figura es acumular el valor uv estirado. Teniendo en cuenta que el valor de uv será mayor que el valor máximo del ciclo, el rango efectivo no se puede interceptar, por lo que el valor máximo se resta de la duración del ciclo actual. para realizar la limpieza del ciclo.

(3) Convertir el valor de Cos

Propósito: Obtener un valor convexo (cóncavo) completo y proporcionar la longitud del módulo como base para la línea normal.

(4) Obtener el vector de expansión

variable:

R: Controla el radio de expansión.

Propósito: multiplicar la normal por el radio de expansión y luego multiplicar el valor después de la conversión de cos, donde el valor después de la conversión de cos es un valor negativo y el vector obtenido es opuesto al normal.

(5) Desplazamiento de vértice

Propósito: dado que el vector de expansión está en la dirección opuesta, reste el vector en la dirección opuesta de las coordenadas del vértice y obtenga positivo de negativo a negativo para encontrar las coordenadas del vértice. (Tenga en cuenta que las coordenadas del vértice aquí son su propio sistema de coordenadas)

(6) Aspectos destacados del muestreo y expansión de texturas

variable:

  • Textrue: textura principal

  • Color: color superpuesto

Propósito: Aquí, reste 2 del valor de cos para obtener una curva de cambio positiva, que se puede multiplicar por el valor del color de superposición de muestreo para resaltar la parte elevada.

En segundo lugar, el caso

1. Introducción del caso

Gráfico de sombreado completo

Panel de variables

Bucle: Controla si la inflación es única o múltiple en el ciclo.

2. Limitaciones del caso

Para lograr un efecto de expansión perfecto, se deben organizar tantos nodos horizontales como sea posible en la tubería, lo que generará demasiados vértices a gran escala y afectará el rendimiento.

Supongo que te gusta

Origin blog.csdn.net/dxs1990/article/details/132270666
Recomendado
Clasificación