Tessellation en UE4

¿Qué es Tessellation? Tessellation es el proceso por el cuál la GPU puede subdividir la geometría de manera dinámica y en tiempo real. Lo que nos permite hacer efectos realmente chulos con los materiales. Veamos unos cuantos.

Lo primero es lo primero, ¿para que querríamos subdividir la geometría de manera dinámica? La clave aquí está en los displacement maps. Así que aparquemos por un momento tessellation y veamos eso del displacement mapping.

Displacement Mapping

El displacement mapping es una técnica por la cuál los vértices de una geometría se desplazan localmente. Fíjate en el siguiente material:

Desplazamiento en World Position Offset

En este caso se desplazan (0, 0, 50) unidades los vértices de la geometría dando como resultado el siguiente efecto:

Podemos hacer un material más interesante usando el nodo GenerateBand.

Este es el nodo GenerateBand en acción:

Y podemos usarlo así:

Este plano tiene 100 vértices, si usamos el mismo material con un plano de 6500 vértices tenemos:

Aquí ambos planos funcionando con el material en modo wireframe (puedes activar el modo wireframe en el viewport con Alt+F2):

Fíjate el plano con menos vértices no se ve todo lo suave que querríamos por insuficiente número de vértices. Mientras que en el plano con mayor número de vértices se ve muy bien pero a un precio excesivo (demasiados vértices).

Tessellation al rescate

Ahora es dónde encontramos la tessellation útil. Haremos  subdivisión pero no en toda la geometría, si no justo dónde desplazamos los vértices y de manera dinámica.

Lo primero que tenemos que hacer es activar la tessellation en el material:

Activar Tessellation

Entonces en el material podemos conectar el Tessellation Multiplier, fíjate como cambia la subdivisión:

Tessellation Multiplier 0
Tessellation Multiplier 0.2
Tessellation Multiplier 1

Pero esto no es lo que queremos, queremos subdividir una parte de la geometría de manera dinámica. Así quedaría el material final:

Material con tessellation

Y este su resultado final:

En los settings del material referente a tessellation hay varias opciones:

¿Cuál es la diferencia?

  • Con Flat cada tríangulo es dividido en más triángulos. Sin más.
  • Con PN Triangles además se hace uso de los smoothing group para suavizar el objeto.
Jorge Moreno Aguilera

Jorge Moreno Aguilera