El mapeo de desplazamiento es una técnica alternativa de gráficos por computadora que contrasta con el mapeo de relieve , normal y paralaje , utilizando un mapa de textura o altura para producir un efecto donde la posición geométrica real de los puntos sobre la superficie texturizada se desplaza , a menudo a lo largo de la normal local de la superficie , según el valor que la función de textura evalúa en cada punto de la superficie. [ 1 ] Proporciona a las superficies una sensación de profundidad y detalle, permitiendo en particular la autooclusión, el auto-sombreado y las siluetas; por otro lado, es la más costosa de esta clase de técnicas debido a la gran cantidad de geometría adicional.
Durante años, el mapeo de desplazamiento fue una peculiaridad de los sistemas de renderizado de alta gama, como PhotoRealistic RenderMan , mientras que las API en tiempo real , como OpenGL y DirectX , apenas comenzaban a utilizar esta función. Una de las razones es que la implementación original del mapeo de desplazamiento requería una teselación adaptativa de la superficie para obtener suficientes micropolígonos cuyo tamaño coincidiera con el de un píxel en la pantalla.
Significado del término en diferentes contextos
El mapeo de desplazamiento incluye el término "mapeo", que se refiere al uso de un mapa de texturas para modular la intensidad del desplazamiento. La dirección del desplazamiento suele ser la normal de la superficie local. Actualmente, muchos renderizadores permiten el sombreado programable , lo que posibilita la creación de texturas y patrones procedimentales (multidimensionales) de alta calidad a frecuencias arbitrariamente altas. En consecuencia, el uso del término "mapeo" resulta cuestionable, ya que no interviene ningún mapa de texturas. Por lo tanto, hoy en día se suele utilizar el término más amplio " desplazamiento" para referirse a un concepto general que también incluye el desplazamiento basado en un mapa de texturas.
Los motores de renderizado que utilizan el algoritmo REYES , o enfoques similares basados en micropolígonos , han permitido el mapeo de desplazamientos a frecuencias arbitrariamente altas desde que estuvieron disponibles hace casi 20 años.
El primer motor de renderizado disponible comercialmente que implementó un enfoque de mapeo de desplazamiento de micropolígonos mediante REYES fue PhotoRealistic RenderMan de Pixar . Los motores de renderizado de micropolígonos suelen teselar la geometría con una granularidad adecuada para la imagen que se está renderizando. Es decir, la aplicación de modelado proporciona primitivas de alto nivel al motor de renderizado. Algunos ejemplos incluyen NURBS reales , o superficies de subdivisión . El motor de renderizado luego tesela esta geometría en micropolígonos durante el renderizado, utilizando restricciones basadas en la vista derivadas de la imagen que se está renderizando.
Otros renderizadores que requieren que la aplicación de modelado entregue objetos pre-teselados en polígonos arbitrarios o incluso triángulos han definido el término mapeo de desplazamiento como el movimiento de los vértices de estos polígonos. A menudo, la dirección del desplazamiento también se limita a la normal de la superficie en el vértice. Si bien conceptualmente son similares, estos polígonos suelen ser mucho más grandes que los micropolígonos. Por lo tanto, la calidad que se logra con este enfoque está limitada por la densidad de teselación de la geometría mucho antes de que el renderizador tenga acceso a ella.
Esta diferencia entre el mapeo de desplazamiento en renderizadores de micropolígonos y el mapeo de desplazamiento en renderizadores de macropolígonos sin teselación suele generar confusión en conversaciones entre personas con conocimientos limitados de cada tecnología o implementación. Más aún, dado que en los últimos años muchos renderizadores sin micropolígonos han incorporado la capacidad de realizar mapeo de desplazamiento con una calidad similar a la que un renderizador de micropolígonos puede ofrecer de forma natural. Para distinguir entre el desplazamiento rudimentario basado en la preteselación que estos renderizadores realizaban anteriormente, se introdujo el término desplazamiento subpíxel para describir esta característica.
El desplazamiento subpíxel se refiere comúnmente a una reteselación más fina de la geometría que ya ha sido teselada en polígonos. Esta reteselación da como resultado micropolígonos o, a menudo, microtriángulos. Los vértices de estos se mueven a lo largo de sus normales para lograr el mapeo de desplazamiento.
Los renderizadores de micropolígonos auténticos siempre han sido capaces de hacer lo que el desplazamiento subpíxel logró recientemente, pero con mayor calidad y en direcciones de desplazamiento arbitrarias.
Los recientes avances parecen indicar que algunos de los renderizadores que utilizan desplazamiento subpíxel también están adoptando la compatibilidad con geometría de nivel superior. Dado que es probable que los proveedores de estos renderizadores sigan utilizando el término desplazamiento subpíxel, esto probablemente generará mayor confusión sobre el verdadero significado del mapeo de desplazamiento en los gráficos 3D por computadora .
En referencia al lenguaje de sombreado de alto nivel (HLL) propietario de Microsoft , el mapeo de desplazamiento puede interpretarse como una especie de "mapeo de texturas de vértices", donde los valores del mapa de texturas no alteran los colores de los píxeles (como es mucho más común), sino que cambian la posición de los vértices. A diferencia del mapeo de relieve, normal y paralaje, que se podría decir que "simulan" el comportamiento del mapeo de desplazamiento, de esta manera se puede producir una superficie genuinamente rugosa a partir de una textura. Debe utilizarse junto con técnicas de teselación adaptativa (que aumentan el número de polígonos renderizados según la configuración de visualización actual) para producir mallas con gran detalle.
Véase también
Lecturas adicionales
- Mapeo de desplazamiento en Blender
- Mapeo de desplazamiento Vray
- Sitio web de mapeo de texturas de relieve
- Mapeo de oclusión de paralaje en GLSL en sunandblackcat.com
- Documento sobre mapeo de relieve en tiempo real en superficies poligonales arbitrarias
- Documento sobre el mapeo del relieve de detalles de superficies sin campos de altura
- Estado del arte del mapeo de desplazamiento en la GPU ( documento)
Referencias
- ↑ "Capítulo 8. Mapeo de desplazamiento por píxel con funciones de distancia" . NVIDIA Developer . Consultado el 10 de mayo de 2023 .
- Mapeo de texturas