¿Cuál es la diferencia entre el mapeo de desplazamiento y el mapeo de altura?


15

¿Cuál es la diferencia entre el mapeo de desplazamiento y el mapeo de altura y cuál es la conexión con la teselación adaptativa?


Entonces, digamos cuando quiero usar el mapeo de altura en un objeto pequeño, es decir, una esfera, ¿qué técnicas utilizo para eliminar las grietas? Suavizado? ¿Es eso más eficaz que el desplazamiento y la teselación adaptativa?
Jinxi

Respuestas:


10

El mapeo de desplazamiento y el mapeo de altura son dos nombres para "casi" la misma técnica, tienen el objetivo de hacer el mismo efecto pero se usan en diferentes contextos.

Para explicar más:

Mapeo de desplazamiento: es una técnica que tiene como objetivo representar protuberancias como geometría verdadera, en una malla muy fina. A diferencia del mapeo de protuberancias, el paralaje y el mapeo de relieve que intenta "simular" protuberancias usando mapas normales, el mapeo de desplazamiento en realidad desplaza la superficie, creando triángulos entre los texels. .

Asignación de altura: es lo mismo, pero generalmente se usa en el contexto donde se aplica un mapa de desplazamiento (también llamado mapa de altura) en un terreno donde el valor solo se usa para modificar la altura del vértice.

Se puede implementar en la CPU o la GPU.

Un enfoque común de la CPU es leer valores de altura o desplazamiento de un mapa de altura / desplazamiento (textura) donde cada texel se asigna directamente a un vértice. Donde cada texel codifica un valor de altura / desplazamiento. Esto se aplica directamente a la geometría desplazando cada vértice usando el valor buscado en una dirección única.

La elección de la dirección puede estar en la dirección Arriba (generalmente en el caso de terrenos), lo que da como resultado la modificación del valor del vértice Y, o podría estar en la dirección de la cara normal que generalmente se usa en objetos que no sean terrenos.

Una alternativa de GPU es usar la función de búsqueda de textura de vértice (introducida en Shader Model 3.0) para modificar la malla del terreno accediendo a un mapa de desplazamiento / altura El programa de sombreado de vértice usa la altura recuperada de la textura para modificar la ubicación del vértice .

Otros usos para el uso de una textura permiten una manipulación más rápida de los datos para simulaciones de olas y otras animaciones para aplicar a la malla.

En cuanto a la teselación adaptativa:

Una desventaja del mapeo de desplazamiento es que para terrenos grandes se necesitan muchos polígonos y vértices para modelar un terreno detallado que hace que el mapeo de desplazamiento sea de alguna manera ineficiente para terrenos grandes.

Aquí es donde las técnicas de teselación adaptativa y nivel de detalle entran en juego para hacer que el mapeo de desplazamiento sea más factible, especialmente con el avance de las GPU y la introducción de sombreadores de geometría, la teselación sobre la marcha con este avance se ha convertido en la técnica dominante. Es simple de programar y en GPU más nuevas y tiene pocos inconvenientes.

Otras técnicas, como el relieve y el mapeo de protuberancias, ofrecen realismo adicional a un costo generalmente razonable, pero el hecho de que la superficie base no esté perturbada hace que la detección de colisiones y, por lo tanto, la interacción con los objetos, sea más desafiante.

Como conclusión, el mapeo de desplazamiento y la teselación adaptativa brindan detalles y calidad superiores con menos inconvenientes a un costo de rendimiento factible.


No olvide la última parte de la pregunta "¿y cuál es la conexión con la teselación adaptativa?"
MichaelHouse

@ Byte56 gracias por notificarme, actualicé la respuesta.
concept3d

12

El mapeo de desplazamiento puede significar (pero no siempre significa) un desplazamiento vectorial en cada punto de la superficie. El mapeo de altura implica solo un valor de desplazamiento escalar , es decir, cada punto se empuja a lo largo de su normalidad. Sin embargo, el término "mapeo de desplazamiento" también se puede usar para desplazamientos escalares, por lo que cuando se discuten los desplazamientos de vectores, las personas a menudo dicen explícitamente "mapeo de desplazamiento de vectores".

La teselación se puede usar para aplicar un mapa de desplazamiento, subdividiendo una superficie en pequeños polígonos y aplicando un desplazamiento (visto desde el mapa) a cada vértice de la superficie subdividida. El nivel de subdivisión que necesita depende en parte de cuán ruidoso / detallado sea el mapa de desplazamiento, por lo que la teselación adaptativa puede usarse para subdividir más finamente en las áreas que tienen más detalles, pero menos en las áreas que son más planas, mejorando el rendimiento.


Esta es la respuesta objetivamente correcta. La sutil diferencia será mucho más importante a medida que los principiantes encuentren más código de teselación para copiar y pegar. (El desplazamiento del vector procesal ya ha sido mostrado por nVidia)
MickLH

3

Básicamente, son lo mismo.

El mapeo de desplazamiento es una técnica para agregar detalles de superficie, como el mapeo de relieve . Sin embargo, a diferencia del mapeo de relieve, el mapeo de desplazamiento se trata realmente de deformar la geometría en función de algún mapa de altura de entrada (esencialmente una cuadrícula de valores de elevación).

"Mapeo de desplazamiento" es básicamente otro término, más técnicamente preciso, para lo que se conoce coloquialmente como "mapeo de altura" (estrictamente hablando, "mapeo de altura" probablemente debería referirse al proceso de generar la cuadrícula de datos de elevación a partir de algún material fuente, como como un escáner 3D, que se utilizará en una implementación de mapeo de desplazamiento, pero en la práctica la mayoría de las personas solo usan los términos indistintamente, si incluso dicen "mapeo de desplazamiento".

La técnica no está directamente vinculada a la teselación adaptativa, que consiste en controlar el desglose de una descripción matemática de una malla (como una esfera) en la colección concreta de triángulos que se utilizarán para representar esa malla. El bit "adaptativo" significa que el detalle de teselación cambiará en función de algunos criterios de entrada, como la distancia de visualización.

En el caso de la esfera, por ejemplo, puedes teselar esa esfera de manera muy cruda (efectivamente como un cubo) cuando esa esfera está muy lejos, pero usa más detalles cuando la esfera está cerca.

A menudo verá técnicas como el mapeo de desplazamiento discutido junto con la teselación porque la teselación afectará cómo desea mapear el mapa de elevación a la geometría para realizar el desplazamiento (o qué resolución del mapa de elevación desea seleccionar, etc.).


2

Son el mismo concepto.

EDITAR: ¡El desplazamiento puede estar compuesto de alturas en más de una dimensión!

No comience ninguna guerra semántica sobre esto, pero de manera realista, el mapeo de altura generalmente se refiere a técnicas basadas en gran escala / teselación, donde el mapeo de desplazamiento generalmente se refiere a técnicas a pequeña escala / trazado de rayos.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.