Como o mapeamento de textura UVW funciona?

13

Estou tentando entender a teoria matemática por trás do mapeamento UVW. Alguém pode me explicar como o mapeamento UVW funciona? Ou pelo menos me fornecer um ponteiro?

Jack
fonte
2
possível duplicação de O que exatamente é o mapeamento UV e UVW?
bummzack
Obrigado, mas ainda não está claro para mim o significado de W. Existe algum tipo de livro a seguir?
Jack
Eu acho que o W é apenas que as texturas geralmente têm 3 canais, não sei de nenhum uso real para isso.
Elva
1
@ Yourourom O W não tem nada a ver com o número de canais que a textura possui. É bastante usado para texturas 3D ou texturas em perspectiva.
Chris diz Reinstate Monica
4
XY é para XYZ, como UV é para UVW. W é apenas a letra usada ao descrever a 3ª dimensão da textura.
MichaelHouse

Respostas:

14

É assim que eu entendo. Pode estar totalmente errado, mas tenho certeza de que alguémchama Corrija-me se eu estiver errado.

A teoria matemática por trás do mapeamento de textura UVW é semelhante à teoria por trás do mapeamento de textura UVW.

Veja o link de Bummzack aqui: O que exatamente é o mapeamento UV e UVW? para obter uma explicação melhor do que é o mapeamento UV. Basicamente, você está mapeando uma área de uma textura para uma área de uma superfície. Interpolar os valores intermediários com base nesses mapeamentos.

A mesma coisa com UVW. Só que agora você está mapeando um volume de textura para um volume de superfícies. Interpolar os valores intermediários. Agora, com a 3ª dimensão, você pode distorcer uma textura 2D para ajustar melhor um objeto.

Vamos ver como isso é usado em texturas 3D. As texturas 3D podem ser criadas por camadas de texturas 2D e interpolando os texels intermediários. Visualmente, uma textura 3D pode ser algo como isto:

Exemplo de textura 3D

Onde os "planos" no eixo R são texturas 2D. Se definíssemos cada camada com uma cor sólida diferente e aplicássemos isso a um objeto 3D, teríamos algo assim:

Textura 3D aplicada

Você pode ver como as cores sólidas foram interpoladas entre as camadas. Aqui está o mesmo tipo de coisa, mas com uma paisagem. Onde de cima para baixo, as texturas podem ser: neve, pedra, grama, areia.

Panorama

Agora, se estamos usando apenas um "plano" R (uma textura 2D), mas mapeando para um objeto 3D? Obviamente, isso não oferece tanta flexibilidade quanto várias camadas de texturas, mas com certeza é muito menos trabalhoso. No entanto, apenas projetar uma textura 2D em uma superfície 3D causará alguns problemas. Pense na situação em que você está colocando um laser na parede. Em um ângulo perpendicular, o ponto do laser é agradável e redondo. Em qualquer outro ângulo, o ponto começa a se esticar e inclinar. O mesmo acontecerá ao projetar uma textura 2D em uma superfície 3D. Qualquer rosto que não seja perpendicular à projeção será distorcido. Como consertamos isso? Distorcendo a projeção. Tomemos o exemplo do laser, se tivéssemos um laser que, quando brilhava em uma superfície perpendicular, era esticado e inclinado. Quando colocamos o laser em uma parede inclinada, o ângulo pode "A terceira dimensão nos permite "moldar" a projeção para que ela caiba na superfície que estamos buscando. Por exemplo, algum tipo de superfície 3D ondulada pode ter uma textura como esta (mas não tão ruim):

Textura 2D crummy expandida para 3D

Como eu disse, esse é apenas o meu entendimento. Eu concordo, não há muita informação boa por aí sobre esse assunto. Espero que esta resposta (provavelmente errada) leve alguém com mais conhecimento sobre o assunto a falar.

As imagens para as texturas 3D vieram desta página: http://www.gpwiki.org/index.php/OpenGL:Tutorials:3D_Textures

MichaelHouse
fonte