Un material interactivo reacciona en una malla cuando se cruza o está muy cerca de otra malla. Este efecto se logra usando un campo de distancia.
A continuación se muestran tres formas de crear un material reactivo:
Cómo utilizar la distancia para crear una máscara que cambia el color de una malla.
Cómo utilizar una onda sinusoidal para causar ondas en la superficie de la malla donde las dos mallas se cruzan.
Cómo utilizar una máscara vectorial para hacer que la superficie de la malla se acerque a otra malla cercana y envuelva la malla que se cruza.
El nodo DistancetoNearestSurface solo funciona en plataformas que tienen campos de distancia habilitados. Por lo tanto, es posible que el material no funcione como se esperaba en PC y dispositivos móviles de bajo rendimiento porque el cálculo del campo de distancia suele ser un cuello de botella en el rendimiento debido a los campos de alta resolución, o una tarea casi imposible debido a las degeneraciones en las mallas de entrada.
Por lo tanto, utiliza el ShadingPathSwitch para forzar a los shaderes en el DistancetoNearestSurface a fin de que funcionen según lo configurado con plataformas móviles y PC de bajo rendimiento.
Primero, empieza por hacer un material que cambie de color cuando se cruce con otra malla:
Crea un nuevo material en el explorador de contenido y haz doble clic en la miniatura del material para abrir el editor de materiales.
Crea los siguientes nodos:
Nodo DistancetoNearestSurface
Nodo ShadingPathSwitch
Nodo Divide
Nodo Saturate
Nodo OneMinus
Nodo Time
Nodo Sine
Nodo Add
Nodo VertexNormalWS
Nodo Mask
3 nodos Multiply
Arrastra el nodo DistancetoNearestSurface y conéctalo a la entrada predeterminada en el nodo ShadingPathSwitch.
Selecciona el nodo Divide y cambia el valor de entrada de ConstB a 50.0. Esto determina la distancia entre los objetos para que se produzcan los efectos.
Arrastra el nodo Divide y conéctalo a la entrada Móvil en el ShadingPathSwitch. Esto garantizará que la máscara de sombreado funcione correctamente en todas las plataformas.
Arrastra el nodo ShadingPathSwitch y conéctalo al nodo Saturate. Esto satura el color de la malla.
Arrastra el nodo Saturate y conéctalo al nodo OneMinus. Esto invierte los shaderes de la malla.
Arrastra el nodo OneMinus y conéctalo a la entrada Color base en el nodo principal del material.
Esto crea la base para la configuración del campo de distancia con una representación matemática de la distancia entre objetos. Los shaderes crean un efecto de máscara en la malla. Prueba esto en una malla cruzando esa malla con otra para ver cómo reacciona el material.
Observa cómo el material crea una línea en torno a la forma del automóvil a medida que se acerca.
Efecto ondulante
Ahora crea la segunda configuración del material reactivo:
Arrastra el nodo Time y conéctalo a la entrada B del nodo Add.
Arrastra el nodo Add y conéctalo al nodo Sine.
Arrastra el nodo Sine y conéctalo a la entrada B del primer nodo Multiply.
Selecciona y expande el nodo Sine y cambia el valor de Período a 0.2.
Arrastra el nodo OneMinus y conéctalo a la entrada A del primer nodo Multiply.
Arrastra el primer nodo Multiply y conéctalo a la entrada Color base en el nodo principal del material. Esto romperá el enlace entre el nodo OneMinus y el nodo principal del material.
Esta configuración aplica color a la malla que ahora es reactiva, usando la configuración anterior del campo de distancia. El material interactúa con el entorno y crea una malla a su alrededor. Cuando la malla se cruza con otra malla, el material provoca ondas por toda la superficie.
Esta configuración se usa comúnmente para crear agua.
Efecto envolvente
Ahora crea la tercera configuración del material reactivo:
Arrastra el nodo OneMinus y conéctalo a la entrada Color base en el nodo principal del material. Esto rompe el enlace entre el primer nodo Multiply y el nodo principal del material.
Arrastra el nodo VertextNormalWS y conéctalo al nodo Mask.
Arrastra el nodo Mask y conéctalo a la entrada A del segundo nodo Multiply.
Selecciona y expande el segundo nodo Multiply, cambia el valor de entrada B a 50.0.
Arrastra el segundo nodo Multiply y conéctalo a la entrada B del tercer nodo Multiply.
Arrastra el nodo OneMinus de la primera configuración y conéctalo a la entrada A del tercer nodo Multiply.
Arrastra el tercer nodo Multiply y conéctalo a la entrada Compensación de posición del entorno en el nodo principal del material.
Así es como debería verse la segunda configuración.
En la ventana de vista previa, observa cómo el material cambia a una apariencia puntiaguda. Cuando se aplica a la malla, la forma de la malla también cambia. A medida que la malla se acerca al automóvil, el material hace que la malla se envuelva alrededor del vehículo.