mapeamento de colisão e mapeamento normal são dois métodos diferentes de fazer a mesma coisa: criar a ilusão de textura de superfície para um modelo de computador visual.
esses métodos são úteis para saber se você está criando personagens de videogame ou renderizando animações 3D.
os mapas de colisão impõem uma imagem em tons de cinza, para que as manchas escuras pareçam mais profundas e forneçam contraste para “saliências” mais claras.”Mapas normais usam uma escala RGB para derivar normais vetoriais 3D para a superfície 3D. Isso engana a luz renderizada para criar destaques e sombras. Ambos os métodos deixam a geometria inalterada.
conhecer as diferenças entre essas duas técnicas pode ajudar a determinar qual delas é mais adequada para a aplicação em questão. Continue lendo para saber mais sobre os dois para que você possa adicioná-los à sua bolsa de Truques.
a principal diferença é a iluminação
o objetivo de ambos os mapas é dar a uma superfície a ilusão de textura em uma superfície que não tem textura. Isso é benéfico para videogames porque significa que a malha do modelo não precisa ser tão boa que captura fisicamente todos os pequenos detalhes como um mapa de deslocamento.O mapa cria essa ilusão distorcendo a maneira como a luz renderizada interage com uma superfície. É também aqui que o mapa de colisão pode se tornar limitante, dependendo do nível de detalhe que você está tentando alcançar.
- um mapa de colisão informa ao renderizador quais áreas de uma superfície são mais brilhantes e quais áreas são mais escuras, independentemente da direção da fonte de luz.
- um mapa normal relaciona os normais da superfície artificial com o resto do espaço 3D e dita matematicamente como a textura interage com a fonte de luz renderizada.
portanto, o resultado em ambos os casos é que uma forma geometricamente lisa parece ter uma textura de superfície muito detalhada. No entanto, o mapa de colisão começa a vacilar quando o objeto texturizado é visto de diferentes ângulos. A textura percebida provavelmente não irá interagir com a luz ambiental de uma forma crível.
para entender isso mais, vamos dar uma olhada em como cada método processa a textura.
um mapa de colisão usa uma escala de cinza definida para manipular a altura
se você criar um mapa de colisão ou apenas olhar para um, verá uma imagem em preto e branco. Não há mais nada. Essencialmente, o mapa usa essa escala de cinza para dizer ao mecanismo de renderização quais pontos são claros e quais pontos são escuros.
- as áreas pretas no mapa indicam locais escuros ou “afundados” na superfície
- as áreas brancas no mapa indicam locais destacados ou “salientes” na superfície
- e cada tom de cinza entre os atos de acordo.
a maioria dos motores de renderização faz isso relacionando a tonalidade de cinza ao vetor normal da superfície. Como os vetores normais são como o mecanismo de renderização “vê” a superfície, essa é uma maneira de induzi-la a renderizar textura em uma superfície realmente lisa.
A relação entre tons de cinza e a normal da superfície, como tal,:
- Preto = tangente à superfície
- Branco = normal à superfície
E qualquer tom de cinza entre altera o ângulo do vetor normal. Isso é bacana porque permite que a imagem em tons de cinza atue como um tradutor entre o designer de jogos humano, que vê uma imagem em preto & branco, e o mecanismo de renderização, que vê uma imagem em termos de normais de superfície.
agora, como mencionado anteriormente, há um déficit para este método no que diz respeito à iluminação. O mapa de colisão define uma distribuição normal de superfície fixa. Em outras palavras, ele só cria efeitos de iluminação locais. Ele só dirá ao mecanismo de renderização quais áreas da superfície são mais escuras do que outras em relação a si mesma.Portanto, o mapa de colisão não fornece o mecanismo de renderização suficiente para considerar de onde vem a fonte de luz global em relação aos detalhes em uma superfície. Isso pode levar a uma situação em que as sombras de uma superfície estão realmente voltadas para a fonte de luz, e os destaques são onde você esperaria que as sombras estivessem.
se o usuário final vê sombras onde seus olhos esperam destaques, eles podem achar os gráficos menos críveis. Isso não significa que os mapas de colisão estejam totalmente obsoletos. Eles podem ser usados por conta própria ou em conjunto com outros mapas para realmente melhorar a renderização geral. Vamos entrar em algumas práticas recomendadas em um pouco, mas primeiro um pouco em mapas normais e como eles interagem com a iluminação.
um mapa Normal usa RGB para manipular a luz
como aludimos, mapas normais têm a capacidade de incorporar melhor a iluminação global na textura de superfície percebida de um objeto.
eles fazem isso fornecendo ao mecanismo de renderização uma terceira informação ou canal de cores para usar. Em contraste, um mapa de colisão tecnicamente fornece apenas dois canais de cores para usar; preto ou branco. O mapeamento Normal usa a escala de cores RGB para calcular uma superfície normal a partir de três vetores componentes em vez de dois. RGB, neste caso, significa:
- Vermelho
- Verde
- Azul
Para entender isso melhor, sem dar uma dissertação de mestrado em álgebra linear, vamos voltar rapidamente para pensar sobre bump maps por um segundo. A tonalidade de cinza equivale essencialmente ao ângulo de um vetor em relação à própria superfície. Esse vetor é composto por dois vetores componentes no espaço do objeto cartesiano, um no eixo tangente (preto) e outro no eixo normal (branco).
quanto mais próxima a cor estiver do preto em um determinado local, menor será o ângulo entre o vetor normal e a própria superfície. Por outro lado, quanto mais perto do branco estiver a imagem, mais perto do ortogonal estará o vetor normal.
mas se estamos operando no espaço 3D, e a terceira dimensão? É aqui que os mapas normais entram com RGB em vez de escala de cinza. Como o mapa de colisão, um mapa normal tem um eixo tangente e um eixo normal, mas também introduz o eixo bitangente. E como existe um terceiro eixo, precisa haver uma terceira cor para representá-lo. A tabela abaixo ilustra como cada mapa traduz cores em vetores.
Eixo Do Vetor | Bump Map Tradução De Cor | Mapa Normal De Conversão De Cores |
Normal | Branco | Azul |
Tangente | Preto | Vermelho |
Bitangent | N/d | Verde |
A chave para entender aqui é que o mapa normal tem a capacidade de definir normals de superfície em 3D espaço global, porque há vetor de três componentes que compõem disse o normal. Cada um dos componentes pode estar relacionado aos componentes globais X, Y E Z do espaço mundial cartesiano no qual uma fonte de iluminação é fixada.
um mapa de colisão não pode fazer isso porque não há um terceiro componente relacionando o normal ao espaço cartesiano global. É por isso que você pode acabar com destaques onde você esperaria sombras com mapeamento de colisão.
os três componentes vetoriais de um mapa normal compõem um sistema cartesiano, o que significa que são todos ortogonais entre si. No entanto, o sistema de coordenadas ainda pode ser orientado em uma quantidade infinita de direções e precisa ser limitado de alguma forma para que o mapa faça sentido.
isso é feito orientando os componentes vetoriais para as coordenadas de textura do mapa. A maioria dos softwares de renderização e modelagem 3D fará isso em segundo plano para você, portanto, não se preocupe se você não estivesse prestando atenção na aula de álgebra linear. Normalmente, existem 3 orientações diferentes para escolher:
- Tangente espaço
- espaço Objeto
- espaço do Mundo
Cada um deles tem suas vantagens e desvantagens, dependendo do tipo de aplicação do objeto. Vamos entrar nisto mais tarde.
independentemente de qual orientação é usada, é um passo importante porque permite que o mecanismo de renderização calcule os normais de superfície de uma forma que todos eles se relacionem suavemente uns com os outros. O resultado é uma textura superficial percebida que reage uniformemente à fonte de luz global.
então essa é a grande diferença. Ambos os mapas afetam a iluminação em uma superfície, mas o fazem de maneiras diferentes. O mapa normal se destaca em sua capacidade de relacionar uma textura de superfície ao espaço 3D em que reside. Isso acabará por fornecer renderizações mais críveis, embora não seja incomum usar mapas de colisão e mapas normais juntos para criar superfícies altamente detalhadas.
novamente, nenhum desses métodos realmente modifica a geometria 3D da superfície subjacente.
uma nota rápida sobre a orientação normal do mapa
como os mapas normais determinam o ângulo em que a luz se reflete em uma superfície, é importante considerar como o mapa em si é orientado em relação ao objeto ao qual é aplicado.
o espaço tangente é mais comum
quando um mapa normal é orientado no espaço tangente, seus normais de textura são armazenados em relação à geometria normal. Isso normalmente é o mais versátil porque permite que o objeto se mova e se deforme no espaço, mantendo os efeitos da textura intactos. Isto é particularmente útil quando texturização coisas como:
- Um personagem de pele
- Mover têxteis
- Objetos que se movem e interagem com o usuário
linha de Fundo; use isso se o objeto que você está texturização vai estar a mover-se no espaço com o usuário.
o espaço do objeto cria maior qualidade ao custo da versatilidade
um mapa normal orientado no espaço do objeto calcula suas normais em relação ao objeto como um todo. O objeto ainda pode se mover, mas se suas superfícies se deformarem, pode haver problemas com o normal. Os mapas são geralmente adaptados especificamente ao objeto ao qual estão sendo aplicados, o que leva a detalhes mais nítidos e melhor suavização.
isso dificulta a reutilização ou o ladrilho do mapa em outras superfícies. As coordenadas de textura também não podem ser espelhadas. Portanto, modelar a textura em objetos simétricos será o dobro do trabalho.
o espaço mundial cria um mapa totalmente fixo
um mapa normal orientado no espaço mundial é fixado no lugar em relação às coordenadas 3D globais. Isso significa que o objeto ao qual ele é aplicado deve permanecer estacionário; caso contrário, ele “escapará” de baixo do mapa se for movido.
isso é bom para criar altos níveis de detalhes em objetos grandes e estacionários de um ambiente.
Qual Mapa Tem Uma Melhor Velocidade De Renderização?
embora a velocidade de renderização seja fortemente dependente do próprio mecanismo de renderização, os mapas de colisão e os mapas normais ocupam diferentes quantidades de memória.
normalmente, os mapas normais são mais rápidos de renderizar do que os mapas de colisão.
a diferença não é drástica, mas está lá. Mapas normais ligeiramente borda para fora mapas de colisão porque eles não exigem várias amostras de textura como mapas de colisão fazer.
que tipo de mapa devo usar?
como em qualquer coisa, não há consenso unânime de que um desses mapas seja melhor que o outro. Mapas de colisão e mapas normais ambos têm vantagens em diferentes aplicações. Vamos explorar alguns destes.
melhores usos para mapeamento Normal
já tocamos em alguns deles ao discutir as diferentes orientações normais do mapa. De um modo geral, os mapas normais são a solução mais versátil quando você precisa de uma textura que responda bem ao movimento. Isto pode aplicar-se a apenas sobre qualquer coisa:
- Caracteres
- Armas/ferramentas/objetos
- Veículos
- Têxteis
- Folhagem
mapas Normais também são úteis para trazer detalhes em partes do ambiente que devem ser vistos de perto.
- Paredes
- Passarelas
- Sinalização
mapas Normais são extremamente versáteis, especialmente com a tangente espaço de orientação. Eles também envolvem as bordas para criar um efeito de chanfro favorável, algo que os mapas de colisão não podem fazer. Isso suaviza as bordas afiadas em um objeto que não deve parecer ter bordas afiadas, tornando a imagem mais crível.
Este não alcançar o mesmo nível de detalhe, como um deslocamento do mapa (que vamos toque rapidamente no final deste artigo), mas pelo menos criar a ilusão de bordas arredondadas em coisas como a:
- Maçanetas
- Arma manipula
- Parede cantos
Este sutil efeito não é alcançável com um bump map.
melhores usos para mapeamento de colisão
mapas de colisão são melhor usados para superfícies de fundo ou objetos relativamente pequenos. Pense em características ambientais que devem ser percebidas à distância.
- Sala de operação
- Paisagens
- paisagens de cidade
Desde bump maps não fazer, bem como mapas de normais em objetos em movimento, eles são facilmente aplicável a uma cena de pano de fundo ou médio nível de detalhe aspectos. Como eles são mais fáceis de criar e não exigem tanto cálculo vetorial, eles são a opção de menor esforço.
no entanto, quando aplicado a partes de um ambiente que não estarão sob tanto escrutínio, os mapas de colisão dão mais estrondo para o seu dinheiro proverbial.
eles também podem ser usados juntos
não se esqueça de que Mapas de colisão e mapas normais podem ser colocados em camadas um sobre o outro para criar ainda mais profundidade de detalhes para sua renderização.
como em qualquer mapa de textura, você pode colocar quantas camadas quiser para atingir o nível de detalhe desejado.
- Bump maps ajustar a altura percebida de uma superfície em relação ao próprio
- Normal ajustar a percepção ângulo em que a luz reflete na superfície
Combinar esses dois para equilibrar os benefícios de ambos, altura e ângulo de manipulação de sua superfície.
Para Resumir.A diferença entre um mapa de colisão e um mapa normal é como cada um manipula uma superfície para interagir com a luz. Os mapas de colisão funcionam em “duas dimensões” usando uma escala de cinza para mover artificialmente partes de uma superfície para cima ou para baixo. Subir significa mais brilhante, e descer significa mais escuro.Mapas normais funcionam em “três dimensões” usando canais de cor vermelha, verde e azul para manipular artificialmente a direção na qual a luz reflete de uma superfície.
os mapas podem ser usados juntos ou individualmente, e nenhum mapa de textura realmente altera a geometria da superfície. Embora os mapas normais possam envolver as bordas para criar um efeito de bisel, ambos os mapas não têm a capacidade de produzir a ilusão de textura ao longo de uma borda.
Bônus: E Os Mapas De Deslocamento?
se você precisar renderizar as bordas de uma superfície para que a silhueta do objeto corresponda à Textura, um mapa de relevo ou mapa normal não o cortará.
a vantagem dos mapas de colisão e mapas normais é que eles criam a ilusão de textura sem realmente alterar a malha da superfície. Isso significa que o tamanho do modelo pode permanecer pequeno e o tempo de renderização ainda é muito rápido. Mas isso limita a quantidade de detalhes nas bordas do objeto.
é aqui que entram os mapas de deslocamento. Considere o exemplo de uma parede de tijolos. Os tijolos se destacam em relação à argamassa que os mantém juntos. Então, se você estivesse olhando ao redor da borda deste canto, não pareceria uma linha reta, os tijolos se projetariam e a argamassa recuaria.Nem mapas normais nem mapas de colisão podem alcançar essa ilusão, e seria apenas uma tarefa tediosa sentar lá e realmente modelar todos esses tijolos. Sem mencionar que isso tornaria seu modelo 3D bastante desajeitado.
é aqui que entra o mapeamento de deslocamento. Ele, como um mapa de colisão, ajusta a altura de uma superfície. Mas em vez de manipular a iluminação, ela manipula a forma real do objeto quando renderizada. Por causa disso, requer mais tempo de renderização e uma malha muito mais fina na superfície. Por exemplo, a superfície maior precisa ser dividida em centenas, mais provavelmente milhares, de superfícies individuais.
isso vale a pena, se o mecanismo de renderização for poderoso o suficiente e o detalhe for necessário.
abaixo estão alguns vídeos úteis para mostrar esses conceitos visualmente:
mapeamento de colisão: