El teselado por hardware es una técnica que procesa en tiempo real. La unidad de procesamiento gráfico subdivide dinámicamente una malla de baja resolución para convertirla en una de alta resolución mientras renderiza. Esto permite crear detalles geométricos muy finos sin sobrecargar la memoria, ya que la malla compleja no se almacena sino que se genera al momento. Se usa junto con mapas de desplazamiento, que son texturas que indican a la geometría hacia dónde moverse, añadiendo profundidad y relieve realistas a la superficie.


El proceso se divide en tres etapas

Primero, el shader de teselación de casco o hull shader recibe un parche de control. Este shader define cuánto se debe subdividir la malla, calculando los factores de teselación. Luego, el tessellator es una etapa fija de la GPU que crea la nueva malla, generando los puntos y triángulos según las instrucciones previas. Finalmente, el shader de dominio o domain shader recibe estos nuevos puntos y los desplaza en el espacio, aplicando la información del mapa de desplazamiento para dar forma final a la geometría detallada.

Su aplicación equilibra rendimiento y detalle

Esta técnica es útil en videojuegos y aplicaciones de visualización 3D donde se necesita mucho detalle pero con un uso eficiente de recursos. Permite que objetos lejanos se rendericen con poca geometría para ahorrar potencia, mientras que los objetos cercanos adquieren un alto nivel de detalle al teselarse. Así, la GPU administra su carga de trabajo de forma dinámica, priorizando los detalles donde el usuario más los percibe. Se implementa a través de APIs gráficas como DirectX 11 y OpenGL 4.0, que exponen el pipeline de teselación programable.

Aunque promete detalle infinito, un factor de teselación excesivo puede hacer que tu GPU emita un suave y cálido suspiro... convertido en humo.