1 / 29

An Improved Illumination Model for Shaded Display

An Improved Illumination Model for Shaded Display. Turner Whitted. António Oliveira Paula Rego. Iluminação e FotoRealismo. Estrutura da Apresentação. Introdução Modelo de Iluminação Modelos Convencionais Modelo Melhorado Reflexão Especular Transmissão Refractiva Índices de Refracção

yitta
Download Presentation

An Improved Illumination Model for Shaded Display

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. An Improved Illumination Model for Shaded Display Turner Whitted António Oliveira Paula Rego Iluminação e FotoRealismo

  2. Estrutura da Apresentação • Introdução • Modelo de Iluminação • Modelos Convencionais • Modelo Melhorado • Reflexão Especular • Transmissão Refractiva • Índices de Refracção • Geração de Árvores de Raios • Cálculo de Visibilidade • Ray Tracing Recursivo • Resultados • Conclusões

  3. Introdução • O cálculo eficiente (e correcto) da iluminação de uma cena é um problema fundamental da computação gráfica • Um modelo de iluminação determina a luz que chega ao observador a partir de um ponto visível numa superfície • O shading é o processo de realizar cálculos de iluminação e determinar a cor dos pixeis a partir desses cálculos • O modelo de Shading determina quando é aplicado o modelo de Iluminação e que argumentos recebe • Os cálculos de shading podem ser efectuados a escalas diferentes: • microscópica • local • global

  4. Modelo de Iluminação • A luz recebida é função de: • direcção e intensidade da fonte de luz • posição do observador • orientação e propriedades da superfície

  5. Modelo de Iluminação • As interacções luz - superfície são de natureza microscópica • Contudo, os modelos são normalmente bastante limitados: • consideram apenas a interacção fonte de luz e orientação da superfície, ignorando o ambiente que a rodeia • Os algoritmos de determinação de superfícies visíveis tradicionais não fornecem os dados globais necessários

  6. Modelos Convencionais • Reflexão Difusa • Os difusores ideais comportam-se de acordo com a Lei de Lambert (do coseno) • a luz reflectida, por uma pequena superfície é determinada pelo co-seno do ângulo entre a normal à superfície e a direcção da luz • As superfícies reflectem luz com igual intensidade em todas as direcções • surgem igualmente brilhantes a partir de todos os pontos de vista I = Ip*kd* (N.L) = Ip*kd*cos 

  7. Modelos Convencionais • Reflexão Especular • Modelo de Phong • fontes de luz a distância infinita • não considera a luz reflectida por outros objectos • os objectos não funcionam como fontes de luz • não afecta o realismo da reflexão difusa fontes luzfontes luz I = Ia + kd (N . Lj) + ks (R . V)n j=1j=1 I = intensidade reflectida Ia = reflexão devida à luz ambientekd = coeficiente reflexão difusaN = normal à superfície (unitária) Lj = vector na direcção da fonte de luz iks = coeficiente reflexão especular n = expoente de reflexão especular do material

  8. Modelos Convencionais • O Modelo de Phong afecta significativamente a qualidade das reflexões especulares • Não é incluída a luz reflectida por outros objectos • Formulação Alternativa (Blinn e Newell, 1976) • esfera de raio infinito • fontes de luz e observador a distância infinita j=lsj=ls I’ = Ia + kd (N . Lj) + ks (N . Hj ’)n j=1j=1 H = (L+V)/2 normal na direcção a metade da distância entre L e V

  9. Modelos Convencionais • Sombras • É um dos aspectos mais importantes no modelo de iluminação • Um ponto numa superfície está em sombra se for visível ao observador, mas não à fonte de luz • Transparência • A transmissão da luz através de objectos transparentes tem sido simulada em algoritmos que desenham as superfícies segundo a ordem inversa de profundidade (Algoritmo Depth-Sort – Newell et al., 1972) • Produção de imagens interessantes, mas não simula a refracção

  10. Modelo Melhorado • Introduzido por Turner Whitted (1980) • onde: • S = intensidade da luz incidente a partir de R (raio reflectido) • ks = coeficiente de reflexão especular do material • ks = coeficiente de transmissão • T = intensidade da luz na direcção P (raio refractado)

  11. Perfeitamente lisa Reflexão Especular Intensidade da Luz N + V’ N V R Superfície reflectora V’ = V / |V*N| R = V’ + 2N P = kf (N + V’) - N onde kf = função do índice de refracção kn P -N k (N + V’) f Refracção

  12. Reflexão Especular • A reflexão especular de uma superfície rugosa • Produzida por faces microscópicas • Intensidade proporcional à distribuição das normais da superfície • Simulando esta reflexão (baseado no trabalho de J.F. Blinn) • Variações aleatórias na normal da superfície • Simular faces microscópicas orientadas aleatoriamente • Impraticável em termos computacionais • Escolher a adição do termo de Phong

  13. Transmissão Refractiva • Dados os índices de refracção dos 2 lados de uma superfície, pode-se calcular o ângulo para V e P usando a Lei de Snell

  14. Índices de Refracção • Razão entre a velocidade da luz no vácuo e a velocidade da luz numa substância

  15. Geração de Árvores de Raios • A luz é reflectida a partir de várias superfícies • O comportamento dos raios de luz podem ser modelados através de uma árvore • O shader percorre a árvore, aplicando a equação em cada nodo para calcular a intensidade (esta é atenuada por uma função linear da distância entre os pontos de intersecção)

  16. Cálculo da Visibilidade • Um algoritmo de Ray Tracing constitui uma boa aproximação: • Abordagem inicial: traçar raios de luz desde as fontes de luz até ao observador – forward Ray Tracing • Whitted desenvolve um modelo aproximado considerando os raios de luz que chegam ao observador no sentido inverso – backward Ray Tracing • O cálculo não termina com o primeiro objecto intersectado pelo raio • Considera também os raios reflectidos e refractados • Objectos são visíveis através de reflexões em outros objectos

  17. Cálculo da Visibilidade • Simplificações: • Considerar um volume envolvente para cada objecto na cena • Se não for intersectado, o objecto pode ser eliminado • Por questões de simplicidade de representação e facilidade de cálculo de intersecção, são usadas esferas

  18. Cálculo da Visibilidade • O algoritmo faz anti-aliasing • Aliasing é mais aparente em 3 casos: • Mudanças bruscas de intensidade • Objectos pequenos localizados entre os pontos de amostragem • Textura mapeada a uma superfície • O Anti-aliasing é aplicado apenas nas regiões afectadas pelos 3 casos

  19. Ray Tracing Recursivo • Para cada pixel da imagem • Calcular raio que passa pelo pixel e observador • Determinar objecto intersectado pelo raio • Ponto de intersecção • Normal • Propriedade do material • Propriedade de textura • Calcular contribuição da iluminação ambiente • Para cada fonte de luz determinar visibilidade (raios sombra) • Se fonte visível, adicionar contribuição reflexão difusa • Se não foi atingido limite de recursividade • Adicionar contribuição da reflexão especular • Adicionar contribuição da refracção

  20. Ray Tracing Recursivo seleccionar o centro de projecção e a janela no plano de visualização; for(cada scan line na imagem) { for (cada pixel na scan line) { determinar raio a partir do centro de projecção através do pixel; pixel=RT_trace(raio,1); } }

  21. Ray Tracing Recursivo RT_cor RT_trace(RT_ray raio, int depth) { determinar a intersecção mais proxima do raio com um objecto; if (objecto foi intersectado) { calcular normal na intersecção; return RT_shade(objecto de intersecção mais próxima, intersecção, normal, depth); } else return BACKGROUND_VALUE; }

  22. Ray Tracing Recursivo – Iluminação Directa Cor = termo ambiente; for (cada luz) { SRaio = raio para a luz a partir do ponto; If (produto escalar da normal e direcção para a luz é positivo) { Calcular quanta luz é bloqueada por superfícies opacas e transparentes, e usar termos difusos e especulares para escalar antes de os adicionar à cor; } }

  23. Ray Tracing Recursivo – Iluminação indirecta if (depth<maxDepth) { If (objecto é reflectivo) { RRaio=raio na direcção de reflexão a partir do ponto; rCor=RT_trace(rRaio, depth +1); escalar rCor pelo coeficiente especular e adicionar a cor; } if (objecto é transparente) { tRaio = raio na direcção de refracção a partir do ponto; if (reflexão interna total não ocorre) { tCor=RT_trace(tRaio, depth+1); escalar tCor pelo coeficiente de transmissão e adicionar a cor; } } } return cor;

  24. Ray Tracing Recursivo • Condições de terminação: • Se os raios reflectidos ou refractados não intersectam qualquer objecto • Se a profundidade máxima definida foi atingida

  25. Resultados • Algoritmo programado em C • S.O. UNIX • PDP-11/45 e VAX-11/780 • Resolução da imagem 480x640 pixeis • 9 bits por pixel

  26. Fig.1 Fig.3 Fig.2 Fig.4

  27. Resultados • Imagens: • Fig.1: 3 objectos polidos com sombras e reflexões objecto-objecto (44 min.) • Fig.2: refracção através de um objecto transparente (74 min.) • Fig. 3: sem descrição (122 min.) • Fig. 4: não referida • Distribuição do tempo de processamento: • Inicialização: 13% • Cálculo de intersecções: 75% • Shading: 12%

  28. Resumo • Produz efeitos realísticos nas imagens • Não considera reflexões difusas a partir de fontes de luz distribuídas • Não trata de forma correcta a reflexão especular a partir de superfícies menos polidas • Há ainda muito espaço para melhoria

More Related