Traçado de raio: diferenças entre revisões

Conteúdo apagado Conteúdo adicionado
Linha 8:
 
Esta técnica apesar de, computacionalmente, ser muito mais exigente do que a técnica [[scanline rendering]], é capaz de produzir um grau de foto realismo muito elevado tornando-se ideal para aplicações onde podemos, previamente, tratar a imagem, como no [[cinema]], [[televisão]] e [[efeitos especiais]], e menos adequado para aplicações em tempo real como [[jogos de computador]] onde a velocidade é crítica.
 
 
== Algoritmo ==
 
 
Para cada pixel da imagem
{
Criar um raio a partir do ponto de visão (observador) e que passe pelo PixelActual
Inicializar NearestT em INFINITO
Inicializar NearestObject em NULL
Para cada objecto da cena
{
Se o raio intercepta o ObjectoActual
{
Se a distância t da intercepção é menor que NearestT
{
Colocar NearestT = t distância da intercepção
Colocar NearestObject = a ObjectoActual
}
}
}
Se NearestObject = NULL
{
Preencher PixelActual com a cor do fundo
}
Senão
{
Lançar um novo raio a cada fonte de luz para comprovar as sombras
Se a superfície é reflectora
{
gerar um raio reflector (recursivo)
}
Se a superfície é transparente
{
gerar um raio refractor (recursivo)
}
Usar NearestObject e NearestT para processar a função sombreado
Preencher este pixel com a cor resultante da função sombreado
}
}