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?
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?
Respostas:
É 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:
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:
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.
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):
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