Teselación (informática)

En el terreno de los gráficos por computadora, la teselación es utilizada para gestionar un conjunto de datos de polígonos —algunas veces llamados conjuntos de vértices— que representan objetos en una escena y los divide en estructuras aptas para ser renderizadas. La información es teselada en triángulos, sobre todo en el renderizado en tiempo real, como por ejemplo a través de OpenGL 4.0 y Direct3D 11.

Renderización de gráficos 
Una ventaja fundamental del teselado para los gráficos en tiempo real es que permite añadir y quitar detalle dinámicamente de una malla poligonal 3D y la silueta de sus bordes basándose en parámetros de control —como la distancia de la cámara al objeto—. En técnicas anteriores de tiempo real como el mapeado por paralaje o el mapeado topológico, los detalles de las superficies podían ser simuladas a nivel de píxel, pero los bordes de las siluetas estaban limitados por la calidad de la información original.

En la tubería de Direct3D 11 —como parte de DirectX 11—, la primitiva geométrica es la unión de curvas. La teseladora genera una teselación basada en triángulos de una unión de acuerdo con los parámetros de teselación de que disponga, como por ejemplo TessFactor, que controla el grado de finura de la malla. La teselación, junto con los sombreadores, permite crear superficies más suaves de las que se generarían desde la malla poligonal original. 

Al descargar el proceso de la teselación sobre el hardware de la GPU, el suavizado se puede realizar en tiempo real. La teselación también puede usarse para implementar la subdivisión de superficies, el escalado de nivel de detalle, y el mapeado por desplazamiento. OpenGL 4.0 utiliza una tubería similar en la que la teselación en triángulos está controlada por el sombreador de control de teselación así como un conjunto de cuatro parámetros de teselado.

Diseño asistido por computadora 
En el diseño asistido por computadora, el diseño creado está representado por un modelo topológico de los bordes, en el que las curvas y superficies 3D analíticas, limitadas a las caras, bordes y vértices, constituyen un límite del cuerpo 3D. Los cuerpos 3D arbitrarios suelen ser demasiado complicados como para analizarlos directamente. Por lo tanto, son aproximados (teselados) con una malla de piezas 3D pequeñas, con volumen y fáciles de analizar —normalmente en forma de un tetrahedro o hexahedro irregular. La malla se utiliza para el análisis de elementos finitos.

La malla que conforma la superficie generalmente está generada por caras y bordes individuales —aproximados a polilíneas— de forma que los vértices limítrofes originales son incluidos en la malla. Para asegurar que la aproximación de la superficie original se acomoda a las necesidades del procesamiento posterior, se utilizan tres parámetros básicos generalmente definidos para el generador de la malla de la superficie:
 La distancia dejada máxima entre el polígono de aproximación planar y la superficie (sabido cuando "sag"). Este parámetro asegura que la malla es bastante similar a la superficie analítica original (o el polyline es similar a la curva original).
 La medida dejada máxima del polígono de aproximación (para triangulaciones pueda ser longitud dejada máxima de lados de triángulo). Este parámetro asegura bastante detalle para análisis más lejano.
 El ángulo dejado máximo entre dos aproximación adyacente polígonos (en la misma cara). Este parámetro asegura que incluso montículos muy pequeños o huecos que puede tener efecto significativo al análisis no desaparecerá en malla.
Un algoritmo que genera una malla es típicamente controlada por el encima tres y otros parámetros. Algunos tipos de análisis de ordenador de un diseño construido requiere un adaptive refinamiento de malla, el cual es una malla hizo más bueno (utilizando parámetros más fuertes) en regiones donde el análisis necesita más detalle.

Véase también 
 Sombreador de teselación

Enlaces externos 
 GPUOpen: OpenGL Muestra que demuestra terreno tessellation en el GPU

Referencias 

Diseño asistido por computadora
Computación gráfica