INF 1366 – Computação Gráfica Interativa Iluminação e Shading Alberto B. Raposo [email protected] http://www.tecgraf.puc-rio.br/~abraposo/INF1366/index.htm Alberto Raposo – PUC-Rio Pipeline Gráfico 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 Alberto Raposo – PUC-Rio D. Brogan Univ. of Virginia 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” Alberto Raposo – PUC-Rio D. Brogan Univ. of Virginia Sumário • Iluminação direta (local) D. Brogan Univ. of Virginia – Emissão nas fontes de luz – Dispersão nas superfícies • Iluminação global – Sombras – Refrações – Reflexões Inter-objetos Alberto Raposo – PUC-Rio Iluminação direta 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 Light Alberto Raposo – PUC-Rio (x,y,z) D. Brogan Univ. of Virginia Modelos Empíricos • Idealmente medem energia irradiada em “todas” as situações – Muita informação – Difícil na prática l Alberto Raposo – PUC-Rio D. Brogan Univ. of Virginia 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 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 Alberto Raposo – PUC-Rio D. Brogan Univ. of Virginia 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 Alberto Raposo – PUC-Rio É um “truque” para evitar complexidade do modelo de iluminação global! 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 D. Brogan Univ. of Virginia – Posição da fonte e do observador não são importantes Alberto Raposo – PUC-Rio Fontes de luz direcionais •A mesma cena anterior, agora com luz ambiente e direcional Alberto Raposo – PUC-Rio D. Brogan Univ. of Virginia Comparando: Só luz ambiente Alberto Raposo – PUC-Rio Luz ambiente + fonte direcional D. Brogan Univ. of Virginia 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: l – Precisa calcular um vetor normalizado de cada ponto iluminado da superfície até a fonte: 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 Alberto Raposo – PUC-Rio The annoteted VRML ref. VRML – Point Light Alberto Raposo – PUC-Rio VRML – Point Light Alberto Raposo – PUC-Rio The annoteted VRML ref. 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 Alberto Raposo – PUC-Rio The annoteted VRML ref. 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) D. Brogan Univ. of Virginia √ Emissão nas fontes de luz – Dispersão nas superfícies • Iluminação global – Sombras – Refrações – Reflexões Inter-objetos Alberto Raposo – PUC-Rio Iluminação direta Modelando a Reflectância das Superfícies • Rs(q,f,g,y,l) ... – – – – descreve a quantidade de energia incidente, l chegando na direção (q,f), ... saindo na direção (g,y), … (q,f) com comprimento de onda l (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 l incidência – Muita informação – Difícil na prática (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”: Alberto Raposo – PUC-Rio D. Brogan Univ. of Virginia Reflexão difusa • Quanto de luz é refletida? – Depende do ângulo da luz incidente dL dA cos q dL dA Superfície Alberto Raposo – PUC-Rio D. Brogan Univ. of Virginia 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: l n q •Idiffuse = kd Ilight cos q •Na prática, usa-se aritmética de vetores •Idiffuse = kd Ilight (n • l) Alberto Raposo – PUC-Rio D. Brogan Univ. of Virginia Componente de reflexão difusa nˆ Lˆ M. Gattass, PUC-Rio nˆ Lˆ Lˆ nˆ ( ( ( ˆ lr kdr nˆ L I r lr kdr lr kdr ˆ ˆ ˆ I g l g kdg nˆ L l g kdg nˆ L l g kdg nˆ L I l k l k ˆ ˆ L l k n b db b b db b db ( Alberto Raposo – PUC-Rio ( I, l, k [0 ,1 ] 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: Alberto Raposo – PUC-Rio D. Brogan Univ. of Virginia 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! Alberto Raposo – PUC-Rio D. Brogan Univ. of Virginia 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 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: q(l)ight = q(r)eflection Alberto Raposo – PUC-Rio D. Brogan Univ. of Virginia Reflexão Especular • Reflexão é mais forte perto do ângulo do espelho N R q q L D. Brogan Univ. of Virginia Alberto Raposo – PUC-Rio Geometria da Reflexão D. Brogan Univ. of Virginia N RN(L) L qL qR Alberto Raposo – PUC-Rio qL=qR Geometria da Reflexão D. Brogan Univ. of Virginia N L cos(qi)N qL qR Alberto Raposo – PUC-Rio (N.L)N qL=qR RN(L) Geometria da Reflexão D. Brogan Univ. of Virginia 2(N.L)N N RN(L) L qL qR Alberto Raposo – PUC-Rio qL=qR Geometria da Reflexão D. Brogan Univ. of Virginia 2(N.L)N L N RN(L) L qL qR Alberto Raposo – PUC-Rio qL=qR Geometria da Reflexão D. Brogan Univ. of Virginia 2(N.L)N L N RN(L) L qL qR Alberto Raposo – PUC-Rio RN ( L) 2(N LN L qL=qR 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 Alberto Raposo – PUC-Rio Univ. of Virginia Reflectância especular não-ideal: Aproximação Empírica •Ilustração da distribuição da reflexão: Alberto Raposo – PUC-Rio D. Brogan Univ. of Virginia Modelo de Iluminação de Phong •Modelo mais usado em Computação Gráfica: Ispecular ksIlight(cosf nshiny •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 v 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: Ispecular ksIlight(v r nshiny – v é o vetor unitário em direção ao observador – r é a direção de reflexão ideal Alberto Raposo – PUC-Rio D. Brogan Univ. of Virginia v Phong: o termo nshiny brilho f Alberto Raposo – PUC-Rio D. Brogan Univ. of Virginia Componente de reflexão especular M. Gattass, PUC-Rio rˆ nˆ vˆ Lˆ lr k sr (rˆ vˆ n I r lr k sr lr k sr n n n I g l g k sg (rˆ vˆ l g k sg (rˆ vˆ l g k sg (rˆ vˆ n I l k l k ˆ ˆ ( l k r v b sb b b sb b sb Alberto Raposo – PUC-Rio I, l, k [0 ,1 ] Exemplos: Phong •Esferas com modelo de Phong, variando l e nshiny: Alberto Raposo – PUC-Rio D. Brogan Univ. of Virginia Combinando Tudo • Modelo analítico simples: – – – – reflexão difusa + reflexão especular + emissão + “ambiente” Superfície Alberto Raposo – PUC-Rio D. Brogan Univ. of Virginia Combinando Tudo • Modelo analítico simples: – – – – reflexão difusa + reflexão especular + emissão + “ambiente” Surface Alberto Raposo – PUC-Rio D. Brogan Univ. of Virginia Equação Final Combinada D. Brogan Univ. of Virginia • Para uma fonte de luz: N observador R a q q L V I I E K A I AL KD ( N L)I L KS (V R)n I L Alberto Raposo – PUC-Rio Equação Final Combinada • Para várias fontes de luz: D. Brogan Univ. of Virginia N observador L1 L2 V I I E K A I AL i ( K D ( N Li ) I i K S (V Ri ) I i ) n 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) D. Brogan Univ. of Virginia √ Emissão nas fontes de luz √ Dispersão nas superfícies • Iluminação global – Sombras – Refrações – Reflexões Inter-objetos Alberto Raposo – PUC-Rio Iluminação direta 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 Raio refletido: p(t ) pi t rˆ nˆ rˆ q vˆ q pi 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 Alberto Raposo – PUC-Rio D. Brogan Univ. of Virginia 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: Alberto Raposo – PUC-Rio D. Brogan Univ. of Virginia 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 Alberto Raposo – PUC-Rio D. Brogan Univ. of Virginia 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 Alberto Raposo – PUC-Rio D. Brogan Univ. of Virginia 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 C1 c + t (c -c ) • Ao longo das scanlines 1 1 2 1 – OpenGL, VRML C3 c1 + t1(c2-c1) + t3(c1 + t2(c3-c1)- c1 + t1(c2-c1)) C2 Alberto Raposo – PUC-Rio c1 + t2(c3-c1) Gouraud Shading • Artefatos aparecem às vezes • Não tem componente especular preciso D. Brogan Univ. of Virginia – Se existente, seria “distribuído” em todo o polígono C1 C3 Alberto Raposo – PUC-Rio C2 Não dá para fazer esse efeito! Gouraud Shading Artefatos D. Brogan Univ. of Virginia – Mach Banding Ocorre nas descontinuidades de intensidade ou na C1 derivada da intensidade http://www.edcenter.sdsu.edu/slides/GA/visteacher/sld048.htm C4 C3 C2 Alberto Raposo – PUC-Rio Descontinuidade na taxa de mudança de cores Phong Shading • Não é a mesma coisa que o modelo de iluminação de Phong! D. Brogan Univ. of Virginia – 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 Alberto Raposo – PUC-Rio Phong Shading 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 I total ka I ambient N3 N2 Alberto Raposo – PUC-Rio #lights i 1 ( ( I i kd Nˆ Lˆi k s Vˆ Rˆi nshiny Normais são usadas nas componentes difusa e especular Descontinuidade na derivada da normal é mais difícil de detectar visualmente Suavização da tonalização M. Gattass, PUC-Rio Gouraud c1 Phong c4 N1 c12 c N4 c43 N N12 N43 c c2 c3 Alberto Raposo – PUC-Rio N2 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 – 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.pucrio.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