DirectX 11 Tessellation|NVIDIA
GeForce

DirectX 11 Tessellation

Teselación de DirectX 11: qué es y por qué es importante

Con los últimos comentarios sobre DirectX 11, probablemente ha oído hablar bastante sobre uno de sus nuevos y mejores recursos: la teselación. Como concepto, la teselación es bastante simple: se toma un polígono y se divide en partes más pequeñas. Entonces, ¿qué lo hace genial? Y ¿qué beneficios les brinda a los juegos? En este artículo, veremos por qué la teselación le aporta cambios profundos a los gráficos en 3D en la PC y cómo las GPU de la serie NVIDIA® GeForce® GTX 400 brindan un rendimiento revolucionario para la teselación.

En su forma más básica, la teselación es un método para dividir polígonos en piezas más finas. Por ejemplo, si toma un cuadrado y lo corta diagonalmente, habrá “teselado” este cuadrado en dos triángulos. Por sí misma, la teselación hace muy poco por mejorar el realismo. Por ejemplo, en un juego, realmente no importa si un cuadrado se renderiza como dos triángulos o como dos mil triángulos. La teselación apenas mejora el realismo si los nuevos triángulos se usan para representar nueva información.

Triangle Mapping Displacement Mapping
Cuando se aplica un mapa de desplazamiento (a la izquierda) a una superficie plana, la superficie resultante (a la derecha) expresa la información de la altura codificada en el mapa de desplazamiento.

La forma más simple y popular de poner los nuevos triángulos en uso es una técnica llamada mapeo de desplazamiento. Un mapa de desplazamiento es una textura que almacena la información de la altura. Cuando se aplica a una superficie, les permite a los vértices de esa superficie desplazarse hacia arriba o hacia abajo de acuerdo con la información de la altura. Por ejemplo, el artista gráfico puede tomar una losa de mármol y “desplazar” los vértices para formar una escultura. Otra técnica popular es aplicar los mapas de desplazamiento en el terreno para formar cráteres, cañones y picos.

Así como la teselación, el mapeo de desplazamiento ha estado en uso durante mucho tiempo, pero hasta hace poco, nunca se había aprovechado realmente. La razón es que para que el mapeo de desplazamiento sea efectivo, la superficie debe estar hecha de un gran número de vértices. Para tomar el ejemplo de la escultura en el mármol, si el bloque de mármol estuviera hecho de ocho vértices, ningún desplazamiento relativo entre ellos puede producir el relieve de un dragón. Un relieve detallado apenas se puede formar si hay suficientes vértices en la red de la base para representar la forma nueva. En esencia, el mapeo de desplazamiento necesita la teselación y viceversa.

Con DirectX 11, la teselación y el mapeo de desplazamiento finalmente se unen con éxito y por eso, ya los desarrolladores están adoptando la placa. Juegos populares como Alien vs. Predator y Metro 2033 usan la teselación para producir modelos más suaves y los desarrolladores de Valve y del software id han hecho un trabajo promisorio al aplicar estas técnicas a sus personajes de juego existentes.

Coarse Model
Después de que el modelo áspero (a la izquierda) pasa por la teselación, se produce un modelo más suave (el del medio). Cuando se aplica el mapeo de desplazamiento (a la derecha), los personajes se aproximan más del realismo cinematográfico. © Kenneth Scott, id Software 2008

Debido a que el canal de teselación de DirectX 11 se puede programar, es posible usarlo para resolver un gran número de problemas gráficos. Veamos cuatro ejemplos.

Mapeo perfecto de bultos

Model Comparision

En su forma más básica, el mapeo de desplazamiento se puede usar como sustituto similar de las técnicas existentes de mapeo de bultos. Las técnicas actuales como el mapeo normal crean la ilusión de superficies desiguales por medio de un mejor sombreado de píxeles. Todas estas técnicas funcionan apenas en casos particulares y cuando lo hacen no son muy convincentes. Tomemos el caso del mapeo de oclusión de paralaje, una forma bastante avanzada de mapeo de bultos. Aunque produce la ilusión de la geometría de superposición, solo funciona en superficies planas y apenas en el interior del objeto (vea la imagen anterior). El verdadero mapeo de desplazamiento no presenta ninguno de esos problemas y produce resultados precisos desde todos los ángulos de visualización.

Personajes más suaves

Smoothing Character
Los Triángulos PN permiten suavizar de forma automática los personajes sin que el artista tenga que introducir información. Tanto el realismo de la iluminación como el de la geometría mejoran.

El otro compañero natural de la teselación son los algoritmos de refinamiento. Un algoritmo de refinamiento toma un modelo áspero y, con la ayuda de la teselación, crea un modelo con una apariencia más suave. Un ejemplo popular son los Triángulos-PN (también conocidos como parches N). El algoritmo de los Triángulos PN convierte los modelos de baja resolución en superficies curvas que se vuelven a extraer como una red de triángulos finamente teselados. Muchos de los elementos visuales que se consideran inevitables en los juegos actuales (articulaciones de personajes en forma de bloques, ruedas de vehículos con formas poligonales y rasgos faciales ásperos), se pueden eliminar con la ayuda de esos algoritmos. Por ejemplo, los Triángulos PN se usan en Stalker: Call of Pripyat para producir personajes con una apariencia más uniforme y orgánica.

Nivel impecable de detalles

En juegos con entornos grandes y abiertos, es probable que haya notado que los objetos distantes a menudo aparecen y desaparecen. Esto se debe a que el motor del juego alterna entre diferentes niveles de detalle (o “LOD”, por sus siglas en inglés) para mantener la carga de trabajo geométrico al día. Hasta este momento, no había una forma fácil de variar el nivel de detalles continuamente en la medida en que requeriría mantener varias versiones del mismo modelo o entorno. La teselación dinámica resuelve este problema al variar el nivel de detalle al instante. Por ejemplo, cuando un edificio distante aparece por primera vez, se puede renderizar con apenas diez triángulos. A medida en que uno se acerca, surgen sus características prominentes y se usan triángulos adicionales para delinear detalles como las ventanas y el tejado. Cuando finalmente se llega a la puerta, se dedican mil triángulos a renderizar apenas el pomo de bronce antiguo, en el que cada ranura se ha esculpido meticulosamente con el mapeo de desplazamiento. Con la teselación dinámica, se elimina la desaparición de objetos y los entornos del juego se pueden aumentar con detalles geométricos casi ilimitados.

Trabajo gráfico escalable

Para los desarrolladores, la teselación mejora mucho la eficiencia de su canal de creación de contenido. Al describir su motivación para usar la teselación, Jason Mitchell de Valve dice: “Nos interesa la capacidad de crear elementos que nos permitan aumentar y reducir. Es decir, queremos construir un modelo una vez y ser capaces de aumentarlo hasta obtener calidad cinematográfica… Por otra parte, queremos poder disminuir naturalmente la calidad de un elemento para satisfacer las necesidades de la renderización en tiempo real en un sistema dado”. Esta capacidad de crear un modelo una vez y usarlo en diversas plataformas significa menos tiempos de desarrollo y, para el jugador en PC, la imagen con la más alta calidad posible en su GPU.

Cómo las GPU GeForce GTX 400 manejan la teselación

Los diseños de la GPU tradicional usan un único motor de geometría para realizar la teselación. Este abordaje es análogo a los primeros diseños de la GPU que usaban un único canal de píxeles para realizar el sombreado de píxeles. Al ver cómo los canales de píxeles aumentaron de una única unidad a muchas unidades paralelas y cómo predominaron en el realismo en 3D, diseñamos nuestra arquitectura de teselación para que fuera paralela desde el principio.

Las GPU GeForce GTX 400 vienen construidas con hasta quince unidades de teselación, cada una de ellas con hardware dedicado para la lectura de vértices, la teselación y las transformaciones coordinadas. Funcionan con cuatro motores de rasterización paralelos que transforman los triángulos recién teselados en un flujo fino de píxeles para el sombreado. El resultado es un rendimiento revolucionario en la teselación: más de 1,6 mil millones de triángulos por segundo con un rendimiento sostenido. Comparado con el producto más rápido de la competencia, la GeForce GTX 480 es hasta 7,8 veces más rápida (de acuerdo con mediciones del sitio Web independiente Bjorn3D.

Conclusión

Después de muchos años de prueba y error, la teselación finalmente ha sido posible en la PC. Juegos impresionantes como Metro 2033 ya muestran el potencial de la teselación. Con el tiempo, la teselación se volverá tan crucial e indispensable como el sombreado de píxeles. Considerando su importancia, NVIDIA ha iniciado el proceso al crear una arquitectura de teselación paralela desde el principio. El resultado es la familia de GPU GeForce GTX 400, una verdadera revolución en realismo geométrico y rendimiento para la teselación.



Twitter Facebook LinkedIn Reddit