Raytracer
Conceito
Ray tracing (traçado de raios) é um algoritmo de computação gráfica que oferece uma ferramenta para visualização de imagens com alto grau de realismo.
O algoritmo de "ray tracing" simula (ou "rastreia") alguns dos raios de luz que transitam no espaço e chegam até o observador, formando a imagem. Este "rastreamento" dos raios de luz é feito segundo equações da Óptica (Lei de Snell, etc.
O algoritmo se baseia numa idéia muito simples: Do observador partem diversos "raios visuais" que vão atravessar os pontos da tela e bater nos objetos tridimensionais da imagem. Pintamos, então, o ponto da tela que foi atravessado pelo raio com a cor do objeto que foi atingido por este. Esta seria uma versão básica do raytracer.
A versão do algoritmo denominada "exaustiva" (exhaustive ray tracing) calcula a intersecção de uma semi-reta (originada no ponto de observação e direcionada a cada ponto da tela) com todos os objetos presentes no cenário. Esta semi-reta é denominada "raio" pois simula um raio de luz que, partindo da superfície de um objeto atinge o observador.
Intersecção dos raios
A rotina principal do ray tracer é encontrar a interseção mais próxima de um raio com uma cena composta por um certo número de primitivas geométricas. Isto eventualmente exige o cálculo de intersecções entre os raios e as primitivas.
Determinados todos os pontos de intersecção do raio com os objetos do cenário, o mais próximo do observador é selecionado pois indica a superfície visível. Neste ponto é calculada a normal à superfície do objeto para uso na equação de iluminação.
Como determinar a cor do pixel onde ocorreu a intersecção?
Quando o raio visual atinge um objeto visível, o ponto da tela a ser pintado possui características do ponto do objeto que foi atingido, mas não é necessariamente da cor do objeto. Diversos fatores influem no cálculo da cor do ponto, como a iluminação, por exemplo. Se girarmos um objeto, a impressão visual