Top Banner

of 24

CG 11 Iluminacao

Jan 07, 2016

Download

Documents

Iluminação na computação gráfica
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
  • Iluminao

    Fonte: Material do Prof. Claudio Esperana

    e do Prof. Paulo Roma Cavalcanti

    Mrcio Bueno

    {cgtarde,cgnoite}@marciobueno.com)

  • Iluminao

    Estudo de como a luz

    interage com objetos de

    uma cena

    Emisso

    Transmisso

    Absoro

    Refrao

    Reflexo

    2 Computao Grfica - Mrcio Bueno

  • Modelo Fsico

    Luz modelada como radiao eletromagntica

    Leva em conta todas as interaes (todos os caminhos da

    luz)

    Intratvel computacionalmente

    3 Computao Grfica - Mrcio Bueno

  • Modelos de Iluminao

    Tipicamente, a luz amostrada em um nmero discreto

    de primrias (comprimentos de onda)

    Modelos locais (primeira ordem)

    Apenas caminhos do tipo fonte luminosa superfcie olhoso tratados

    Simples

    Ex.: OpenGL

    Modelos globais

    Muitos caminhos (ray tracing, radiosidade)

    Complexos

    4 Computao Grfica - Mrcio Bueno

  • Modelo de Booknight

    Considera apenas a reflexo difusa.

    Iluminao recebida em um ponto de uma superfcie refletida

    uniformemente em todas as direes

    Contribuio proveniente da iluminao recebida de

    forma indireta modelada como uma constante.

    Baseia-se apenas na reflexo lambertiana.

    5 Computao Grfica - Mrcio Bueno

  • Iluminao Difusa

    Caracterstica de materiais foscos.

    Lei de Lambert (fluxo de energia):

    a luminosidade aparente da superfcie no depende da

    posio do observador, mas apenas do cosseno do ngulo

    entre a normal e a direo da luz

    6 Computao Grfica - Mrcio Bueno

  • Modelo Difuso

    Intensidade em um ponto p dada por:

    )(cosNL

    NLkIkIkIkII ddaaddaap

    N

    Lp

    7 Computao Grfica - Mrcio Bueno

  • Iluminao Especular

    Simula a reflexo maneira de um espelho (objetos altamente polidos).

    Depende da disposio entre observador, objeto e fonte de luz.

    Em um espelho perfeito, a reflexo se d em ngulos iguais

    Observador s enxergaria a reflexo de uma fonte pontual se estivesse na direo certa.

    No modelo de Phong, simulam-se refletores imperfeitos assumindo que luz refletida segundo um cone cujo eixo passa pelo observador.

    8 Computao Grfica - Mrcio Bueno

  • Modelo de Phong

    Contribuio especular dada por

    n

    ee

    n

    eepER

    ERkIkII )(cos

    N

    L

    R

    Ep

    9 Computao Grfica - Mrcio Bueno

  • Coeficiente de Especularidade

    Indica quo polida a superfcie

    Espelho ideal tem especularidade infinita

    Na prtica, usam-se valores entre 5 e 100

    10 Computao Grfica - Mrcio Bueno

  • Componentes do Modelo de Phong

    Emisso: contribuio que no depende de fontes de luz

    (fluorescncia)

    Ambiente: contribuio que no depende da geometria

    Difusa: contribuio correspondente ao espalhamento da

    reflexo lambertiana (independe da posio do

    observador)

    Especular: contribuio referente ao comportamento de

    superfcies polidas

    11 Computao Grfica - Mrcio Bueno

  • Componentes do Modelo de Phong

    n

    eeddaap NHkINLkIkII ,,

    Difusa Especular Ambiente12

  • Iluminao em OpenGL

    Assume fontes pontuais de luz

    Onidirecionais

    Spot

    Interaes de luz com superfcie modeladas em componentes (modelo de Phong):

    Emisso

    Ambiente

    Difusa

    Especular

    13 Computao Grfica - Mrcio Bueno

  • Iluminao em OpenGL

    Suporte a efeitos atmosfricos como:

    Fog

    Atenuao

    Modelo de iluminao computado apenas nos vrtices

    dos polgonos.

    Suporta Gouraud shading

    Cor dos pixels no interior dos polgonos obtida por

    interpolao linear.

    14 Computao Grfica - Mrcio Bueno

  • Fontes de Luz

    Para ligar uma fonte: glEnable (source);

    source uma constante cujo nome GL_LIGHTi, comeando

    com GL_LIGHT0

    Quantas? Pelo menos 8, mas para ter certeza:

    glGetIntegerv( GL_MAX_LIGHTS, &n );

    No esquecer de ligar o clculo de cores pelo modelo de

    iluminao

    glEnable (GL_LIGHTING);

    15 Computao Grfica - Mrcio Bueno

  • 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 iluminao: GL_AMBIENT, GL_DIFFUSE, GL_SPECULAR

    Geometria da fonte

    GL_POSITION, GL_SPOT_DIRECTION, GL_SPOT_CUTOFF, GL_SPOT_EXPONENT

    Coeficientes de atenuao GL_CONSTANT_ATTENUATION, GL_LINEAR_ATTENUATION,

    GL_QUADRATIC_ATTENUATION

    16 Computao Grfica - Mrcio Bueno

  • Propriedades de Material

    Especificados por

    glMaterialfv (face, property, value)

    Face designa quais lados da superfcie se quer configurar:

    GL_FRONT, GL_BACK, GL_FRONT_AND_BACK

    Property designa a propriedade do modelo de iluminao:

    GL_AMBIENT, GL_DIFFUSE, GL_SPECULAR,

    GL_EMISSION, GL_SHININESS

    17 Computao Grfica - Mrcio Bueno

  • Geometria

    Alm das propriedades da luz e do material, a geometria

    do objeto tambm importante

    A posio dos vrtices com relao ao olho e fonte luminosa

    contribui no clculo dos efeitos atmosfricos

    A normal fundamental

    No calculada automaticamente

    Precisa ser especificada com glNormal ()

    18 Computao Grfica - Mrcio Bueno

  • Computando o Vetor Normal

    Tringulo

    Dados trs vrtices,

    Polgono planar

    Uma opo usar a frmula do tringulo para quaisquer 3 vrtices Sujeito a erros (vetores pequenos ou quase colineares)

    Outra opo determinar a equao do plano ax + by + cz + d = 0

    Normal tem coordenadas (a, b, c)

    ))()((normalizar ACBAn

    A

    CB

    19 Computao Grfica - Mrcio Bueno

  • Calculando o Vetor Normal de Superfcies

    Implcitas

    Normal dada pelo vetor

    gradiente

    zf

    yf

    xf

    n

    zyxf

    /

    /

    /

    0),,(

    f (x,y,z) = c2

    f (x,y,z) = c1

    f (x,y,z) = c320 Computao Grfica - Mrcio Bueno

  • Calculando o Vetor Normal de

    Superfcies Paramtricas

    u

    f

    Normal dada pelo

    produto vetorial dos

    gradientes em relao aos

    parmetros u e v

    vf

    vf

    vf

    uf

    uf

    uf

    v

    f

    u

    fn

    vuf

    vuf

    vuf

    P

    z

    y

    x

    z

    y

    x

    z

    y

    x

    /

    /

    /

    /

    /

    /

    ),(

    ),(

    ),(

    v

    f

    n

    21 Computao Grfica - Mrcio Bueno

  • Iluminao Ambiente

    Componente que modela como uma constante o efeito

    da reflexo de outros objetos do ambiente

    Depende dos coeficientes GL_AMBIENT tanto das

    fontes luminosas quanto dos materiais

    ainda possvel usar luminosidade ambiente no

    relacionada com fontes luminosas glLightMaterialfv (GL_LIGHT_MODEL_AMBIENT,

    params)

    Contribuio dada por

    aakIA

    22 Computao Grfica - Mrcio Bueno

  • Atenuao

    Para fontes de luz posicionais (w = 1), possvel definir um fator de atenuao que leva em conta a distncia d entre a fonte de luz e o objeto sendo iluminado

    Coeficientes so definidos pela funo glLight ()

    Por default, no h atenuao (c0=1, c1=c2=0)

    2

    210

    1

    dcdccaten

    23 Computao Grfica - Mrcio Bueno

  • Juntando tudo

    A atenuao s aplicada sobre s componentes difusa e

    especular.

    A frmula que calcula a cor de um vrtice devida a uma fonte

    luminosa i dada por:

    iiii SDatenAC

    Portanto, no total, a cor dada pela contribuio da iluminao ambiente (parcela no associada com fontes de luz) somada luz emitida e s contribuies Ci

    iii SDatenAEAmbC

    24 Computao Grfica - Mrcio Bueno