CÁLCULOS DE ILUMINAÇÃO E SOMBREAMENTO Prof. João Carlos Bernardo Prof. João Madeiras Pereira Instituto Superior Técnico 1998/1999 MODELOS DE ILUMINAÇÃO E REFLEXÃO Essencial na construção de representações, a duas dimensões, de objectos tridimensionais, com umsignificativo grau de realismo. Modelo de Reflexão descreve a forma como a luz interage com a superfície dos objectos, função das propriedades dessas superfícies e da natureza da luz incidente. Modelo de Iluminação descreve a natureza e a distribuição de intensidade da luz emanada pelas fontes luminosas presentes na cena que se pretende representar. Definidos estes modelos e conhecidas as posições e orientações relativas dos objectos e das fontes de luz, é possível proceder ao Cálculo de Sombreamento das superfícies desses objectos ( Shading ). 1
MODELO DE REFLEXÃO PHONG Modelo de Reflexão de Phong : compromisso grau de realismo versus carga computacional equilibrado A Intensidade Luminosa (ou a côr) emcada pixel: combinação linear de três componentes : Reflexão Ambiente Reflexão Difusa Reflexão Especular Componente especular modela o grau de brilho de uma superfície e é representada pela quantidade de luz reflectida, de modo especular, em torno da direcção de reflexão ideal (ângulo de reflexão igual ao ângulo de incidência) Componente difusa é propagada em todas as direcções e é responsável pela cor do objecto (parte da luz incidente é selectivamente absorvida pelo próprio objecto). REFLEXÃO DIFUSA Superfície difusora perfeita difunde a mesma intensidade luminosa em todas as direcções? a luminosidade apreendida por umobservador não depende do seu ponto de vista. A intensidade da Luz Difusa é dada pela Lei de Lambert N1 N L N3 Id = Ii. Kd cos? 0????? 2 Constante Kd (reflectividade difusa)? [0.0,1.0] traduz a dependência face à natureza do material e ao comprimento de onda da luz incidente. Em notação vectorial: Id = Ii. Kd ( L. N ) N2 Havendo várias fontes de luz (n): Id = Kd? Ii,n ( Ln. N ) n 2
LUZ AMBIENTE Contabilizar apenas a contribuição directa das fontes de luz: pouco realista (objectos no escuro, iluminados por uma lanterna). Iluminar superfícies visíveis do ponto de vista do observador, embora invisíveis segundo a direcção de incidência da fonte de luz. I = Ia. Ka + Ii. Kd (L. N) Ka é constante para um dado objecto ( Coeficiente de Reflexão de Luz Ambiental) A luz ambiente incide nos objectos sob todas as direcções e resulta de múltiplas reflexões nas superfícies dos objectos e nas fronteiras da cena. Resultado: os objectos flutuam no espaço Carácter local: inexistência de interacção luminosa entre pares de objectos, nem entre estes e os planos delimitadores da cena ( backgrounds ). REFLEXÃO ESPECULAR Na vida real, as superfícies não são completamente baças, ou seja, não se comportam como difusores de luz perfeitos.? Grau de brilho resultante de uma componente de reflexão especular, própria das superfícies polidas. raio incidente N superf. reflectora perfeita Em superfícies reflectoras (especulares) perfeitas, vulgarmente designadas por espelhos, a luz raio reflectida fazcom a normal à superfície um ângulo reflectido cujo valor coincide com o ângulo de incidência da fonte de luz - direcção de reflexão ideal Neste caso, toda a luz proveniente de uma fonte pontual, posicionada no infinito, seria reflectida segundo uma única direcção, sendo a superfície visível apenas quando o ponto de vista do observador coincide com essa direcção. 3
COMBINAÇÃO DAS VÁRIAS COMPONENTES N L N R L V V Componente Difusa Componente Especular Superfícies não são reflectoras ideais : concentração da componente especular num lóbulo centrado na direcção de reflexão ideal (área de highlight ). Não se considera a natureza dos materiais : área especular tem a mesma cor da fonte de luz Reflexão difusa determina a cor de um dado objecto (uma superfície verde, iluminada por uma fonte de luz branca, difunde luzde cor verde). CÁLCULO DA INTENSIDADE LUMINOSA L N R V I = Ia. Ka + Ii? Kd (L. N) + Ks cos n?? I = Ia. Ka + Ii? Kd (L. N) + Ks (R. V) n? Reflexão especular modelada empiricamente : relaciona-se com o ângulo formado entre o raio reflectido e a direcção de observação, através de uma função do tipo cos n Ks é o coeficiente de reflexão especular, de valor constante e dependente das propriedades ópticas do material. n ( shininess ) traduz o grau de brilho 4
CÁLCULO DA INTENSIDADE LUMINOSA (CONT.) L N ambiente + difusa especular (n <<) (n >>) R V P A intensidade luminosa em P é dada pela distância entre P e o ponto de intersecção entre V e o perfil de iluminação (função do ângulo entre V e R). n determina as dimensões da área especular: quanto mais brilhante fôr a superfície, menor deverá ser a área de highlight, ou seja, n elevado. Pelo contrário, quanto mais baça fôr a superfície maior será a dimensão dessa área e portanto n baixo Intensidade da zona especular controlada por Ks ATENUAÇÃO ATMOSFÉRICA ( DEPTH CUEING ) Depth Cueing : representar com menor intensidade luminosa os objectos que se encontrem mais afastados do ponto de observação. depth cueing no modelo de Phong para considerar o efeito da atenuação atmosférica sobre a intensidade da luz que parte dos objectos e atinge o ponto de observação: I = Ia. Ka + Ii? Kd (L. N) + Ks (R. V) n? / (r + K) r corresponde ao valor da distância entre o objecto e o ponto de observação K é uma constante 5
SIMPLIFICAÇÕES GEOMÉTRICAS Fontes de Luz no infinito (a distribuição da intensidade dos raios luminosos é ignorada). A geometria, excepto a normal à superfície, é ignorada (fontes de luz e o observador encontram-se no infinito): vectores L e Vpassam a ser considerados constantes em toda a cena (não há variação de intensidade numa superf. planar e a forma dos highlights altera-se). Aproximação de Blinn O cálculo do vector R é caro pelo que se calcula H, vector normal à faceta hipotética, reflectora pura, que reflecte segundo V. I depende só da normal à superfície N. L N H V ângulo entre R e V é o dobro do ângulo entre N e H. H = (L+V)/2. I = Ia. Ka + Ii? Kd (L. N) + Ks (N. H) n? / (r + K) determina-se a componente especular em função de N.H em vez de R.V. (um maior espalhamento da área de highlight pode ser controlado pelo aumento do valor de n). 6
CONTROLO DA COR Uma aproximação simples para o tratamento de objectos coloridos: 1) Luz reflectida em modo especular branca (fonte de luz branca) 2) Controlar a cor do objecto através de uma atribuição criteriosa de valores a três coeficientes de reflexão difusa (um por cada comp. cromática do sistema RGB). Ir = Ia. Kar + Ii? Kdr (L. N) + Ks (N. H) n? Ig = Ia. Kag + Ii? Kdg (L. N) + Ks (N. H) n? Ib = Ia. Kab + Ii? Kdb (L. N) + Ks (N. H) n? Numa só expressão vectorial: I (r,g,b) = Ia. Ka (r,g,b) + Ii [ Kd (r,g,b) (L. N) + Ks (N. H) n ] CONTROLO DA COR (cont.) Na maior parte das bibliotecas gráficas, o controlo da cor faz-se através da especificação dos seguintes parâmetros (fonte de luz pode não ser branca): Cd (r,g,b) - cor difusa Cs (r,g,b) - cor especular Ks - constante especular entre 0.0 e 1.0 Kd - constante difusa entre 0.0 e 1.0 Ka - percentagem de cor difusa (componente ambiente) Nestas condições o cálculo de cor é realizado pela seguinte expressão: I (r,g,b) = Ia Ka Cd (r,g,b) + Ii (r,g,b) [ Kd Cd (r,g,b) (L. N) + Ks Cs (r,g,b) (N. H) n ] 7
PRINCIPAIS CARACTERÍSTICAS DO MODELO DE PHONG As fontes de luz são consideradas pontuais. Ignora-se todo e qualquer modelo de distribuição de intensidade de luz na fonte. Considera-se que as fontes de luz e o ponto de observação estão no infinito. A única variável geométrica é o vector normalàs superfícies dos objectos. As componentes difusa e especular são processadas de forma local. Não se considera a luz reflectida que provenha da reflexão de outros objectos. Considera-se um modelo empírico para determinar a atenuação da comp. Especular em torno da direcção de reflexão ideal (função do grau de polimento da superfície ). Assume-se que a cor da luz reflectida em modo especular é igual à da fonte de luz, independentemente da cor do objecto. A componente de luz ambiente é modelada como sendo umtermo constante para cada objecto. TÉCNICAS INCREMENTAIS DE SOMBREAMENTO Exemplos de aplicação do modelo de reflexão de Phong no cálculo de sombreamento de objectos descritos através de malhas de polígonos. Método directo (força bruta!): determinação, em cada ponto, da normal e aplicação do mod. de reflexão de Phong para o cálculo da intensidade luminosa Solução: adoptar uma aproximação poligonal para a descrição geométrica dos objectos e recorrer a técnicas de sombreamento interpoladoras e incrementais (cálculo de intensidades nos vértices e interpolação de valores para pontos interiores de modo a atenuar a geometria facetada). 8
SOMBREAMENTO CONSTANTE O método de Sombreamento Constante ( Constant Shading ou Flat Shading ) corresponde à solução mais simples e de computação mais rápida. Calcula-se a intensidade luminosa para umsó ponto de cada polígono e aplica-se o valor obtido no sombreamento de toda a sua área interior. Tal corresponde a admitir que os produtos N.L e N.V (ou N.H) são constantes dentro de cada polígono. Os resultados obtidos por este método só são aceitáveis se: 1) A malha poligonal a sombrear representa realmente a superfície do objecto, não sendo por isso uma aproximação grosseira de uma superfície curva original. 2) Mesmo não se verificando a condição anterior, quando se pretende obter uma primeira representação da cena ( preview ), num intervalo de tempo muito curto. SOMBREAMENTO DE GOURAUD Primeiro método conhecido (Gouraud 71) que supera as desvantagens do sombreamento constante, através do recurso a umprocesso de interpolação bilinear de intensidades. Restringe-se, geralmente, à componente de reflexão difusa porque a forma da área especular fica fortemente condicionada pela geometria da malha de polígonos: pode acontecer que highlight no interior de um polígono. Isto significa que a cor especular nunca vai ser calculada. Regra geral, considera-se que L e N são constantes ao longo de toda a superfície de um polígono e despreza-se a dependência da intensidade luminosa face à distância entre cada ponto do polígono e o ponto de observação (ignora-se o termo r + K ). 9
SOMBREAMENTO DE GOURAUD (CONT.) N1 NA N4 N3 Passos do Algoritmo : N2 1) Calcular os vectores normais a cada um dos vértices da malha de polígonos. A normal num dado vértice obtem-se calculando a média das normais de todos os polígonos que partilham esse mesmo vértice. 2) Calculara intensidade luminosa (Iv) em cada um dos vértices da malha de polígonos por aplicação do modelo de Phong (c/ ou sem componente especular) 3) Calculara intensidade luminosa em todos os pontos interiores de cada polígono por interpolação bilinear a partir das intensidades calculadas para os vértices. (o método pressupõe que as normais nos vértices da malha de polígonos são boas aproximações à normalda superfície real, nesses mesmos pontos). INTERPOLAÇÃO NO MÉTODO DE GOURAUD Interpolação, da intensidade luminosa nos pontos interiores, está geralmente integrado no próprio algoritmo de preenchimento de polígonos e pressupõe o cálculo dos lados do polígono no espaço-imagem a partir dos vértices do objecto. Ia = 1 [ I 1 ( y s - y 2 ) + I 2 ( y 1 - y s ) ] y 1 - y 2 Ib = 1 [ I 1 ( y s - y 4 ) + I 4 ( y 1 - y s ) ] y 1 - y 4 Is = 1 [ I a ( x b - x s ) + I b ( x s - x a ) ] x b - x a Numa linha de varrimento (x +? x): Linha de varrimento y s I a I 1 (x 1, y 1 ) I b (x a, y s ) (x b, y s ) I s I 4 (x 4, y 4 ) I s = x (I b - I a ) x b - x a I s, n = I s, n - 1 + I s I 2 (x 2, y 2 ) I 3 (x 3, y 3 ) 10
PROBLEMAS E LIMITAÇÕES (GOURAUD) - 1 Percepção parcial da malha poligonal de base, devido ao efeito de Mach banding. Vista humana é sensível a variações de intensidade luminosa até à segunda derivada, apreende descontinuidades junto das fronteiras poligonais (faixas brilhantes). Bastante perceptíveis quando a zona especular se estende por vários polígonos. Perturbações perceptíveis em sequências animadas (c/ rotações, translacções, movimentações de câmara), dado que a interpolação de intensidades é executada em coordenadas de ecrã, mas partindo de vectores normais calculados em coordenadas do Mundo. PROBLEMAS E LIMITAÇÕES (GOURAUD) - 2 Podem ocorrer erros porque as normais aos vértices são calculadas pela média das normais aos polígonos. Por exemplo, umfalso alisamento de troços da superfície, quando a aproximação poligonal é pouco rigorosa e se observa uma conjunção indesejada dos valores das normais empolígonos adjacentes. nornais aos vértices normais aos polígonos 11
SOMBREAMENTO DE PHONG O método de sombreamento de Phong (Phong 75) permite modelar correctamente as áreas de highlight. Executa, também, uma interpolação bilinear para calculara intensidade luminosa nos pontos interiores aos polígonos: o método de Gouraud interpola intensidades nos vértices, o método de Phong interpola as normais aos vértices. Calcula-se, separadamente, a intensidade de cada ponto a partir do valor de um vector normal, obtido por interpolação para esse ponto. Para que a intensidade luminosa em cada ponto seja apenas função da normal interpolada, considera-se que a fonte de luz e o ponto de observação estão a uma distância infinita. INTERPOLAÇÃO NO MÉTODO DE PHONG - 1 Na = 1 [ N 1 ( y s - y 2 ) + N 2 ( y 1 - y s ) ] y 1 - y 2 Nb = 1 [ N 1 ( y s - y 4 ) + N 4 ( y 1 - y s ) ] y 1 - y 4 Linha de varrimento N a N 1 (x 1, y 1 ) N b Ns = 1 [ N a ( x b - x s ) + N b ( x s - x a ) ] x b - x a (x a, y s ) (x b, y s ) y s N 2 (x 2, y 2 ) N s N 3 (x 4, y 4 ) N 4 12
INTERPOLAÇÃO NO MÉTODO DE PHONG - 2 Pressupõe-se que os vectores interpolados Ns, utilizados no cálculo das intensidades luminosas, constituam boas aproximações às normais exactas. normais interpoladas Assim sendo, a interpolação de normais tende a recuperar a curvatura da superfície original. superf. original INTERPOLAÇÃO NO MÉTODO DE PHONG - 3 As expressões para o cálculo de normais interpoladas são expressões vectoriais. Cada uma desdobra-se em três equações distintas, (em x, y e z). Tem-se assim, ao longo de uma linha do varrimento: N sx, n = N sx, n - 1 + N sy, n = N sy, n - 1 + N sx N sy Com: N sx = x (N bx - N ax ) x b - x a N sy = x (N by - N ay ) x b - x a N sz, n = N sz, n - 1 + N sz N sz = x (N bz - N az ) x b - x a A interpolação torna-se três vezes mais dispendiosa que na solução de Gouraud Deve calcular-se, para cada pixel, a expressão da intensidade luminosa do modelo de reflexão de Phong. 13
COMO OPTIMIZAR O SOMBREAMENTO Por optimização matemática, aproximando a equação de Phong a uma Série de Taylor (simples cálculo de adições). Por combinação dos métodos de Phong e Gouraud: 1) Aplicação do método de Phong no cálculo da intensidade luminosa em pixeis alternados, recorrendo ao cálculo de uma média simples para os pixeis intermédios. 2) Aplicação do método de Gouraud para calcular a componente de reflexão difusa em toda a superfície do objecto. Adicionar a parcela de reflexão especular, calculada através do método de Phong, apenas para os polígonos total ou parcialmente cobertos por áreas de highlight. (testes preliminares, entre as normais aos vértices e o vector de máxima reflexão H, para selecção desses polígonos). PROBLEMAS DO SOMBREAMENTO INTERPOLADO - 1 Aspecto marcadamente poligonal ao longo dos lados que constituem a silhueta de superfícies curvas, aproximadas por malhas de polígonos. A interpolação de intensidades, constante ao longo das linhas de varrimento, não está de acordo com a distorção provocada pela transformação de perspectiva. d2 d1 Em wc: d1 < d2 14
PROBLEMAS DO SOMBREAMENTO INTERPOLADO - 2 O resultado do sombreamento depende da orientação dos polígonos. Perturbações quando a orientação de umobjecto varia lentamente ao longo da sequência de imagens de umtrecho de animação. A D P B A P B C C interpol. A,B,D D interpol. A,B,C Nem sempre as normais calculadas nos vértices da malha de polígonos constituem uma boa aproximação à normalda superfície a sombrear (refinar a aproximação poligonal). Teapot - modelo Wire-Frame Teapot - Sombreamento constante Teapot - Sombreamento Gouraud Teapot - Sombreamento Phong 15