Ray Tracing Autor: Osvaldo Ramos Tsan Hu Orientador: Prof. Marcio Lobo Objetivo O propósito deste trabalho é apresentar a metodologia de confecção de imagens utilizando a técnica denominada “Ray Tracing”. Ray Tracing Método de renderização. Baseado no conceito de iluminação global. Inversão do sentido dos raios de luz. Testar os raios de encontro a todos os objetos. Determinar sombras, reflexões e texturas dos objetos da cena. Ray Tracing É necessário primeiro se construir o modelo de cenário. Ray Tracing Para a construção do modelo de cenário utiliza-se alguma linguagem que permita a descrição dos objetos da cena. #switch ( Quality ) #declare nice = color white; #declare nice2 = color rgb <.2, .2 ,.8>; #declare grad_tex = texture { pigment { gradient y color_map { [ 0.0 color nice ] [ 0.6 color nice2 ] } } finish { basic_finish } scale 200 } Ray Tracing A partir do cenário construído, adiciona-se as fontes de luz e a posição do olho (câmera). camera { location <0, 300*cos(clock), -750*sin(clock)> direction 2*z up y right 9/16*x look_at <0, 267, 0> } #declare basic_finish = finish { ambient 0.4 diffuse 0.6 brilliance 1 phong 0 phong_size 40 reflection 0 } light_source { <500, 500, 0> color (white) area_light 50*y, 50*z, 5, 5 adaptive 0 jitter } Ray Tracing No Ray Tracing um raio da luz parte do olho ou da câmera e segue até atingir um pixel no plano de imagem da cena Ray Tracing Alguns raios não atingem nenhum objeto. Estes são desprezados. Ray Tracing Outros atingem. Caso o raio atinja o objeto, é necessário saber se esse ponto esta ou não em uma sombra. Ray Tracing Quando um raio bate em um objeto, um segundo raio, chamado “raio de sombra”, é disparado em direção às fontes de luz. Ray Tracing Se o raio de sombra atingir um outro objeto antes de atinjir uma fonte de luz, então aquele pixel está na sombra do primeiro objeto. Ray Tracing Temos o primeiro ponto de interseção da sombra no objeto. Ray Tracing Também, quando um raio bate no objeto, é gerado um raio refletido para testar o encontro à todos os objetos da cena. Ray Tracing Se o raio refletido bater em um objeto então o resultado é retornado ao primeiro ponto da interseção (efeito espelho). Ray Tracing Caso o objeto cruzado seja transparente, um raio é gerado e transmitido para testar o encontro aos outros objetos da cena. Ray Tracing Se o raio transmitido bater em um objeto então um modelo local de iluminação é aplicado no ponto de interseção e o resultado é retornado ao primeiro ponto da interseção. Ray Tracing Os raios refletidos podem gerar outros raios refletidos que podem gerar outros raios refletidos, etc. A seqüência de três imagens mostra uma cena simples com nenhuma reflexão, uma dupla reflexão, e então uma reflexão tripla. Ray Tracing A relação entre os raios de luz: Rin = -Rout A projeção do raio Rin na normal N é N x cos(θ); Rout = N cos(q) + S Rin + S = N cos(q) S = N cos(q) - Rin Rout = 2 N cos(q) - Rin = 2 N (N · Rin) - Rin Ray Tracing Acelerando o Ray Tracer O Ray Tracer é um enorme consumidor de máquina por causa da enorme quantidade de cálculos necessária. Assim para uma cena com 100 objetos e computada com uma definição espacial de 512 x 512, supondo 10 operações em ponto flutuante para o teste do objeto, teríamos aproximadamente 250.000 x 100 X 10 = 250.000.000 operações. Ray Tracing Acelerando o Ray Tracer 1. Usar uma máquina mais rápida 2. Usar máquina que trabalhe com processadores paralelos. 3. Usar algoritmos mais eficientes 4. Reduzir o número de raios Ray Tracing Acelerando o Ray Tracer Controle adaptativo de profundidade • Uma das técnicas para diminuir a quantidade de raios é parar de gerar raios de reflexão e de transmissão quando a intensidade se torna menor do que um valor determinado. • Mas não é necessário atingir o valor máximo se as superfícies não forem altamente reflexivas. Ray Tracing Acelerando o Ray Tracer Volumes limitados • Encapsular e hierarquizar os objetos em volumes e testa-los usando a ordem hierárquica definida. Bibliografia • SigGraph, HyperGraph, home page: http://www.siggraph.org/education/materials/HyperGraph/rayt race/rtrace0.htm • Raves, A: Lego Library, home page: http://www.antonraves.com/lego.html