A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Iluminação e FotoRealismo

Apresentações semelhantes


Apresentação em tema: "Iluminação e FotoRealismo"— Transcrição da apresentação:

1 Iluminação e FotoRealismo
Ray Tracing Luís Paulo Peixoto dos Santos Iluminação e FotoRealismo

2 Competências GERAIS : Relacionar os vários métodos de iluminação global com o modelo geral sustentado pela equação de rendering, inferindo quais os fenómenos de iluminação modelados; Projectar, implementar e avaliar soluções para novos problemas de iluminação por recombinação de soluções conhecidas; Reconhecer as limitações funcionais e/ou de desempenho associadas a cada algoritmo de iluminação global; Específicas : Iluminação e Fotorealismo 2007/08

3 Introdução O conceito de ray tracing foi introduzido na Computação Gráfica em 1980 por Whitted O termo ray tracing é usado livremente para designar uma infinidade de diferentes abordagens ao problema de rendering, desde que baseados no princípio de intersecção de uma semirecta (raio) com primitivas geométricas Esta sessão debruça-se sobre o algoritmo clássico de ray tracing conforme apresentado por Whitted, logo determinístico, e aborda algumas questões essenciais associadas com a sua funcionalidade, implementação e desempenho Iluminação e Fotorealismo 2007/08

4 Ray casting: definição
Ray casting: Determina qual o ponto y visível ao longo de um raio com origem em x e direcção ψ. sendo A o conjunto de todos os objectos representados na cena. y=r(x,Θ) Θ x Iluminação e Fotorealismo 2007/08

5 Ray Tracing: Introdução
Os diferentes algoritmos de rendering usualmente designados por ray tracing diferem uns dos outros essencialmente no número de raios disparados e nas direcções ψ seleccionadas para amostrar Estes dois factores têm um efeito fundamental na qualidade da imagem gerada, nos fenómenos de transporte de luz simulados e no tempo de execução Iluminação e Fotorealismo 2007/08

6 Ray Tracing: Princípios
Plano da imagem Observador Raio Primário Fonte de luz p L(x→Obs) Cena x Os raios primários determinam quais os objectos visíveis directamente pelo observador. Iluminação e Fotorealismo 2007/08

7 Ray Tracing: Algoritmo
// ciclo principal computeImage (viewPoint) { para cada pixel p { raio = GerarRaio (viewPoint, p, PRIMARIO) radiance[p] = rad (raio) } rad (raio) { objecto, x = trace (raio) computeRad (x, raio, objecto) Iluminação e Fotorealismo 2007/08

8 Ray Tracing: Algoritmo
// intersecção mais próxima da origem do raio trace (raio) { // p = r (origem, direcção) tmin = Max_dist Para todos os objectos da cena { x = intersect (raio, objecto) dist = distancia (raio.origem, x) if (dist < tmin) { tmin = dist p = x obj = objecto } } return (obj, p) Iluminação e Fotorealismo 2007/08

9 Ray Tracing: Raios Primários
Os raios primários determinam quais os pontos visíveis directamente pelo observador. Diz-se que propagam importância, pois estes pontos passam a ser importantes para a imagem. O algoritmo pode parar por aqui atribuindo uma cor aos pontos: Pseudo-cor – visualização científica Em função da posição das fontes de luz sem verificar se são visíveis: iluminação local Inexistência de sombras As placas gráficas fazem isto, usando no entanto o algoritmo de profundidade para determinar a visibilidade (depth buffer ou Z-buffer) Iluminação e Fotorealismo 2007/08

10 Ray Tracing: Direcções a considerar
Uma vez encontrado o ponto x, que projecta directamente no pixel p, é necessário proceder à sua iluminação (shading), isto é, ao cálculo de Sabendo que não é possível considerar todas as direcções da semi-esfera Ωs, quais deverão ser escolhidas para incluir no cálculo deste radiância? Iluminação e Fotorealismo 2007/08

11 Ray Tracing: Direcções a considerar
Devem ser escolhidas as direcções que, com maior probabilidade, maiores contribuições dão para o valor final de L(x→) Quais são essas direcções? Direcções  que maximizam a BRDF, isto é, aquelas para as quais é maior a radiância reflectida na direcção  Direcções  que maximizam L(x←), isto é, direcções de maior radiância incidente Direcções  que maximizam o cosseno Iluminação e Fotorealismo 2007/08

12 Ray Tracing: Iluminação Directa
x Modelo por: Anat Grynberg Greg Ward Ponto x determinado por um raio primário. Quais as direcções a considerar para fazer iluminar x, isto é, calcular L(x→)? Iluminação e Fotorealismo 2007/08

13 Ray Tracing: Iluminação Directa
Radiâncias incidentes em x ao longo de toda a hemisfera Ωs. Parece claro que a radiância incidente é maximizada na direcção das fontes de luz. Conclusão: as direcções da hemisfera correspondentes a fontes de luz devem ser amostradas, pois a radiância incidente em x ao longo destas direcções é, com grande probabilidade, elevada. Iluminação e Fotorealismo 2007/08

14 Ray Tracing: Iluminação Directa
A radiância reflectida pode ser dividida em 2 integrais: iluminação directa oriunda das fontes de luz iluminação indirecta, oriunda de todas as outras direcções Iluminação e Fotorealismo 2007/08

15 Ray Tracing: Iluminação Directa
A maioria dos ray tracers clássicos permite aproximar as fontes de luz como fontes ideais: pontos que emitem com igual intensidade em todas as direcções. Um raio disparado na direcção de x para Li basta para determinar se a fonte pontual Li é visível a partir do ponto x (chamemos a esta direcção ψi) A BRDF para este ponto e este par de direcções, fr(x,Θ ↔ ψi), indica a percentagem de radiância incidente ao longo de ψi que é reflectida na direcção Θ. Whitted sugere que o modelo de iluminação local seja o de Lambert, com um coeficiente de reflexão difusa directa para cada um dos canais: kdR, kdG, kdB. O modelo de Phong permite adicionar um reflexo especular à iluminação directa. Iluminação e Fotorealismo 2007/08

16 Ray Tracing: Iluminação Directa
Lambert para l fontes de luz: Phong para l fontes de luz: No caso geral Iluminação e Fotorealismo 2007/08

17 Ray Tracing: Iluminação Directa
V(x,y) é a função de visibilidade: V(x,y) é avaliada disparando um raio de x para y Se nenhum objecto for intersectado por este raio a uma distância da origem menor do que a distância da fonte de luz então V(x,y)=1, senão V(x,y)=0 Estes raios são designados por shadow rays ou shadow feelers Iluminação e Fotorealismo 2007/08

18 Ray Tracing: Iluminação Directa
Plano da imagem Observador Raio Primário Fonte de luz p L(x→Obs) Cena x Fonte de luz Iluminação e Fotorealismo 2007/08

19 Ray Tracing: Iluminação Directa
computeRad (x, raio, objecto) { radiance = directIllum (x, raio.dir, objecto) return (radiance) } directIllum (x, dir, objecto) { rad = 0; para cada fonte de luz l { raio = GerarRaio (x, l, SHADOW) if (visibilidade (raio, l)) rad += brdf (x, dir, dir_l)* Ll * cos (Nx, dir_l) return (rad) Iluminação e Fotorealismo 2007/08

20 Ray Tracing: Iluminação Directa
// visibilidade da fonte de luz visibilidade (raio,l) { // V(x,y) tmin = distancia (raio.origem,l) Para todos os objectos da cena { p = intersect (raio, objecto) dist = distancia (raio.origem, p) if (dist < tmin) return (0) } return 1 Iluminação e Fotorealismo 2007/08

21 Ray Tracing: Iluminação Indirecta
Quais as direcções da hemisfera a considerar para a iluminação indirecta? Tipicamente aquelas que correspondem aos máximos da BRDF. Whitted sugere que se amostre as direcções especulares, pois estas correspondem a máximos da BRDF reflexão especular : aproximada pela direcção R e quantificada pelo coeficiente Ks transmissão especular : aproximada pela direcção T e quantificada pelo coeficiente Kt Iluminação e Fotorealismo 2007/08

22 Ray Tracing: Iluminação Indirecta
Reflexão especular Transmissão especular (lei de Snell) θi θt θr V N R T Iluminação e Fotorealismo 2007/08

23 Ray Tracing: Iluminação Indirecta
É aproximada apenas pelas direcções R e T. A BRDF é aproximada pelas constantes: ksg(λ) – coeficiente de reflexão especular global ktg(λ) – coeficiente de transmissão especular global Iluminação e Fotorealismo 2007/08

24 Ray Tracing: Iluminação Indirecta
Para calcular a radiância incidente em x ao longo de cada uma das direcções R e T devem ser enviados raios secundários ao longo de cada uma destas direcções. O processamento dos raios secundários é em tudo equivalente aos raios primários, fazendo do ray tracing um algoritmo recursivo que gera uma árvore de raios. É necessário um critério de paragem para que a árvore não tenha profundidade infinita: Terminar ao atingir uma determinada profundidade Terminar quando a contribuição de um raio for inferior a um determinado limite Decidir de forma estocástica (Roleta Russa) Iluminação e Fotorealismo 2007/08

25 Ray Tracing: Iluminação Indirecta
computeRad (x, raio, objecto, depth) { rad = directIllum (x, raio.dir, objecto) if (depth < MAX_DEPTH) { if (ksg > 0) { // reflexão especular raioR = GerarRaio (x, Rg, REFLEXAO) objR, p = trace (raioR) rad += ksg*cos(N,raioR)*computeRad (p,raioR,objR, depth++)} if (ktg > 0) { // transmissão especular raioT = GerarRaio (x, Tg, TRANSMISSAO) objT, p = trace (raioT) rad += ktg*cos(N,raioT)*computeRad (p,raioT,objT, depth++)} } return (rad) Iluminação e Fotorealismo 2007/08

26 Ray Tracing: Iluminação Indirecta
Iluminação e Fotorealismo 2007/08

27 Ray Tracing: Complexidade
O algoritmo usado para determinar a visibilidade ao longo de um raio requer que cada raio seja intersectado com TODAS as primitivas geométricas da cena. O tempo para cada raio é, portanto, linear com o número de primitivas N: No entanto, cada raio não passa na proximidade da maioria das primitivas Iluminação e Fotorealismo 2007/08

28 Ray Tracing: Estruturas de Aceleração
O objectivo das estruturas de aceleração é diminuir o número de intersecções por raio. Isto é conseguido: Permitindo a rejeição rápida e simultânea de grupos de primitivas Se possível, ordenando o processo de procura (intersecções), tal que as primitivas mais próximas da origem do raio sejam processadas primeiro, evitando processar as mais distantes se for encontrada uma intersecção Abordagens: SUBDIVISÃO DO ESPAÇO: grelhas regulares, octrees, kd-tree Permitem aplicar os critérios 1 e 2 SUBDIVISÃO DOS OBJECTOS: bounding volume hierarchy (BVH) Permitem aplicar apenas o critério 1 Iluminação e Fotorealismo 2007/08

29 Ray Tracing: Grelha Regular
O espaço 3D é particionado impondo uma grelha regular que o subdivide em voxels (volume elements). Todos os voxels têm a mesma dimensão. Construção muito rápida Travessia pouco eficiente devido à má distribuição das primitivas pelos voxels Iluminação e Fotorealismo 2007/08

30 Ray Tracing: Octree O espaço é hierarquicamente e adaptativamente subdividido em 8 voxels Compromisso entre tempo de construção e eficiência da travessia Iluminação e Fotorealismo 2007/08

31 Ray Tracing: Kd-tree O espaço é subdividido em 2 por um plano. Cada um dos sub-espaços resultantes é depois subdividido da mesma forma, até atingir um determinado critério de paragem Travessia mais eficiente se o critério de subdivisão for apropriado (e.g., SAH) Quanto mais sofisticado for o critério de subdivisão maior o tempo necessário para a construir Iluminação e Fotorealismo 2007/08

32 Ray Tracing: Bounding Volume Hierarchy
Os objectos são agrupados dentro de Bounding Volumes. Cada um destes grupos é depois hierarquicamente subdividido por outros volumes Não ordena o espaço Construção semelhante à kd-tree Travessia ligeiramente inferior à kd-tree Iluminação e Fotorealismo 2007/08

33 Ray Tracing: Geometria Dinâmica
Qual a estrutura mais indicada se a geometria se move? Reaproveitamento da hierarquia (topologia da árvore), com ajustamento das dimensões dos volumes Com grandes deformações da geometria a hierarquia inicial deixa de ser apropriada para a distribuição das primitivas, exigindo uma reconstrução completa da BVH Iluminação e Fotorealismo 2007/08

34 Ray Tracing: Complexidade
A complexidade do ray tracing com uma estrura de aceleração apropriada é logarítmica com o número de primitivas geométricas N: O tempo de construção depende do critério de subdivisão do espaço / agrupamento das primitivas Critérios sofisticados (e.g., SAH) resultam em travessias eficientes, mas exigem tempos de construção muito elevados O tempo de reconstrução/reajustamento de uma estrutura de aceleração pode impedir a sua utilização em contextos interactivos. Iluminação e Fotorealismo 2007/08

35 Ray Tracing: Aliasing O resultado de um ray tracer é uma grelha bidimensional discreta com valores de radiância incidente no plano da imagem Mas a radiância incidente é na realidade uma função contínua definida sobre este plano A estratégia de amostragem (distribuição) e a sua densidade (frequência) afectam a qualidade do resultado Se a distribuição da amostragem é uniforme e a frequência é inadequada são introduzidos artefactos na imagem, fenómeno vulgarmente designado por aliasing Iluminação e Fotorealismo 2007/08

36 Teoria da amostragem Selecção de pontos de amostragem de funções contínuas e utilização das amostras para construir novas funções semelhantes à original - função contínua - Posição da amostra - amostra - filtro reconstrução - função reconstruída Iluminação e Fotorealismo 2007/08

37 Limite de Nyquist Limite de Nyquist
Se a frequência de amostragem, fs, é maior ou igual ao dobro da maior frequência presente no sinal (função contínua), fmax, então é possível reconstruir perfeitamente o sinal original. Iluminação e Fotorealismo 2007/08

38 Ray Tracing: Aliasing Um ray tracer amostra a radiância incidente no plano da imagem com uma dada frequência de amostragem (frequentemente determinada pela resolução do plano da imagem) Para que não surjam fenómenos de aliasing a frequência de amostragem deve ser maior ou igual ao limite de Nyquist Qualquer função que tenha descontinuidades não é limitada em banda, isto é, não tem uma frequência máxima As imagens têm descontinuidades (p. ex.: limites geométricos, contornos de sombras ou reflexões) logo não são limitadas em banda Os fenómenos de aliasing são portanto inevitáveis com distribuições uniformes Iluminação e Fotorealismo 2007/08

39 pbrt: Teoria da Amostragem
Sampler Renderer x’ f(x’) Filter Film Iluminação e Fotorealismo 2007/08

40 Antialiasing: Sobreamostragem
A frequência de amostragem pode aumentar disparando mais do que um raio primário por pixel 1.6 seg 6.0 seg Iluminação e Fotorealismo 2007/08

41 Antialiasing: Sobreamostragem adaptativa
Para evitar o aumento linear do tempo de execução aumenta-se a frequência de amostragem apenas quando a diferença entre 2 amostras vizinhas ultrapassa um determinado limite Uma vez que uma imagem com descontinuidades não é limitada em banda, o aumento da frequência de amostragem nunca elimina o fenómeno de aliasing, apenas reduz o erro Esta redução pode resultar num erro abaixo do limite percepcionável pelo Sistema Visual Humano Iluminação e Fotorealismo 2007/08

42 Antialiasing: Amostragem não uniforme
O impacto visual de aliasing pode ser reduzido variando o espaçamento entre amostras Por exemplo seleccionando o ponto de amostragem estocasticamente O sinal reconstruído continua a ser incorrecto, mas é percepcionado como ruído e não como aliasing O ruído é a variância introduzida pelas variáveis aleatórias usadas no processo de selecção das amostras O sistema visual humano é mais tolerante a ruído aleatório do que a aliasing estruturado Iluminação e Fotorealismo 2007/08

43 Antialiasing: Amostragem não uniforme
Pseudo-aleatório Estratificado Jittered ξ1 e ξ2 são variáveis aleatórias com distribuição uniforme no domínio [0 .. 1[ Iluminação e Fotorealismo 2007/08

44 Antialiasing: Amostragem não uniforme
Uniform (1spp) – 1.6 seg Jittered (1spp) – 1.6 seg O aliasing é removido introduzindo jittering e mantendo 1 amostra por pixel (spp: samples per pixel) É introduzido ruído no resultado O tempo de execução mantém-se constante Iluminação e Fotorealismo 2007/08

45 Antialiasing: Amostragem não uniforme
Imagens obtidas com o mesmo número de raios e diferentes distribuições [Pharr & Humphreys, 2004] A utilização de distribuições de amostragem apropriadas permite obter melhores resultados (menor variância) com o mesmo número de raios Iluminação e Fotorealismo 2007/08

46 Fontes de luz As fontes de luz constituídas apenas por um ponto que emite potência radiante com igual intensidade em todas as direcções não têm equivalente na realidade As imagens resultantes de usar estes fontes de luz têm sombras com contornos muito definidos devido ao determinismo do algoritmo Iluminação e Fotorealismo 2007/08

47 Fontes de luz As fontes de luz com área permitem suportar sombras com diferentes gradações, isto é, umbra e penumbra 4 spp 16 spl 228 seg. Iluminação e Fotorealismo 2007/08

48 Fontes de luz Cada fonte de luz é amostrada por mais do que um shadow ray Aumento do número de raios implica aumento do tempo de computação Critérios para decidir quantos raios enviar em direcção a cada fonte de luz: Radiância emitida pela fonte de luz (Li) Área da fonte de luz (Ai) Orientação da fonte de luz relativamente à superfície de interesse (cos θi) Distância da fonte de luz ao ponto de interesse (ri) A contribuição de cada fonte de luz para a radiância incidente no ponto p deve ser o produto da radiância emitida pelo ângulo sólido, ωi , que a fonte de luz subentende em p. Iluminação e Fotorealismo 2007/08

49 Fontes de luz A fonte de luz é dividida em sub-áreas Aj, tal que ∑Aj=Ai A cada sub-área corresponde um shadow ray que avalia a visibilidade de Aj a partir de p: V(p, Aj) A radiância directa incidente em p devido à fonte de luz i é dada por: Iluminação e Fotorealismo 2007/08

50 Fontes de luz Esta expressão exige que as sub-àreas Aj sejam calculadas, sendo ∑Aj=Ai. Uma alternativa menos precisa consiste em não calcular as sub-áreas mas dividir a contribuição de cada amostra pelo número de shadow rays (Ns). Situação equivalente a todas as sub-áreas terem a mesma dimensão. Esta alternativa permite escolher estocasticamente Ns pontos pj na superfície da fonte de luz, em alternativa a dividir a fonte de luz de forma determinística, sendo a mesma expressão reescrita: Iluminação e Fotorealismo 2007/08

51 Trajectos de luz Sendo o transporte de luz aproximado pela óptica geométrica, podemos conceber que cada fotão percorre um trajecto desde a fonte de luz até ao seu destino final Este trajecto é composto por segmentos de recta direccionais, representando os extremos interacções do fotão com um objecto. A interacção pode ser difusa (D) ou especular (S) O conjunto de interacções é representado por uma string com origem na fonte de luz (L) e a terminar no ponto onde o fotão é absorvido ou no observador (E) Ray Tracing Clássico

52 Trajectos de luz a a - LSDE c c - LDDE b b - LDSE Material Difuso
Material Especular Ray Tracing Clássico

53 Trajectos de luz A árvore de raios gerada pelo ray tracing de Whitted começa no observador e termina sempre que encontrar um material difuso. Os trajectos simulados são portanto sempre do tipo L[D][S*]E Os caminhos ‘a’ e ‘c’ do acetato anterior não são simulados O caminho ‘a’ resultaria na projecção pelo espelho do reflexo da fonte de luz no chão difuso. O ray tracing clássico não modela este fenómeno. Ray Tracing Clássico

54 Trajectos de luz: Whitted ray tracing
LDSE LDE LDSSE D E S D Iluminação e Fotorealismo 2007/08

55 Trajectos de luz: path tracing
LSSDE S D LDDE E S Os trajectos de luz – seguidos a partir do observador – não terminam em materiais difusos. Podem continuar pois é sempre seleccionada uma direcção para amostrar. D Iluminação e Fotorealismo 2007/08


Carregar ppt "Iluminação e FotoRealismo"

Apresentações semelhantes


Anúncios Google