Qual é a diferença entre o mapeamento de deslocamento e o mapeamento de altura?


15

Qual é a diferença entre o mapeamento de deslocamento e o mapeamento de altura e qual é a conexão com o mosaico adaptável?


Então, digamos que quando eu quiser usar o mapeamento de altura em um objeto pequeno, como uma esfera, que técnicas eu uso para eliminar rachaduras? Suavização? Isso tem mais desempenho do que deslocamento e mosaico adaptativo?
Jinxi 13/11

Respostas:


10

Mapeamento de deslocamento e mapeamento de altura são dois nomes para "quase" a mesma técnica; eles objetivam fazer o mesmo efeito, mas são usados ​​em contextos diferentes.

Para explicar mais:

Mapeamento de deslocamento: É uma técnica que visa renderizar solavancos como verdadeira geometria, em uma malha muito fina. Ao contrário do mapeamento de relevo, paralaxe e mapeamento de relevo, que tenta "falsificar" os relevo usando mapas normais, o mapeamento de deslocamento na verdade desloca a superfície, criando triângulos entre os texels. .

Mapeamento de altura: é a mesma coisa, mas geralmente é usado no contexto em que um mapa de deslocamento (também chamado de mapa de altura) é aplicado em um terreno em que o valor é usado apenas para modificar a altura do vértice.

Pode ser implementado na CPU ou na GPU.

Uma abordagem comum da CPU é ler valores de altura ou deslocamento de um mapa de altura / deslocamento (textura) em que cada texel é mapeado diretamente para um vértice. Onde cada texel codifica um valor de altura / deslocamento. Isso é aplicado diretamente à geometria, deslocando cada vértice usando o valor pesquisado em uma direção única.

A escolha da direção pode estar na direção Para cima (geralmente no caso de terrenos), o que resulta na modificação do valor do vértice Y ou na direção da face normal normalmente usada em objetos que não sejam terrenos.

Uma alternativa da GPU é usar o recurso de busca de textura de vértice (introduzido no Shader Model 3.0) para modificar a malha do terreno acessando um mapa de deslocamento / altura. A altura recuperada da textura é usada pelo programa de sombreamento de vértice para modificar a localização do vértice. .

Outros usos de Usar uma textura permitem uma manipulação mais rápida dos dados para simulações de ondas e outras animações a serem aplicadas à malha.

Em relação ao mosaico adaptativo:

Uma desvantagem do mapeamento de deslocamento é que, para terrenos grandes, você precisa de muitos polígonos e vértices para modelar um terreno detalhado, o que torna o mapeamento de deslocamento de alguma forma ineficiente para terrenos grandes.

É aqui que as técnicas de mosaico adaptável e nível de detalhe entram em cena para tornar o mapeamento de deslocamento mais viável, especialmente com o avanço das GPUs e com a introdução de sombreadores de geometria, a execução de mosaico em tempo real com esse avanço tornou-se a técnica dominante. É simples de programar e em GPUs mais recentes e tem poucas desvantagens.

Outras técnicas, como o mapeamento de relevo e relevo, oferecem realismo adicional a um custo geralmente razoável, mas o fato de a superfície da base não ser perturbada torna a detecção de colisão e, portanto, a interação do objeto mais desafiadora.

Como conclusão, o mapeamento de deslocamento e o mosaico adaptável oferecem detalhes e qualidade superiores, com menos desvantagens a um custo de desempenho viável.


Não esqueça a última parte da pergunta "e qual é a conexão com o mosaico adaptável?"
MichaelHouse

@ Byte56 obrigado por me notificar. Atualizei a resposta.
precisa

12

O mapeamento de deslocamento pode significar (mas nem sempre significa) um deslocamento de vetor em cada ponto da superfície. O mapeamento de altura implica apenas um valor de deslocamento escalar , ou seja, cada ponto é empurrado ao longo do seu normal. O termo "mapeamento de deslocamento" também pode ser usado para deslocamentos escalares; portanto, quando são discutidos deslocamentos vetoriais, as pessoas costumam dizer explicitamente "mapeamento de deslocamento vetorial".

O mosaico pode ser usado para aplicar um mapa de deslocamento, subdividindo uma superfície em pequenos polígonos e aplicando um deslocamento (erguido o olhar do mapa) para cada vértice da superfície subdividida. O nível de subdivisão necessário depende, em parte, de quão ruidoso / detalhado é o mapa de deslocamento, de modo que o mosaico adaptável pode ser usado para subdividir mais finamente nas áreas com mais detalhes, mas menos nas áreas mais planas, melhorando o desempenho.


Esta é a resposta objetivamente correta. A diferença sutil se tornará muito mais importante à medida que os iniciantes encontrarem mais código de mosaico para copiar e colar. (Deslocamento vector de procedimentos já foi apresentado pela nVidia)
MickLH

3

Basicamente, eles são a mesma coisa.

O mapeamento de deslocamento é uma técnica para adicionar detalhes de superfície, como o mapeamento de relevo . Ao contrário do mapeamento de bump, no entanto, o mapeamento de deslocamento consiste em realmente deformar a geometria com base em algum mapa de altura de entrada (essencialmente uma grade de valores de elevação).

"Mapeamento de deslocamento" é basicamente outro termo, mais tecnicamente preciso, para o que é conhecido coloquialmente como "mapeamento de altura" (a rigor, "mapeamento de altura" provavelmente deve se referir ao processo de geração da grade de dados de elevação de algum material de origem, como como um scanner 3D, que será usado em uma implementação de mapeamento de deslocamento - mas, na prática, a maioria das pessoas usa os termos de forma intercambiável, se é que eles dizem "mapeamento de deslocamento").

A técnica não está diretamente ligada ao mosaico adaptativo, que consiste em controlar a decomposição de uma descrição matemática de uma malha (como uma esfera) na coleção concreta de triângulos que serão usados ​​para renderizar essa malha. O bit "adaptável" significa que os detalhes do mosaico serão alterados com base em alguns critérios de entrada, como a distância da vista.

No caso da esfera, por exemplo, você pode ordenar essa esfera de maneira muito grosseira (efetivamente como um cubo) quando essa esfera estiver muito distante, mas use mais detalhes quando a esfera estiver próxima.

Freqüentemente, você verá técnicas como o mapeamento de deslocamento discutidas em conjunto com o mosaico, porque o mosaico afetará como você deseja mapear o mapa de elevação para a geometria para executar o deslocamento (ou qual resolução do mapa de elevação você deseja selecionar etc.).


2

Eles são o mesmo conceito.

EDIT: O deslocamento pode ser composto de alturas em mais de uma dimensão!

Não inicie nenhuma guerra semântica sobre isso, mas, realisticamente, o mapeamento de altura geralmente se refere a técnicas baseadas em larga escala / mosaico, onde o mapeamento de deslocamento geralmente se refere a técnicas de pequena escala / rastreamento de raios.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.