Baixe o app para aproveitar ainda mais
Prévia do material em texto
Visibilidade Ray-Tracing Instituto Superior Técnico Apontamentos CG + Edward Angel, Sec. 7.11 e Cap.13 Instituto Superior Técnico Computação Gráfica 2009/2010 1 Na últimas aulas � Terminado Pipeline de Visualização 3D � Introdução ao Ray-Tracing ©2010, CG&M/IST e Figuras Addison Wesley Sumário � Ray-Tracing � Algoritmo � Cálculo de Intersecções Interacção da Luz com Superfícies ©2010, CG&M/IST e Figuras Addison Wesley � Interacção da Luz com Superfícies � Estratégias de Optimização Computação Gráfica Ray-TracingRay-Tracing Ray-Tracing � Opera ao nível da precisão da imagem � Tem em conta efeitos ópticos � Refracção � Reflexão � Síntese de cenas com elevado realismo ©2010, CG&M/IST e Figuras Addison Wesley � Síntese de cenas com elevado realismo � Objectivo � Combinar num só modelo � Remoção de superfícies ocultas � Sombreamento devido a iluminação directa � Sombreamento devido a iluminação global � Cálculo de sombras Centro de Cena Ray Tracing: Filosofia ©2010, CG&M/IST e Figuras Addison Wesley Centro de Projecção Janela de Visualização Sombreamento com Ray Casting Para(cada pixel) Criar raio do ponto de vista Para (cada objecto na cena) Encontrar Intersecção com o raio Manter se mais próximo Sombrear de acordo com luz e normal ©2010, CG&M/IST e Figuras Addison Wesley Ray-Casting Informação para Sombreamento � Características da Superfície e da Cena � Normal à superfície � Direcção da luz � Ponto de vista “viewpoint” ©2010, CG&M/IST e Figuras Addison Wesley � Propriedades do Material � Componente Difusa (matte) � Componente Especular (brilho) � ... Esfera Matte Esferas Brilhantes Sombreamento com Ray-Tracing Para(cada pixel) Criar raio do ponto de vista Para (cada objecto na cena) Encontrar Intersecção com o Raio Primário Criar Raios Secundários Sombrear de acordo com contribuições ©2010, CG&M/IST e Figuras Addison Wesley Ray-Tracing Tipos de Raios � Raios Primários � raios que unem o centro de projecção com os objectos � Raios Secundários � raios reflectidos � raios refractados ©2010, CG&M/IST e Figuras Addison Wesley � raios refractados � raios de iluminação ou sombra (shadow feelers) Ray-Tracing Tipos de Raios � Raios secundários � Sombras � Reflexão � Refracção ©2010, CG&M/IST e Figuras Addison Wesley 11 Ray-Tracing Raios Primários ©2010, CG&M/IST e Figuras Addison Wesley Normalmente, um raio primário não intersecta qualquer objecto ... Ray-Tracing Raios Primários ©2010, CG&M/IST e Figuras Addison Wesley … mas, às vezes, intersecta um objecto. Ray-Tracing Raios Primários � Neste caso são criados raios secundários � Raios de Iluminação (Shadow Feelers) � Raios Reflectidos � Raois Refractados ©2010, CG&M/IST e Figuras Addison Wesley 14 Ray-Tracing Raios Primários � Neste caso são criados raios secundários � Raios de Iluminação (Shadow Feelers) � Raios Reflectidos � Raois Refractados ©2010, CG&M/IST e Figuras Addison Wesley 15 Ray-Tracing Raios de Iluminação (shadow feelers) ©2010, CG&M/IST e Figuras Addison Wesley Raio de iluminação une o ponto intersectado à fonte de luz ... Ray-Tracing Raios de Iluminação (shadow feelers) ©2010, CG&M/IST e Figuras Addison Wesley … mas, às vezes, intersecta um objecto antes de atingir a fonte de luz ... Ray-Tracing Raios de Iluminação (shadow feelers) ©2010, CG&M/IST e Figuras Addison Wesley … e o ponto de intersecção pode estar na sombra, só sendo iluminado pela luz ambiente ou na penumbra se o objecto for translúcido. Ray-Tracing Raios Reflectidos ©2010, CG&M/IST e Figuras Addison Wesley Um raio reflectido: que ponto da cena atinge? Ray-Tracing Raios Reflectidos ©2010, CG&M/IST e Figuras Addison Wesley A cor local do ponto de intersecção do raio reflectido à adicionada à cor local do ponto original. Ray-Tracing Raios Reflectidos Sem reflexão ©2010, CG&M/IST e Figuras Addison Wesley 1 nível de reflexão 2 níveis de reflexão Ray-Tracing Raios Reflectidos S e m r e f l e x ã o 1 n í v e l d e r e f l e x ã o ©2010, CG&M/IST e Figuras Addison Wesley 1 n í v e l d e r e f l e x ã o 2 n í v e i s d e r e f l e x ã o 3 n í v e i s d e r e f l e x ã o Ray-Tracing Raios Refractados ©2010, CG&M/IST e Figuras Addison Wesley Se o objecto intersectado é transparente ou translúcido... Ray-Tracing Raios Refractados ©2010, CG&M/IST e Figuras Addison Wesley … a cor do ponto de origem da transmissão é adicionada à cor do ponto original. Ray Tracing Algoritmo � Todos os cálculos processam-se no espaço-objecto � Para cada ponto (ou pixel) do plano de imagem: � traça-se um raio com origem no ponto de observação em direcção à cena a representar ©2010, CG&M/IST e Figuras Addison Wesley � em direcção à cena a representar � Se o raio intersecta um objecto � efectuam-se cálculos locais de iluminação � para determinar o sombreamento (ou cor) desse ponto como resultado da iluminação directa sobre ele aplicada (iluminação ambiente e fontes de luz) Ray Tracing O Algoritmo � Se o objecto é parcialmente reflector e/ou transparente � cálculo de sombreamento no ponto inclui: � contribuições luminosas de raios reflectidos e transmitidos � O cálculo dessas contribuições implica: traçado dos respectivos raios em sentido inverso, ©2010, CG&M/IST e Figuras Addison Wesley � traçado dos respectivos raios em sentido inverso, � determinação das intersecções com a cena � eventual traçado de novos raios a partir desses pontos de intersecção � O processo termina quando: � se atinge o fundo da cena (sai da cena) ou � se atinge um número máximo de superfícies intersectadas ou � a contribuição é menor que um valor arbitrado Ray Tracing Recursividade Plano de Visualização 1 3 4 7 10 11 12 13 14 15 ©2010, CG&M/IST e Figuras Addison Wesley Cena constituída por esferas semi-transparentes 1 2 4 5 6 8 9 Ray Tracing Algoritmo Completo Procedure TraceRay( pontoOrigem, direccao, nivel, cor){ var pontoInterseccao, direccaoReflexao; var direccaoTransmissao, corLocal, corReflexao; var corTransmitida; if ( nivel > nivelMaximo ) { cor = negro; } else { pontoInterseccao = (intersecção mais próxima de pontoOrigem); ©2010, CG&M/IST e Figuras Addison Wesley pontoInterseccao = (intersecção mais próxima de pontoOrigem); if ( !intersecção ) { cor = corFundo; } else { corLocal=(contribuição da iluminação directa); (calcular direccaoReflexao); TraceRay(pontoInterseccao, direccaoReflexao, nivel+1, corReflexao); (calcular direccaoTransmissao); TraceRay( pontoInterseccao, direccaoTransmissao, nivel+1, corTransmitida); (combinar(cor, corLocal, corReflexao, pesoRefl, corTransmitida, pesoTrans)); } } } Ray Tracing Recursividade Raios traçados a partir do ponto de observação A 1 Plano de Visualização 3 7 10 11 12 13 14 15 ©2010, CG&M/IST e Figuras Addison Wesley Profundidade = 4 (após 4 intersecções, as contribuições luminosas globais são desprezadas). 6 7 8 9 12 13 14 15 4 5 10 11 2 3 Fundo A A A B B B C C C C Fundo Fundo Fundo 1 2 3 4 5 6 8 9 Computação Gráfica Cálculo de IntersecçõesCálculo de Intersecções em Ray Tracing Ray Tracing Cálculo de intersecções � Estimativa de Whitted � 90 a 95% do tempo de processamentoé gasto no cálculo das intersecções em cenas de média complexidade � Tipo de intersecção: raio (recta) com um objecto ©2010, CG&M/IST e Figuras Addison Wesley � esfera � polígono � Necessita calcular normal para calcular sombreamento � Não necessita determinar intersecções entre objectos 31 Ray Tracing Cálculo de intersecções � Sugerida utilização de “volume envolvente” � para cada objecto � Se raio não intersecta o volume envolvente não há necessidade de efectuar cálculos de intersecção ©2010, CG&M/IST e Figuras Addison Wesley � não há necessidade de efectuar cálculos de intersecção com os vários polígonos do objecto � Esferas são volumes envolventes mais utilizados � pelas suas características isotrópicas � pela facilidade de cálculo da intersecção com um raio 32 Equação Paramétrica dos Raios tRRtR d rrr += 0)( ©2010, CG&M/IST e Figuras Addison Wesley 33 t<0 – para trás do centro de projecção (não interessa!) t=0 – Centro de projecção t=1 – Plano de projecção t>1 – Para lá do plano de projecção Intersecção Raio-Esfera – 1 � Raio � Esfera (x0,y0,z0) (x1,y1,z1)(xc,yc,zc)( ) ( ) ( ) tzztzzzz tyytyyyy txxtxxxx d d d +=−+= +=−+= +=−+= 0010 0010 0010 ©2010, CG&M/IST e Figuras Addison Wesley Esfera � substituindo x, y, z do raio na equação da esfera, vem 022 =+− CtBtA ( ) ( ) ( ) 02222 =−−+−+− rzzyyxx ccc ( ) ( ) ( ) ( ) ( ) ( ) 2202020 000 222 rzzyyxxC zzzyyyxxxB zyxA ccc cdcdcd ddd −−+−+−= −+−+−= ++= Intersecção Raio-Esfera – 2 Normalizando o vector do raio Podemos simplificar resolução da equação com: 11222 =⇒=++ Azyx ddd CBBt −±= 2 ©2010, CG&M/IST e Figuras Addison Wesley B2- C Conclusão <0 O raio não intersecta a esfera =0 O raio é tangente à esfera >0 O raio intersecta a esfera na raiz correspondente ao ponto mais próximo (mas atenção…) CBBt −±= Em princípio queremos o mais próximo (menor): Mas... (a) t<0, não intersecta (b) origem dentro da esfera (C>0): há duas soluções, Intersecção Raio-Esfera – 3 CBBt −−= 2 ©2010, CG&M/IST e Figuras Addison Wesley (b) origem dentro da esfera (C>0): há duas soluções, queremos a maior, e não a menor! (c) caso “normal” (a) (b) (c) Intersecção Raio-Esfera – 4 Não queremos calcular tudo antes de saber se há intersecção ou não... Solução: calcular Se <0, não há intersecção possível (outra forma: se e B<0, não intersecta) OCRt Dd •=min 2d ≥ ©2010, CG&M/IST e Figuras Addison Wesley Rd Rd 0 C 0C tdmin 0 C 0C tdmin (outra forma: se e B<0, não intersecta) 22 rd oc ≥ Intersecção Raio-Plano � Equação do plano � substituindo na equação paramétrica da recta e resolvendo em ordem a t, vem 0DzCyBxA =+++ ©2010, CG&M/IST e Figuras Addison Wesley resolvendo em ordem a t, vem � Raio paralelo ao plano se ( ) ddd i zCyBxA DzCyBxA t ++ +++− = 000 d i RN DRN t • +• −= 0 0=• dRN Intersecção Raio-Polígono – 1 � Soluções � simples com pouca precisão � mais complicada � Simples: o polígono ©2010, CG&M/IST e Figuras Addison Wesley � Simples: o polígono contém o ponto de intersecção ? � sim, se a soma dos ângulos entre linhas traçadas dos vértices para o ponto for igual a 360 graus) Intersecção Raio-Polígono – 2 � Determinação geométrica se o raio e o plano se intersectam, todas as projecções em (x,y), (x,z) e (y,z) contêm o ponto de intersecção ©2010, CG&M/IST e Figuras Addison Wesley se uma das projecções do polígono não intersecta o raio, não há intersecção projecção por eliminação da coordenada de maior valor absoluto da normal ao plano Intersecção Raio-Polígono – 3 � Intersecção: semi-recta com origem no ponto intersecta polígono um número ímpar de vezes V* V ©2010, CG&M/IST e Figuras Addison Wesley válido para polígonos côncavos e auto-intersectantes U* V* U Computação Gráfica Interacção da Luz com Superfícies Interacção da Luz com Superfícies em Ray Tracing Cor de um Ponto – 1 A cor de cada ponto de uma superfície resulta de: � Cor local � devido à iluminação da superfície por luz directa e luz ambiente ©2010, CG&M/IST e Figuras Addison Wesley � Cor do raio luminoso reflectido � segundo a direcção de reflexão � Cor do raio luminoso transmitido � segundo a direcção de refracção ponto de origem do raio Cor de um Ponto – 2 � Contribuições para a Intensidade Luminosa de um Ponto de uma Superfície ©2010, CG&M/IST e Figuras Addison Wesley Raio proveniente da direcção de refracção Raio proveniente da direcção de reflexão ponto da 1ª superfície Intersectada pelo raio inicial � Cada vez que um raio primário intersecta uma superfície, há que calcular: N I Rθ θ Cálculo da Reflexão ©2010, CG&M/IST e Figuras Addison Wesley que calcular: � um raio reflectido � um raio transmitido � Sendo I, N e R vectores unitários : Ncos2IR rrr Θ+= I (incidente) (reflectido)θ θ Um raio luminoso, ao transitar de um meio para outro, refracta-se ou muda de direcção devido à diferença de velocidade da N I θ1 n1 Cálculo da Refracção ©2010, CG&M/IST e Figuras Addison Wesley diferença de velocidade da luz em cada um dos meios (Lei de Snell) NIT sen sen )coscos(1 211212 121 2 2 1 θθηη ηη η θ θ −+=== T θ2 n2 Índice de Refracção Meio Índice de refracção relativo ao vácuo Ar (293,15 K, 101,325 kPa) 1,00029 Água 1,33 Vidro crown 1,52 Vidro denso 1,66 ©2010, CG&M/IST e Figuras Addison Wesley Vidro cristal 2 Quartzo 1,46 Safira 1,77 Diamante 2,417 Cristais de iodo 3,34 Poliestireno 1,55 Alcool etílico 1,36 Reflexão Total ©2010, CG&M/IST e Figuras Addison Wesley = i t i arcsen η ηθ Meios Ângulo crítico Água - Ar 48º 46’ Vidro (crown) - Ar 41º 9’ Vidro (crown) - Água 61º 3’ Diamante – Ar 24º 27’ Safira - Ar 34º 25’ Ângulo crítico Computação Gráfica Extensão aoExtensão ao Modelo de Iluminação de Phong � Objectos transparentes ou translúcidos � acrescenta-se um novo termo à expressão de Phong para calcular a luz que se vê através desses objectos � Define-se H´ Extensão ao Modelo de Iluminação de Phong ©2010, CG&M/IST e Figuras Addison Wesley � Define-se H´ � normal à micro faceta perpendicular à direcção de refracção pura � Para a direcção de visualização ( )ntatransmitid HNKI '• Extensão ao Modelo de Iluminação de Phong N H’ V ©2010, CG&M/IST e Figuras Addison Wesley L P F Computação Gráfica Determinação de SombrasDeterminação de Sombras em Ray-Tracing Sombras � Sombra � ocorre quando algum objecto se interpõe entre a(s) fonte(s) de luz e o ponto � Procedimento traçar raios de iluminação (“shadow feelers”) ©2010, CG&M/IST e Figuras Addison Wesley � traçar raios de iluminação (“shadow feelers”) � entre o ponto e cada uma das fonte de luz � raio intersecta um objecto opaco: � a correspondente fonte de luz não contribui para a iluminação do ponto � raio intersecta um objecto translúcido (penumbra): � atenuar a intensidade luminosa da fonte de luz (não se fazem cálculos de refracção) Determinação de Sombras fonte de luz objecto translúcido objecto opaco ©2010, CG&M/IST e Figuras Addison Wesley A B C objecto translúcido Computação Gráfica Estratégias de OptimizaçãoEstratégias de Optimização em Ray-Tracing Esforço de Cálculo � Exemplo: � imagem 1024 x 1024 � 100 objectos ⇒⇒⇒⇒ calcular 104.857.600 intersecções ©2010, CG&M/IST e Figuras Addison Wesley � Solução: optimizaro cálculo através de � transformação segundo o raio � volumes envolventes � hierarquização � partição do espaço � combinar hierarquia e partição Transformação Segundo o Raio � Transforma cada raio para que coincida com a direcção dos ZZ � Aplica a mesma transformação aos objectos ©2010, CG&M/IST e Figuras Addison Wesley � Intersecções ocorrem em x=0 e y=0 � Aplica-se transformada inversa ao ponto determinado � Facilitada se objectos estiverem ordenados segundo Z Volumes Envolventes – 1 � Cálculo da intersecção do raio com volumes envolventes dos objectos � esfera � elipsóide ©2010, CG&M/IST e Figuras Addison Wesley � elipsóide � paralelepípedo � poliedro convexo (empregando 2 planos paralelos) Volumes Envolventes – 2 � Se um raio intersectar um volume envolvente � devem ser feitos cálculos finos de intersecção entre o raio e o objecto em causa � Os cálculos a efectuar dependem do esquema de ©2010, CG&M/IST e Figuras Addison Wesley � Os cálculos a efectuar dependem do esquema de modelação geométrica utilizado na definição do objecto � No caso mais usual utiliza-se um modelo de representação pela fronteira (“boundary representation”) - objecto descrito por uma malha poligonal Volumes Envolventes - 3 ©2010, CG&M/IST e Figuras Addison Wesley Hierarquização � Organizar o espaço em árvore de volumes envolventes ©2010, CG&M/IST e Figuras Addison Wesley � Um subespaço filho não pode ser intersectado se o pai o não for Partição do Espaço - 1 � O espaço é dividido em sub espaços limitados por volumes envolventes � Cada sub espaço contém objectos � não é necessário que um objecto esteja totalmente contido num ©2010, CG&M/IST e Figuras Addison Wesley não é necessário que um objecto esteja totalmente contido num subespaço � Se um raio intersecta um sub espaço � e no sub espaço intersecta um objecto � processo pára, a não ser que o objecto esteja parcialmente contido no sub espaço � A divisão pode ser adaptativa Partição do Espaço - 2 Partição equitativa do espaço ©2010, CG&M/IST e Figuras Addison Wesley Só é necessário testar a intersecção com os subespaços contendo os objectos A, B e C Partição do Espaço - 3 Intersecção de objectos contidos em mais do que um sub espaço Sub espaço 2 é testado antes de 3 ©2010, CG&M/IST e Figuras Addison Wesley Encontra-se intersecção com B Mas é necessário testar sub espaço 3 porque afinal é a intersecção com A que interessa A B 3 2 1 Computação Gráfica Anti-AliasingAnti-Aliasing em Ray-Tracing Ray-Tracing e Antialiasing - 1 ©2010, CG&M/IST e Figuras Addison Wesley Ray-Tracing e Antialiasing - 2 � Sobreamostragem simples � muitos raios por pixel (9) ⇒ carga computacional elevada � há raios onde são mais necessários? � Sobreamostragem adaptativa ©2010, CG&M/IST e Figuras Addison Wesley � Sobreamostragem adaptativa � mais raios onde necessário, menos onde não � mas … grelha regular ⇒ perda de detalhe possível, ruído � Ray Tracing distribuído (estocástico) � raios aleatoriamente localizados cobrindo área uniformemente � ruído aleatório é “perdoado” pela visão � adaptativo se estatisticamente necessário Computação Gráfica RadiosidadeRadiosidade Motivação � Ray-Tracing permite bons resultados � Mas necessita da componente “luz ambiente” � Não reproduz fielmente a realidade � Problema: ©2010, CG&M/IST e Figuras Addison Wesley � Problema: � Reproduzir uma cena � Sem recorrer a uma “falsa” luz ambiente � Solução: � Recorrer a modelos físicos � Conservação da energia Fundamentos � Princípio da Conservação da Energia � Balanço Energético Radiativo � Distribuição de luz num ambiente depende de ©2010, CG&M/IST e Figuras Addison Wesley � Distribuição de luz num ambiente depende de � reflexões � absorções � transmissões � Que dependem � do comprimento de onda � do tempo Características � Radiosidade depende unicamente da geometria � Calculada no espaço objecto ©2010, CG&M/IST e Figuras Addison Wesley Computação Gráfica 71 � Não depende do ponto de vista � uma vez calculada uma cena � não é necessário recalculá-la quando o ponto de vista muda � Emissão e reflexão difusas � impossível calcular superfícies reflectoras perfeitas � Meio de propagação da luz - vácuo Radiosidade +/- � Grande consumo de memória � Cálculos complexos � Apenas pode considerar componente difusa ©2010, CG&M/IST e Figuras Addison Wesley � Apenas pode considerar componente difusa � Extensão a componente especular � necessita muita memória � Normalmente � usada em conjunto com Ray-Tracing Computação Gráfica FotorealismoFotorealismo usando POV-Ray Fotorealismo Exemplo ©2010, CG&M/IST e Figuras Addison Wesley 74 Christmas Baubles By Jaime Vives Piqueres Fotorealismo Exemplo ©2010, CG&M/IST e Figuras Addison Wesley 75 Car Study By René Bui Fotorealismo Exemplo ©2010, CG&M/IST e Figuras Addison Wesley 76 Pebbles By Jonathan Hunt 4 dias e meio a gerar Computação Gráfica Ray-Tracing em tempo realRay-Tracing em tempo real recorrendo às mais potentes placas gráficas NVIDEA Real time ray-tracing ©2010, CG&M/IST e Figuras Addison Wesley 78 4 Placas Quadro FX5800 em tandem 16 GB de memória GDDR3 Permite 30 fps Resolução HD NVIDEA Real time ray-tracing ©2010, CG&M/IST e Figuras Addison Wesley 79
Compartilhar