SlideShare uma empresa Scribd logo
1 de 26
Baixar para ler offline
Introdução à Computação Gráfica
           Iluminação

    Adaptação:   João Paulo Pereira
                 António Costa
    Autoria:     Claudio Esperança
                 Paulo Roma Cavalcanti
Iluminação

     • Estudo de como a luz
       interage com os
       objectos de uma cena
                Emissão
                Transmissão
                Absorção
                Refracção
                Reflexão




21-11-2007                                  2
Iluminação

     • Modelos físicos
              Luz modelada como radiação
               electromagnética
              Leva em conta todas as interacções (todos os
               caminhos da luz)
              Intratável computacionalmente




21-11-2007                                                    3
Modelos de Iluminação em CG

     • Tipicamente, luz é amostrada num número discreto
       de primárias (cor)
     • Modelos locais
              Apenas caminhos do tipo fonte luminosa → superfície
               → olho são tratados
              Simples
              Ex.: OpenGL
     • Modelos globais
              Muitos caminhos (ray tracing, radiosidade)
              Complexos

21-11-2007                                                           4
Iluminação em OpenGL

     • Assume fontes pontuais de luz
              Omnidireccionais
              Spot
     • Interacções de luz com superfície modeladas
       em componentes (modelo de Phong):
              Emissão
              Ambiente
              Difusa
              Especular

21-11-2007                                           5
Iluminação em OpenGL

     • Suporte de efeitos atmosféricos como
              Fog
              Atenuação
     • Modelo de iluminação é computado apenas
       nos vértices das superfícies
              Cor dos restantes pixels é interpolada
               linearmente (sombreamento de Gouraud)



21-11-2007                                              6
Fontes de Luz

     • Para ligar uma fonte: glEnable (source);
              source é uma constante cujo nome é
               GL_LIGHTi, começando com GL_LIGHT0
              Quantas? Pelo menos 8, mas para ter certeza:
               • glGetIntegerv( GL_MAX_LIGHTS, &n );
     • Não esquecer de ligar o cálculo de cores pelo
       modelo de iluminação
              glEnable (GL_LIGHTING);


21-11-2007                                                    7
Fontes de Luz

     • Para configurar as propriedades de cada fonte:
       glLightfv(source, property, value);
              Property é uma constante designando:
               • Coeficientes de cor usados no modelo de iluminação
                  – GL_AMBIENT, GL_DIFFUSE, GL_SPECULAR
               • Geometria da fonte
                  – GL_POSITION, GL_SPOT_DIRECTION,
                    GL_SPOT_CUTOFF, GL_SPOT_EXPONENT
               • Coeficientes de atenuação
                  – GL_CONSTANT_ATTENUATION,
                    GL_LINEAR_ATTENUATION,
                    GL_QUADRATIC_ATTENUATION

21-11-2007                                                            8
Propriedades de Material

     • Especificados por
               glMaterialfv (face, property, value)
              Face designa quais os lados da superfície que
              se quer configurar:
               • GL_FRONT, GL_BACK, GL_FRONT_AND_BACK
              Property designa a propriedade do modelo
              de iluminação:
               • GL_AMBIENT, GL_DIFFUSE, GL_SPECULAR,
                 GL_EMISSION, GL_SHININESS



21-11-2007                                                     9
Geometria

     • Além das propriedades da luz e do material,
       a geometria do objecto é também importante
              A posição dos vértices em relação ao olho e à
               fonte luminosa contribui para o cálculo dos
               efeitos atmosféricos
              A normal é fundamental
               • Não é calculada automaticamente
               • Precisa de ser especificada com glNormal ()



21-11-2007                                                     10
Cálculo do Vector Normal
                                                            A
     • Triângulo
              Dados três vértices,
                 
                 n  normalizar(( A  B)  (C  A))     B               C

     • Polígono planar
              Uma opção é usar a fórmula do triângulo para
               quaisquer 3 vértices
                • Sujeito a erros (vectores pequenos ou quase colineares)
              Outra opção é determinar a equação do plano
                • ax + by + cz + d = 0
                • Normal tem coordenadas (a, b, c)


21-11-2007                                                                  11
Cálculo do Vector Normal

     • Polígono planar (cont.)
              Coeficientes a, b, c da equação do plano são
               proporcionais às áreas do polígono projectado nos
               planos yz, zx e xy
                                                              1
       y              (xi+1, yi+1)                  AreaXYi    ( yi  yi 1 )( xi  xi 1 )
                                                              2
                                                    c   AreaXYi
                                     (xi, yi)




21-11-2007                                      x                                              12
Cálculo do Vector Normal de
                     Superfícies Implícitas
     • Normal é dada pelo
       vector gradiente


             f ( x, y , z )  0
                  f / x 
                         
             n   f / y 
                  f / z 
                          
                                                f (x,y,z) = c1
                                                f (x,y,z) = c2
                                                f (x,y,z) = c3
21-11-2007                                                   13
Cálculo do Vector Normal de
                    Superfícies Paramétricas
  • Normal é dada pelo
    produto vectorial dos                     
    gradientes em relação                     n
                                                       f
    aos parâmetros u e v                               u
                                                  f
         f x (u , v)                            v
                     
    P   f y (u , v) 
         f (u , v) 
         z           
               f x / u   f x / v 
     f f                            
    n       f y / u    f y / v 
       u v 
               f z / u   f z / v 
                                        
21-11-2007                                                  14
Componentes do Modelo de
                     Phong
     • Emissão: contribuição que não depende de
       fontes de luz (fluorescência)
     • Ambiente: contribuição que não depende da
       geometria
     • Difusa: contribuição correspondente ao
       espalhamento da reflexão lambertiana
       (independente da posição do observador)
     • Especular: contribuição referente ao
       comportamento de superfícies polidas
21-11-2007                                         15
Componentes do
                      Modelo de Phong




             Difusa   Especular   Ambiente
21-11-2007                                   16
Iluminação Ambiente

     • Componente que modela como uma constante o
       efeito da reflexão de outros objectos do ambiente
     • Depende dos coeficientes GL_AMBIENT tanto das
       fontes luminosas quanto dos materiais
     • É ainda possível usar luminosidade ambiente não
       relacionada com fontes luminosas
              glLightModelfv (GL_LIGHT_MODEL_AMBIENT, params)
     • Contribuição é dada por

                               A  I AM A

21-11-2007                                                       17
Iluminação Difusa
     • Iluminação recebida por uma superfície e que é reflectida
       uniformemente em todas as direcções
     • Característica de materiais baços ou foscos
     • Esse tipo de reflexão é também designada por reflexão
       lambertiana
     • A luminosidade aparente da superfície não depende do
       observador, mas apenas do cosseno do ângulo de incidência
       da luz




21-11-2007                                                         18
Iluminação Difusa

     • Contribuição é dada por
                                                L N
                D  I D M D cos   I D M D (        )
                                                LN

                             N

                                    
                                                 L




21-11-2007                                               19
Iluminação Especular

     • Simula a reflexão à maneira de um espelho (objectos
       altamente polidos)
     • Depende da posição do observador, objecto e fonte
       de luz
     • Num espelho perfeito, a reflexão dá-se em ângulos
       iguais
              Observador só veria a reflexão de uma fonte pontual
               se estivesse na direção certa
     • No modelo de Phong simulam-se reflectores
       imperfeitos, assumindo que luz é reflectida segundo
       um cone cujo eixo passa pelo observador

21-11-2007                                                           20
Iluminação Especular

     • Contribuição é dada por
             S  I S M S cos n   I S M S ( R  E ) n

                                N
                   R
                                   
                                         L
                  E



21-11-2007                                               21
Coeficiente de Especularidade

     • Indica quão polida é a superfície
              Espelho ideal tem coeficiente de especularidade
               infinito
              Na prática, usam-se valores entre 5 e 100




21-11-2007                                                       22
Cálculo do vector da luz
                            reflectida

             R  Ln  Lp  ( N  L) N  ( L  Ln )  2( N  L) N  L

                                   N

                             –Lp          Lp

                    R                Ln        L




21-11-2007                                                             23
Componente Especular em
                     OpenGL
     • Utiliza o ângulo entre a normal e o vector halfway

               S  I S M S cos n   I S M S ( H  N ) n

                         H       N
                             

                     R
                                            L
                 E                                             EL
                                                H  normalizar         
                                                                2 
                                                   normalizar E  L 

21-11-2007                                                                  24
Atenuação

    • Para fontes de luz posicionais (w = 1), é possível
      definir um factor de atenuação que leva em conta a
      distância d entre a fonte de luz e o objecto iluminado
    • Coeficientes são definidos pela função glLight ()
    • Por omissão não há atenuação (c0=1, c1=c2=0)


                                   1
                     aten 
                            c0  c1d  c2 d 2



21-11-2007                                                     25
Juntando tudo

     • A atenuação só é aplicada sobre as componentes difusa e
       especular
     • A fórmula que calcula a cor de um vértice devida a uma
       fonte luminosa i é dada por

                    Ci  Ai  aten Di  Si 

     • No final, a cor é dada pela contribuição da iluminação
       ambiente (parcela não associada com fontes de luz)
       somada à luz emitida e às contribuições Ci

              C  Amb  E   Ai  aten Di  Si 
21-11-2007                                                       26

Mais conteúdo relacionado

Destaque

Programa CG tosco
Programa CG toscoPrograma CG tosco
Programa CG toscoMarco Silva
 
Teoria da Computacao
Teoria da ComputacaoTeoria da Computacao
Teoria da ComputacaoMarco Silva
 
Aula 5 de Arquitetura de Computadores
Aula 5 de Arquitetura de ComputadoresAula 5 de Arquitetura de Computadores
Aula 5 de Arquitetura de ComputadoresMarco Silva
 
Teoria da Computacao Cap 2
Teoria da Computacao Cap 2Teoria da Computacao Cap 2
Teoria da Computacao Cap 2Marco Silva
 
Teoria da Computacao Cap 1
Teoria da Computacao Cap 1Teoria da Computacao Cap 1
Teoria da Computacao Cap 1Marco Silva
 
Aula 6 de Arquitetura de Computadores
Aula 6 de Arquitetura de ComputadoresAula 6 de Arquitetura de Computadores
Aula 6 de Arquitetura de ComputadoresMarco Silva
 
Aula 4 de Arquitetura de Computadores
Aula 4 de Arquitetura de ComputadoresAula 4 de Arquitetura de Computadores
Aula 4 de Arquitetura de ComputadoresMarco Silva
 
Aula18 Teste Software
Aula18 Teste SoftwareAula18 Teste Software
Aula18 Teste SoftwareMarco Silva
 
O Canivete Suíço da Kabalah
O Canivete Suíço da KabalahO Canivete Suíço da Kabalah
O Canivete Suíço da Kabalahguestffc0d6
 
Tabelas Luminotecnia
Tabelas LuminotecniaTabelas Luminotecnia
Tabelas Luminotecniafj-fp
 
Anderson rosa frater goya - tarot - um guia crowley e kabalah - livro inc...
Anderson rosa    frater goya - tarot - um guia  crowley e kabalah - livro inc...Anderson rosa    frater goya - tarot - um guia  crowley e kabalah - livro inc...
Anderson rosa frater goya - tarot - um guia crowley e kabalah - livro inc...Yaoloorisa Osunseyi Lili
 
233929003 dogma-e-ritual-de-alta-magia-eliphas-levi
233929003 dogma-e-ritual-de-alta-magia-eliphas-levi233929003 dogma-e-ritual-de-alta-magia-eliphas-levi
233929003 dogma-e-ritual-de-alta-magia-eliphas-leviFabio Souza
 
12 Dicas Da Prosperidade Do Feng Chui
12 Dicas Da Prosperidade Do Feng Chui12 Dicas Da Prosperidade Do Feng Chui
12 Dicas Da Prosperidade Do Feng ChuiAdriana Reis
 
Feng shui ernest j eitel
Feng shui ernest j eitelFeng shui ernest j eitel
Feng shui ernest j eitelbycrist
 

Destaque (20)

Rendering
RenderingRendering
Rendering
 
Programa CG tosco
Programa CG toscoPrograma CG tosco
Programa CG tosco
 
Teoria da Computacao
Teoria da ComputacaoTeoria da Computacao
Teoria da Computacao
 
Aula 5 de Arquitetura de Computadores
Aula 5 de Arquitetura de ComputadoresAula 5 de Arquitetura de Computadores
Aula 5 de Arquitetura de Computadores
 
Teoria da Computacao Cap 2
Teoria da Computacao Cap 2Teoria da Computacao Cap 2
Teoria da Computacao Cap 2
 
Teoria da Computacao Cap 1
Teoria da Computacao Cap 1Teoria da Computacao Cap 1
Teoria da Computacao Cap 1
 
Algoritmos - Arquivos Parte 2
Algoritmos - Arquivos Parte 2Algoritmos - Arquivos Parte 2
Algoritmos - Arquivos Parte 2
 
Aula 6 de Arquitetura de Computadores
Aula 6 de Arquitetura de ComputadoresAula 6 de Arquitetura de Computadores
Aula 6 de Arquitetura de Computadores
 
Confianca Noemi
Confianca NoemiConfianca Noemi
Confianca Noemi
 
Aula 4 de Arquitetura de Computadores
Aula 4 de Arquitetura de ComputadoresAula 4 de Arquitetura de Computadores
Aula 4 de Arquitetura de Computadores
 
Aula18 Teste Software
Aula18 Teste SoftwareAula18 Teste Software
Aula18 Teste Software
 
O Canivete Suíço da Kabalah
O Canivete Suíço da KabalahO Canivete Suíço da Kabalah
O Canivete Suíço da Kabalah
 
Dicas de iluminação cenicas
Dicas de iluminação cenicasDicas de iluminação cenicas
Dicas de iluminação cenicas
 
Tabelas Luminotecnia
Tabelas LuminotecniaTabelas Luminotecnia
Tabelas Luminotecnia
 
Anderson rosa frater goya - tarot - um guia crowley e kabalah - livro inc...
Anderson rosa    frater goya - tarot - um guia  crowley e kabalah - livro inc...Anderson rosa    frater goya - tarot - um guia  crowley e kabalah - livro inc...
Anderson rosa frater goya - tarot - um guia crowley e kabalah - livro inc...
 
Feng shui -apostila1
Feng shui -apostila1Feng shui -apostila1
Feng shui -apostila1
 
233929003 dogma-e-ritual-de-alta-magia-eliphas-levi
233929003 dogma-e-ritual-de-alta-magia-eliphas-levi233929003 dogma-e-ritual-de-alta-magia-eliphas-levi
233929003 dogma-e-ritual-de-alta-magia-eliphas-levi
 
12 Dicas Da Prosperidade Do Feng Chui
12 Dicas Da Prosperidade Do Feng Chui12 Dicas Da Prosperidade Do Feng Chui
12 Dicas Da Prosperidade Do Feng Chui
 
Eficiência energética na arquitetura.
Eficiência energética na arquitetura.Eficiência energética na arquitetura.
Eficiência energética na arquitetura.
 
Feng shui ernest j eitel
Feng shui ernest j eitelFeng shui ernest j eitel
Feng shui ernest j eitel
 

Modelos de Iluminacao

  • 1. Introdução à Computação Gráfica Iluminação Adaptação: João Paulo Pereira António Costa Autoria: Claudio Esperança Paulo Roma Cavalcanti
  • 2. Iluminação • Estudo de como a luz interage com os objectos de uma cena  Emissão  Transmissão  Absorção  Refracção  Reflexão 21-11-2007 2
  • 3. Iluminação • Modelos físicos  Luz modelada como radiação electromagnética  Leva em conta todas as interacções (todos os caminhos da luz)  Intratável computacionalmente 21-11-2007 3
  • 4. Modelos de Iluminação em CG • Tipicamente, luz é amostrada num número discreto de primárias (cor) • Modelos locais  Apenas caminhos do tipo fonte luminosa → superfície → olho são tratados  Simples  Ex.: OpenGL • Modelos globais  Muitos caminhos (ray tracing, radiosidade)  Complexos 21-11-2007 4
  • 5. Iluminação em OpenGL • Assume fontes pontuais de luz  Omnidireccionais  Spot • Interacções de luz com superfície modeladas em componentes (modelo de Phong):  Emissão  Ambiente  Difusa  Especular 21-11-2007 5
  • 6. Iluminação em OpenGL • Suporte de efeitos atmosféricos como  Fog  Atenuação • Modelo de iluminação é computado apenas nos vértices das superfícies  Cor dos restantes pixels é interpolada linearmente (sombreamento de Gouraud) 21-11-2007 6
  • 7. Fontes de Luz • Para ligar uma fonte: glEnable (source);  source é uma constante cujo nome é GL_LIGHTi, começando com GL_LIGHT0  Quantas? Pelo menos 8, mas para ter certeza: • glGetIntegerv( GL_MAX_LIGHTS, &n ); • Não esquecer de ligar o cálculo de cores pelo modelo de iluminação  glEnable (GL_LIGHTING); 21-11-2007 7
  • 8. Fontes de Luz • Para configurar as propriedades de cada fonte: glLightfv(source, property, value);  Property é uma constante designando: • Coeficientes de cor usados no modelo de iluminação – GL_AMBIENT, GL_DIFFUSE, GL_SPECULAR • Geometria da fonte – GL_POSITION, GL_SPOT_DIRECTION, GL_SPOT_CUTOFF, GL_SPOT_EXPONENT • Coeficientes de atenuação – GL_CONSTANT_ATTENUATION, GL_LINEAR_ATTENUATION, GL_QUADRATIC_ATTENUATION 21-11-2007 8
  • 9. Propriedades de Material • Especificados por glMaterialfv (face, property, value)  Face designa quais os lados da superfície que se quer configurar: • GL_FRONT, GL_BACK, GL_FRONT_AND_BACK  Property designa a propriedade do modelo de iluminação: • GL_AMBIENT, GL_DIFFUSE, GL_SPECULAR, GL_EMISSION, GL_SHININESS 21-11-2007 9
  • 10. Geometria • Além das propriedades da luz e do material, a geometria do objecto é também importante  A posição dos vértices em relação ao olho e à fonte luminosa contribui para o cálculo dos efeitos atmosféricos  A normal é fundamental • Não é calculada automaticamente • Precisa de ser especificada com glNormal () 21-11-2007 10
  • 11. Cálculo do Vector Normal A • Triângulo  Dados três vértices,  n  normalizar(( A  B)  (C  A)) B C • Polígono planar  Uma opção é usar a fórmula do triângulo para quaisquer 3 vértices • Sujeito a erros (vectores pequenos ou quase colineares)  Outra opção é determinar a equação do plano • ax + by + cz + d = 0 • Normal tem coordenadas (a, b, c) 21-11-2007 11
  • 12. Cálculo do Vector Normal • Polígono planar (cont.)  Coeficientes a, b, c da equação do plano são proporcionais às áreas do polígono projectado nos planos yz, zx e xy 1 y (xi+1, yi+1) AreaXYi  ( yi  yi 1 )( xi  xi 1 ) 2 c   AreaXYi (xi, yi) 21-11-2007 x 12
  • 13. Cálculo do Vector Normal de Superfícies Implícitas • Normal é dada pelo vector gradiente f ( x, y , z )  0  f / x     n   f / y   f / z    f (x,y,z) = c1 f (x,y,z) = c2 f (x,y,z) = c3 21-11-2007 13
  • 14. Cálculo do Vector Normal de Superfícies Paramétricas • Normal é dada pelo produto vectorial dos  gradientes em relação n f aos parâmetros u e v u f  f x (u , v)  v   P   f y (u , v)   f (u , v)   z   f x / u   f x / v   f f     n    f y / u    f y / v  u v   f z / u   f z / v     21-11-2007 14
  • 15. Componentes do Modelo de Phong • Emissão: contribuição que não depende de fontes de luz (fluorescência) • Ambiente: contribuição que não depende da geometria • Difusa: contribuição correspondente ao espalhamento da reflexão lambertiana (independente da posição do observador) • Especular: contribuição referente ao comportamento de superfícies polidas 21-11-2007 15
  • 16. Componentes do Modelo de Phong Difusa Especular Ambiente 21-11-2007 16
  • 17. Iluminação Ambiente • Componente que modela como uma constante o efeito da reflexão de outros objectos do ambiente • Depende dos coeficientes GL_AMBIENT tanto das fontes luminosas quanto dos materiais • É ainda possível usar luminosidade ambiente não relacionada com fontes luminosas  glLightModelfv (GL_LIGHT_MODEL_AMBIENT, params) • Contribuição é dada por A  I AM A 21-11-2007 17
  • 18. Iluminação Difusa • Iluminação recebida por uma superfície e que é reflectida uniformemente em todas as direcções • Característica de materiais baços ou foscos • Esse tipo de reflexão é também designada por reflexão lambertiana • A luminosidade aparente da superfície não depende do observador, mas apenas do cosseno do ângulo de incidência da luz 21-11-2007 18
  • 19. Iluminação Difusa • Contribuição é dada por L N D  I D M D cos   I D M D ( ) LN N  L 21-11-2007 19
  • 20. Iluminação Especular • Simula a reflexão à maneira de um espelho (objectos altamente polidos) • Depende da posição do observador, objecto e fonte de luz • Num espelho perfeito, a reflexão dá-se em ângulos iguais  Observador só veria a reflexão de uma fonte pontual se estivesse na direção certa • No modelo de Phong simulam-se reflectores imperfeitos, assumindo que luz é reflectida segundo um cone cujo eixo passa pelo observador 21-11-2007 20
  • 21. Iluminação Especular • Contribuição é dada por S  I S M S cos n   I S M S ( R  E ) n N R    L E 21-11-2007 21
  • 22. Coeficiente de Especularidade • Indica quão polida é a superfície  Espelho ideal tem coeficiente de especularidade infinito  Na prática, usam-se valores entre 5 e 100 21-11-2007 22
  • 23. Cálculo do vector da luz reflectida R  Ln  Lp  ( N  L) N  ( L  Ln )  2( N  L) N  L N –Lp Lp R Ln L 21-11-2007 23
  • 24. Componente Especular em OpenGL • Utiliza o ângulo entre a normal e o vector halfway S  I S M S cos n   I S M S ( H  N ) n H N  R L E EL H  normalizar    2   normalizar E  L  21-11-2007 24
  • 25. Atenuação • Para fontes de luz posicionais (w = 1), é possível definir um factor de atenuação que leva em conta a distância d entre a fonte de luz e o objecto iluminado • Coeficientes são definidos pela função glLight () • Por omissão não há atenuação (c0=1, c1=c2=0) 1 aten  c0  c1d  c2 d 2 21-11-2007 25
  • 26. Juntando tudo • A atenuação só é aplicada sobre as componentes difusa e especular • A fórmula que calcula a cor de um vértice devida a uma fonte luminosa i é dada por Ci  Ai  aten Di  Si  • No final, a cor é dada pela contribuição da iluminação ambiente (parcela não associada com fontes de luz) somada à luz emitida e às contribuições Ci C  Amb  E   Ai  aten Di  Si  21-11-2007 26