Creando un Shader complejo en Unreal: Tesselation

Clase 31 de 33Curso de Texturizado de Escenarios para Videojuegos

Contenido del curso

Resumen

Transformar una superficie plana en geometría con relieve real es una de las técnicas más potentes que ofrece Unreal Engine. Mediante un shader de teselación y una textura de height proveniente de Substance Designer, es posible generar volúmenes convincentes que elevan la calidad visual de cualquier escenario de videojuego.

¿Cómo se conecta la textura de height al material?

El punto de partida es un material que ya tiene movimiento gracias a un nodo de paneo. Para sumar profundidad, se arrastra la textura de height al canvas del editor de materiales y se conecta el nodo de panner a las coordenadas UV [0:30]. De esta forma, el desplazamiento de la textura comparte el mismo movimiento que el resto del material.

A continuación se crea un nodo Multiply (atajo: tecla M y clic) que permitirá controlar la intensidad del efecto. Se añade un parámetro escalar llamado intensidad de desplazamiento [1:02], el cual se expone como slider en la instancia del material. Un valor inicial de diez es un buen punto de partida para probar el resultado.

¿Qué papel juegan las Vertex Normals?

Para que la geometría se deforme en la dirección correcta, el resultado del Multiply se vuelve a multiplicar por un nodo llamado Vertex Normals [1:26]. Este nodo toma la dirección perpendicular de cada vértice del objeto y la usa como guía para crear nueva geometría subdividiéndola. Sin este paso, el desplazamiento no seguiría la forma natural de la malla.

¿Por qué no aparece la entrada de world displacement?

Al intentar conectar la cadena de nodos al material, la entrada de world displacement permanece oculta. Esto ocurre porque la teselación no está activada por defecto [1:50].

¿Cómo se activa la teselación y qué opciones existen?

Dentro del panel de detalles del material, Unreal ofrece distintos tipos de dominio (superficie, volumen de luz, función de luz) y modos de blend como opaque, masked o translucent [2:04]. Para habilitar la teselación se debe:

  • Ir a la sección Tessellation en las propiedades del material.
  • Activar la opción y elegir un método de subdivisión.
  • Las dos alternativas principales son Flat Tessellation y PN Triangles [2:30].

PN Triangles suaviza la silueta del objeto al subdividirlo, generando resultados más orgánicos. Una vez seleccionada, aparece la entrada world displacement donde se conecta toda la cadena de nodos construida previamente.

¿Qué ocurre al aumentar la intensidad del desplazamiento?

Con un valor de doscientos, la esfera pierde por completo su silueta original y adopta la forma dictada por la textura de height [2:55]. Las protuberancias simulan rocas de aspecto natural, algo muy útil para escenarios con lava o terrenos agrestes.

Para aplicar el material a la escena se utiliza una instancia de material, que hereda todos los parámetros expuestos sin necesidad de recompilar el shader. Los ajustes más habituales son:

  • Intensidad de desplazamiento: un valor cercano a cincuenta produce un relieve visible sin deformar demasiado la malla [3:22].
  • Escala de la textura: permite controlar el tamaño del patrón de rocas y lava.
  • Height: modifica la diferencia de alturas entre zonas de lava y zonas rocosas [3:50].

¿Por qué dominar los shaders de teselación marca diferencia?

El motor cuenta con un arsenal de herramientas para construir shaders complejos que combinan movimiento, color y geometría en un solo material [4:10]. Aunque se trata de un tema técnico, comprender cómo funcionan los nodos de Multiply, Vertex Normals y las opciones de teselación permite crear superficies mucho más convincentes sin modelar geometría adicional.

Dominar estas técnicas amplía las capacidades artísticas y permite generar escenarios más atractivos para el jugador. Si quieres profundizar, experimenta con distintos valores de intensidad y métodos de subdivisión para encontrar el equilibrio perfecto entre detalle visual y rendimiento.