INF 1366 – Computação Gráfica Interativa Iluminação e Shading Alberto B. Raposo abraposo@tecgraf.puc-rio.br http://www.tecgraf.puc-rio.br/~abraposo/INF1366/index.htm Alberto Raposo – PUC-Rio
Pipeline Gráfico Modeling Transformations Illumination Cluter & Durand, MIT Modeling Transformations Illumination (Shading) Viewing Transformation (Perspective / Orthographic) Clipping Projection (to Screen Space) Scan Conversion (Rasterization) Visibility / Display Alberto Raposo – PUC-Rio
Iluminação Como computar a irradiação de um raio de luz? Angel Figure 6.2 D. Brogan Univ. of Virginia Alberto Raposo – PUC-Rio
Objetivo Criar modelos computacionais para ... Emissão nas fontes de luz Dispersão nas superfícies Recepção na câmera Características desejadas … Conciso Eficiente “Preciso” D. Brogan Univ. of Virginia Alberto Raposo – PUC-Rio
Sumário Iluminação direta (local) Iluminação global D. Brogan Univ. of Virginia Iluminação direta (local) Emissão nas fontes de luz Dispersão nas superfícies Iluminação global Sombras Refrações Reflexões Inter-objetos Iluminação direta Alberto Raposo – PUC-Rio
Modelando Fontes de Luz IL(x,y,z,q,f,l) ... descreve a intensidade de energia, saindo de uma fonte de luz, … shegando em (x,y,z), ... da direção (q,f), ... com comprimento de onda l (x,y,z) Light D. Brogan Univ. of Virginia Alberto Raposo – PUC-Rio
Modelos Empíricos Idealmente medem energia irradiada em “todas” as situações Muita informação Difícil na prática l D. Brogan Univ. of Virginia Alberto Raposo – PUC-Rio
Luz Ambiente Objetos que não são iluminados diretamente são geralmente visíveis e.g., o teto da sala, embaixo da mesa, etc. Isso é resultado da iluminação indireta dos emissores, refletida a partir de superfícies intermediárias Fonte de luz Alberto Raposo – PUC-Rio
Luz Ambiente Reflexões indiretas são caras de se calcular (especialmente em tempo real), por isso usa-se um truque: fonte de luz ambiente Não tem características espaciais ou direcionais: ilumina todas as superfícies igualmente A quantidade de luz refletida depende das propriedades das superfícies Alberto Raposo – PUC-Rio
Ireflected = kambient Iambient Fonte de luz ambiente Para cada comprimento de onda amostrado (R, G, B), a luz ambiente refletida em uma superfície depende de Propriedades da superfície, kambient Intensidade, Iambient, da fonte de luz ambiente (constante para todos os pontos em todas as superfícies) Ireflected = kambient Iambient D. Brogan Univ. of Virginia Alberto Raposo – PUC-Rio
Fonte de luz ambiente Cena iluminada apenas pela luz ambiente: Posição da fonte não é importante Posição do observador não é importante Ângulo de incidência não é importante Alberto Raposo – PUC-Rio D. Brogan Univ. of Virginia
Componente de luz ambiente Representa a reflexão de toda a iluminação indireta D. Brogan Univ. of Virginia É um “truque” para evitar complexidade do modelo de iluminação global! Alberto Raposo – PUC-Rio
Fontes de luz direcionais Para uma fonte direcional, algumas simplificações também são assumidas: A direção de iluminação é constante para todas as superfícies da cena Todos os raios de luz são paralelos Como se a fonte estivesse no infinito Boa aproximação para luz do Sol A direção da superfície em relação à da luz é importante Posição da fonte e do observador não são importantes D. Brogan Univ. of Virginia Alberto Raposo – PUC-Rio
Fontes de luz direcionais A mesma cena anterior, agora com luz ambiente e direcional D. Brogan Univ. of Virginia Alberto Raposo – PUC-Rio
Comparando: Só luz ambiente Luz ambiente + fonte direcional D. Brogan Univ. of Virginia Alberto Raposo – PUC-Rio
Fontes de luz puntuais Uma fonte puntual emite luz igualmente em todas as direções a partir de um único ponto A direção da luz que chega em uma superfície é diferente em cada ponto: Precisa calcular um vetor normalizado de cada ponto iluminado da superfície até a fonte: l p Alberto Raposo – PUC-Rio D. Brogan Univ. of Virginia
Spot Lights Spots são fontes puntuais cuja intensidade reduz (falls off) direcionalmente. Requerem cor, ponto (localização), direção, parâmetros de falloff Existem em OpenGL e VRML Alberto Raposo – PUC-Rio
VRML / X3D Iluminação: Directional Light PointLight SpotLight Componente Ambiente é associado a cada uma das fontes individuais (campo ambientIntensity) Alberto Raposo – PUC-Rio
VRML – Directional Light The annotated VRML ref. Alberto Raposo – PUC-Rio
VRML – Directional Light The annoteted VRML ref. Alberto Raposo – PUC-Rio
VRML – Point Light Alberto Raposo – PUC-Rio
VRML – Point Light The annoteted VRML ref. Alberto Raposo – PUC-Rio
VRML – Spot Light SpotLight { color 1 1 1 location 0 0 0 direction 0 0 -1 radius 100 cutOffAngle 0.785398 beamWidth 1.570796 on TRUE (...) } Alberto Raposo – PUC-Rio
VRML – Spot Light The annoteted VRML ref. Alberto Raposo – PUC-Rio
Fontes de Área Definem uma superfície 2-D emissiva (por ex., disco ou polígono) exemplo: painel de luz fluorescente D. Brogan Univ. of Virginia Alberto Raposo – PUC-Rio
Luzes - Atenuação M. Gattass, PUC-Rio Alberto Raposo – PUC-Rio
Sumário Iluminação direta (local) Iluminação global D. Brogan Univ. of Virginia Iluminação direta (local) Emissão nas fontes de luz Dispersão nas superfícies Iluminação global Sombras Refrações Reflexões Inter-objetos Iluminação direta Alberto Raposo – PUC-Rio
Modelando a Reflectância das Superfícies Rs(q,f,g,y,l) ... descreve a quantidade de energia incidente, chegando na direção (q,f), ... saindo na direção (g,y), … com comprimento de onda l l (q,f) (y,l) Superfície Alberto Raposo – PUC-Rio D. Brogan Univ. of Virginia
Modelos Empíricos Idealmente deveriam medir energia radiante para “todas” as combinações de ângulos de incidência Muita informação Difícil na prática l (q,f) (y,l) Superfície Alberto Raposo – PUC-Rio D. Brogan Univ. of Virginia
A física da reflexão Reflexão difusa ideal Um refletor difuso ideal, microscopicamente, é superfície extremamente rugosa Devido a essas variações microscópicas, raio de luz recebido pela superfície se reflete igualmente em qualquer direção do “hemisfério”: D. Brogan Univ. of Virginia Alberto Raposo – PUC-Rio
Reflexão difusa Quanto de luz é refletida? Depende do ângulo da luz incidente q dL dA Superfície D. Brogan Univ. of Virginia Alberto Raposo – PUC-Rio
Lei do Cosseno de Lambert Superfícies difusas ideais refletem de acordo com a lei do cosseno de Lambert: A energia refletida de uma fonte de luz em uma dada direção por um pequeno pedaço de uma superfície é proporcional ao cosseno do ângulo entre aquela direção e a normal da superfície naquele pequeno pedaço São as chamadas: superfícies lambertianas Intensidade refletida depende da orientação da superfície em relação à fonte de luz, mas independe da direção de visualização do observador Alberto Raposo – PUC-Rio
Lei de Lambert D. Brogan Univ. of Virginia Alberto Raposo – PUC-Rio
Computando a Reflexão Difusa O ângulo entre a normal da superfície e o raio incidente é chamado ângulo de incidência: Idiffuse = kd Ilight cos Na prática, usa-se aritmética de vetores Idiffuse = kd Ilight (n • l) l n D. Brogan Univ. of Virginia Alberto Raposo – PUC-Rio
Componente de reflexão difusa M. Gattass, PUC-Rio I, l, k [0 ,1 ] Alberto Raposo – PUC-Rio
Exemplos de incidência difusa Consideram-se ângulos de incidência entre 0° e 90° Uma esfera lambertiana vista com diferentes ângulos de incidência: D. Brogan Univ. of Virginia Alberto Raposo – PUC-Rio
Reflexão Especular Superfícies brilhantes exibem reflexão especular Ex.: Metal polido O “brilho” da luz sobre superfície especular gera “mancha” brilhante: specular highlight Onde esses highlights aparecem é função da posição do observador: Reflexão especular depende da visão do observador! D. Brogan Univ. of Virginia Alberto Raposo – PUC-Rio
A física da reflexão especular No nível microscópico, superfície especular é muito lisa Raios de luz tendem a “bater” e refletir como espelhos Quanto mais lisa, mais próxima do espelho perfeito Alberto Raposo – PUC-Rio
(l)ight = (r)eflection A óptica da reflexão Reflexão segue Lei de Snell: O raio incidente e o refletido estão no mesmo plano que a normal à superfície O ângulo que o raio refletido forma com a normal à superfície é igual ao ângulo formado pelo raio incidente e a normal: (l)ight = (r)eflection D. Brogan Univ. of Virginia Alberto Raposo – PUC-Rio
Reflexão Especular Reflexão é mais forte perto do ângulo do espelho N q q L D. Brogan Univ. of Virginia Alberto Raposo – PUC-Rio
Geometria da Reflexão qL=qR N RN(L) L qL qR Alberto Raposo – PUC-Rio D. Brogan Univ. of Virginia N RN(L) L qL qR qL=qR Alberto Raposo – PUC-Rio
Geometria da Reflexão qL=qR N (N.L)N RN(L) L cos(qi)N qL qR D. Brogan Univ. of Virginia N (N.L)N RN(L) L cos(qi)N qL qR qL=qR Alberto Raposo – PUC-Rio
Geometria da Reflexão qL=qR 2(N.L)N N RN(L) L qL qR D. Brogan Univ. of Virginia 2(N.L)N N RN(L) L qL qR qL=qR Alberto Raposo – PUC-Rio
Geometria da Reflexão qL=qR 2(N.L)N L N RN(L) L qL q qR q D. Brogan Univ. of Virginia 2(N.L)N L N RN(L) L qL q qR q qL=qR Alberto Raposo – PUC-Rio
Geometria da Reflexão qL=qR 2(N.L)N L N RN(L) L qL qR D. Brogan Univ. of Virginia 2(N.L)N L N RN(L) L qL qR qL=qR Alberto Raposo – PUC-Rio
Reflectância especular não-ideal Lei de Snell se aplica para superfícies perfeitas mas, tirando os espelhos, poucas superfícies têm essa perfeição na reflexão Como capturar as reflexões “softs” de uma superfície não-perfeita? Hipótese: a maior parte da luz se reflete de acordo com Lei de Snell, mas alguma luz se reflete em direções ligeiramente diferentes da ideal D. Brogan Univ. of Virginia Alberto Raposo – PUC-Rio
Reflectância especular não-ideal: Aproximação Empírica Ilustração da distribuição da reflexão: D. Brogan Univ. of Virginia Alberto Raposo – PUC-Rio
Modelo de Iluminação de Phong Modelo mais usado em Computação Gráfica: v nshiny é constante puramente empírica que faz variar a taxa de falloff da reflexão Nenhum fundamento físico, mas “funciona” em Computação Gráfica Alberto Raposo – PUC-Rio D. Brogan, Univ. of Virginia
Modelo de Iluminação de Phong O termo do cos pode ser calculado via aritmética de vetores: v é o vetor unitário em direção ao observador r é a direção de reflexão ideal v D. Brogan Univ. of Virginia Alberto Raposo – PUC-Rio
Phong: o termo nshiny brilho Alberto Raposo – PUC-Rio D. Brogan Univ. of Virginia Alberto Raposo – PUC-Rio
Componente de reflexão especular M. Gattass, PUC-Rio Alberto Raposo – PUC-Rio I, l, k [0 ,1 ]
Exemplos: Phong Esferas com modelo de Phong, variando l e nshiny: D. Brogan Univ. of Virginia Alberto Raposo – PUC-Rio
Combinando Tudo Modelo analítico simples: reflexão difusa + reflexão especular + emissão + “ambiente” Superfície D. Brogan Univ. of Virginia Alberto Raposo – PUC-Rio
Combinando Tudo Modelo analítico simples: reflexão difusa + reflexão especular + emissão + “ambiente” Surface D. Brogan Univ. of Virginia Alberto Raposo – PUC-Rio
Equação Final Combinada D. Brogan Univ. of Virginia Para uma fonte de luz: N observador R q q L a V Alberto Raposo – PUC-Rio
Equação Final Combinada Para várias fontes de luz: D. Brogan Univ. of Virginia N observador L1 L2 V Alberto Raposo – PUC-Rio
Modelo de Reflectância do OpenGL Soma difusa, especular, emissão e ambiente D. Brogan Univ. of Virginia Alberto Raposo – PUC-Rio
VRML – Material Node Alberto Raposo – PUC-Rio
Sumário Iluminação direta (local) Iluminação global D. Brogan Univ. of Virginia Iluminação direta (local) Emissão nas fontes de luz Dispersão nas superfícies Iluminação global Sombras Refrações Reflexões Inter-objetos Iluminação direta Alberto Raposo – PUC-Rio
Iluminação Global Noção de que um ponto é iluminado não só pelos raios provenientes das fontes locais, mas também por todos os emissores e refletores na cena global Alberto Raposo – PUC-Rio
Exemplo: reflexão de outros objetos M. Gattass, PUC-Rio q Superfície especular Alberto Raposo – PUC-Rio
Aplicando a Iluminação: Tonalização (Shading) Já temos modelo de iluminação para ponto na superfície Assumindo que superfícies são malhas de polígonos, que pontos usar? É cálculo muito custoso Há várias possibilidades, cada uma gerando qualidade visual diferente Alberto Raposo – PUC-Rio
Aplicando a Iluminação Com malhas poligonais/triangulares: Cada face tem normal constante Se a luz é direcional, a reflexão difusa é constante ao longo da face. (Só depende da normal – constante – e da direção de incidência dos raios – também constante no caso de luz direcional.) Alberto Raposo – PUC-Rio
Flat Shading Abordagem mais simples: calcula iluminação em um único ponto para cada polígono D. Brogan Univ. of Virginia Alberto Raposo – PUC-Rio
Flat shading não é realista para objetos facetados Para fontes puntuais, direção da luz varia ao longo da face Para reflexão especular, a direção dos olhos varia ao longo da face D. Brogan Univ. of Virginia Alberto Raposo – PUC-Rio
Flat Shading Pode ser refinado usando o modelo de iluminação de Phong em cada pixel de cada polígono, mas o resultado ainda será claramente facetado: D. Brogan Univ. of Virginia Alberto Raposo – PUC-Rio
Normais dos vértices Para conseguir visualizações mais “lisas” das superfícies, pode-se usar a normais dos vértices de cada polígono Geralmente diferente da normal da face Usada apenas para shading Imagine como uma melhor aproximação da superfície real do que os polígonos D. Brogan Univ. of Virginia Alberto Raposo – PUC-Rio
Normais dos vértices Podem ser Dadas com o modelo Calculadas diretamente Aproximadas pela média das normais das faces que copartilham o vértice D. Brogan Univ. of Virginia Alberto Raposo – PUC-Rio
c1 + t1(c2-c1) + t3(c1 + t2(c3-c1)- c1 + t1(c2-c1)) Gouraud Shading D. Brogan Univ. of Virginia Abordagem mais comum em CG Executa modelo de iluminação de Phong nos vértices Interpola linearmente os resultados sobre as faces Ao longo das arestas Ao longo das scanlines C1 c1 + t1(c2-c1) OpenGL, VRML C3 c1 + t1(c2-c1) + t3(c1 + t2(c3-c1)- c1 + t1(c2-c1)) C2 c1 + t2(c3-c1) Alberto Raposo – PUC-Rio
Não dá para fazer esse efeito! Gouraud Shading Artefatos aparecem às vezes Não tem componente especular preciso Se existente, seria “distribuído” em todo o polígono D. Brogan Univ. of Virginia C1 C2 C3 Não dá para fazer esse efeito! Alberto Raposo – PUC-Rio
Descontinuidade na taxa de mudança de cores Gouraud Shading Artefatos Mach Banding Ocorre nas descontinuidades de intensidade ou na derivada da intensidade D. Brogan Univ. of Virginia C1 http://www.edcenter.sdsu.edu/slides/GA/visteacher/sld048.htm C4 C3 C2 Descontinuidade na taxa de mudança de cores Alberto Raposo – PUC-Rio
Phong Shading Não é a mesma coisa que o modelo de iluminação de Phong! Phong lighting: modelo empírico que foi mostrado para cálculo da iluminação em um ponto de uma superfície Phong shading: interpolação linear da normal da superfície ao longo da face, aplicando o modelo de iluminação de Phong em cada pixel Mesmo input que Gouraud Resultados geralmente muito melhores Muito mais caro computacionalmente D. Brogan Univ. of Virginia Alberto Raposo – PUC-Rio
Phong Shading Interpola linearmente as normais dos vértices D. Brogan Univ. of Virginia Interpola linearmente as normais dos vértices Calcula equações de iluminação em cada pixel Pode usar componente especular N1 N4 Normais são usadas nas componentes difusa e especular Descontinuidade na derivada da normal é mais difícil de detectar visualmente N3 N2 Alberto Raposo – PUC-Rio
Suavização da tonalização M. Gattass, PUC-Rio Gouraud c1 c4 c2 c3 c12 c43 c Phong N1 N4 N N12 N43 c N2 Alberto Raposo – PUC-Rio N3
Limitações das Tonalizações Silhuetas poligonais permanecem Gouraud Phong D. Brogan Univ. of Virginia Alberto Raposo – PUC-Rio
Resumo de tonalização Flat Shading Gouraud Shading Phong Shading Calcula a iluminação de Phong uma única vez para cada polígono Gouraud Shading Calcula a iluminação de Phong para os vértices e interpola os valores obtidos ao longo do polígono Phong Shading Interpola as normais ao longo do polígono e calcula a iluminação de Phong ao longo de todo o polígono Alberto Raposo – PUC-Rio
Informações Adicionais Peter Shirley. Fundamentals of Computer Graphics, A K Peters, Ltd., Natick, MA, USA, 2002. Foley, J. D., Van Dam, A., Feiner, S. K., e Huhes, J. F., Phlips, L. R., Introduction to Computer Graphics, Addison-Wesley, 1995. Rogers, D. F., Procedural Elements for Computer Graphics. McGraw-Hill, 1985 Marcelo Gattass: notas de aula. http://www.tecgraf.puc-rio.br/~mgattass/cg.html The Annotated VRML 97 Reference: http://accad.osu.edu/~pgerstma/class/vnv/resources/info/AnnotatedVrmlRef/Book.html Alberto Raposo – PUC-Rio