If you're seeing this message, it means we're having trouble loading external resources on our website.

Se você está atrás de um filtro da Web, certifique-se que os domínios *.kastatic.org e *.kasandbox.org estão desbloqueados.

Conteúdo principal

5. Ray tracing em 3D - parte 1

Agora estamos prontos para traçar uma semirreta (ray tracing) em 3D. Vamos olhar para o problema da interceptação triângulo-semirreta.
Clique aqui para obter mais detalhes sobre equação para plano.

Quer participar da conversa?

Nenhuma postagem por enquanto.
Você entende inglês? Clique aqui para ver mais debates na versão em inglês do site da Khan Academy.

Transcrição de vídeo

RKA8JV Agora que podemos trabalhar com o traçado de raios em 2D podemos finalmente voltar para o problema que realmente precisamos resolver, fazer isto em 3D. Nós vamos precisar usar traçado de raios em planos horizontais, casas e até mesmo personagens. Personagem como o "Carl" é uma forma complexa, mas, como discutimos na lição modelagem de personagens, ele pode ser dividido em pequenos lotes de quadriláteros. E cada quadrilátero pode ser convertido em dois triângulos, por adição de uma aresta que liga os pontos diagonais. Isso leva à pergunta: como se cruza um raio com um triângulo? Esse é um dos cálculos mais fundamentais que um traçador de raios executa. Aqui temos uma cena que consiste em somente um triângulo. Nossas cenas reais contêm milhões deles, mas, uma vez que sabemos como se cruza um único triângulo, o nosso traçador de raios continua fazendo isso para todos os outros. Agora, eu não sei quanto a você, mas eu não gosto de ficar fazendo sempre a mesma coisa. Por sorte, nós temos computadores para nos ajudar nisso, e eles não se cansam. Como em duas dimensões, nós começamos pela criação de um sistema de coordenadas, mas, desta vez, existem 3 direções, "x", "y" e "z". Como explicamos anteriormente, nós escolhemos uma posição da câmera, que vamos chamar de "C", e uma direção de visualização. Construímos um plano de imagem perpendicular à direção de observação. Isto é onde a nossa imagem será formada. Vamos escolher um pixel "P" no plano de imagem e construir a representação paramétrica do raio CP como "R(t) = (1 - t)C + tP" Esta é a mesma equação que vimos em 2D, mas agora ele representa 3 equações separadas. Uma para a coordenada "x", uma para a coordenada "y", e uma para "z". Lembre-se que, no vídeo anterior, vimos que em duas dimensões cada linha pode ser escrita na forma implícita, como "ax + by + c = 0". A equação para um plano é muito semelhante a isto, e todo triângulo encontra-se em um plano, então, a equação para um plano pode ser escrita na forma implícita, como "ax + by + c = 0". O ponto de intersecção "I" que estamos procurando está no plano do triângulo, o que significa que "aIₓ + bIʏ + cIz + d = 0", onde o Iₓ, Iʏ e Iz são as coordenadas de "I". "I" também está no raio, o que significa que há um valor de "t". Mais uma vez, vamos chamá-lo de t*, de modo que "I = R(t*) = (1-t*)C + t* P". O que nada mais é que as 3 equações mostradas aqui, um para "x", um para "y" e um para o "z". Agora temos 4 equações e 4 incógnitas. Para resolver este sistema de equações podemos seguir a receita que usamos em duas dimensões, e substituir as últimas 3 equações na primeira. Isto nos dá uma equação com apenas uma incógnita, que é o t*. Quando você coloca todas estas substituições, parece meio assustador, mas lembre-se, não é tão ruim assim, estamos apenas colocando um valor a partir de uma equação em outra. Resolva isto para o t* e em seguida substitua de volta nas equações de raio para obter Iₓ, Iʏ e Iz. Eu sei, nós fomos um pouco rápido aqui, mas o próximo exercício vai ajudá-lo a praticar este conteúdo sozinho.