CG 11 Iluminacao

Embed Size (px)

DESCRIPTION

Iluminação na computação gráfica

Citation preview

  • 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