Aprende Unreal Engine 4

Tessellation en UE4

April 04, 2018 | 2 Minute Read

¿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:

Displacement Mapping

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

Displacement Mapping

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

Este es el nodo GenerateBand en acción:

Generate Band

Y podemos usarlo así:

Displacement Mapping with Generate Band

Displacement Mapping with Generate Band

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

Displacement Mapping with Generate Band

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

Wireframe

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:

Tessellation setting

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

Tessellation Multiplier 0

Tessellation Multiplier 0

Tessellation Multiplier 0

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:

Tessellation Material

Y este su resultado:

Tessellation Material Preview

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

Tessellation Material Extra Setting

¿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.

Smoothing groups