1
Computação Gráfica
Iluminação
Prof. Rodrigo [email protected]
Introdução Determinação da cor envolve
• Além das propriedades da superfícies
Cor, textura, material, ...
• Incidência da luz
Shading Model
• Modelo de sombreamento
Determina como o modelo de iluminação será aplicado e quais seus argumentos
Ilumination Model
• Para produção de imagens realísticas, devemos simular a aparência da superfície sobre várias condições de iluminação
• Dado o ponto de incidência da luz, quantificamos a luz refletida
2
Modelos de Iluminação
Efeitos de luz são descritos como modelos que consideram a interação de fontes de luz nas superfícies de objetos
Os fatores são:
• Origem da luzPosição
Aspecto/Eletromagnetísmo
Forma
• SuperfíciePosição
Propriedades reflectivas
Posição de superfícies próximas
• Parâmetros da câmeraPosição
Sensibilidade do sensor
Fontes de Luz
A-) Pontual
• Todos os raios de luz saem do mesmo ponto
B-) Paralela
• Raios de Luz paralelos
• Ponto infinito
C-) Distribuída
• Todos os raios vêem de um ponto finito no espaço
3
Modelos de iluminação
Método simples e rápido para calcular a intensidade na superfície
Os cálculos são baseados em propriedades ópticas da superfície e as condições de iluminação (objetos reflectivos, sombras, etc.)
Fontes de luz são pontos de origem
Luz ambiente
Assumimos que existem várias luzes não direcionas no ambiente (luz de fundo)
O montante de luz incidindo em cada objeto é constante para todas as superfícies em todas as direções
Modelo simples, menos realístico
Padrão no OpenGL
4
Luz Ambiente
A intensidade da luz refletida Iamb para cada ponto da superfícies é:
• Iamb = Ka IaIamb – intensidade da luz ambiente
Ka E [0,1] – Superfície reflete a luz
• As variáveis são em função das cores RGB
Exemplo
Reflexão Difusa
Superfícies ásperas ou granulado, como argila, solo, tecido
• A superfície parece
igualmente brilhante
de todos as direções
• O brilho em cada ponto é proporcional aocosseno do ângulo
5
Reflexão Difusa
A instensidade da replexão Idiff em um ponto é
• Idiff = Kd Ipcos(teta) = Kd Ip(N-L)
• Onde Ip – Intensidade da luz em um ponto
Kd E [0,1] – A reflexão difusa na superfície
N – Normal
L – A direção da luz
Exemplos
Reflexão Especular
Modelos com superfícies brilhantes (como metal, plástico, etc.)
A intensidade da reflexão muda confome o ângulo de reflexão
Uma superfície “specular” ideal é o espelho, pois reflete a luz em uma só direção R
Produz pontos brilhantes
Fórmula:
Exemplo:
6
Modelos de Shading (tonalização)
Método para aplicar um modelo de iluminação a um objeto (em geral, modelado como uma malha poligonal)
O método de shading é integrado a um algoritmo scanline (scanline graphics)
• – o processo de tonalização é feito para cada face visível dos modelos que compõem a cena, para determinar a cor (tom, intensidade) associada a cada ponto visível da face
• – seria muito custoso calcular o modelo de iluminação em cada ponto de cada face visível para determinar a cor
4 modelos:
• Constant
• Faceted
• Gouraud
• Phong – ordem crescente de qualidade de imagem e de custo computacional
Fonte: http://www.lcad.icmc.usp.br/~rosane/CG/Rendering.pdf
Constant Shading
calcula uma única cor (tom, or shade) para
todo o objeto (todas as faces)
não há variações de tonalidade ao longo do objeto, i.e., na verdade, não há shading.
Fonte: http://www.lcad.icmc.usp.br/~rosane/CG/Rendering.pdf
7
Flat Shading modelo mais simples
• calcula uma cor (tonalidade) para cada polígono (face)
• Toda a face associada a uma cor única, calculada aplicando o modelo de iluminação
• vetor L no modelo : vai de qualquer ponto no polígono à posição da fonte de luz em geral, usa apenas os termos ambiente e de reflexão difusa do modelo de iluminação
• Simples e rápido, mas arestas entre faces são acentuadas
• Em OpenGL: glShadeMode(GL_FLAT)
Fonte: http://www.lcad.icmc.usp.br/~rosane/CG/Rendering.pdf
Gouraud shading
Interpola cores: aplica o modelo de iluminação nos vértices de cada face poligonal para obter a cor (intensidade) em cada vértice da face
interpola os valores obtidos nos vértices (IR,IG,IB) para determinar a cor nos pontos interiores aos polígonos
interpolação bi-linear das intensidades ao longo das linhas de varredura
Fonte: http://www.lcad.icmc.usp.br/~rosane/CG/Rendering.pdf
8
Gouraud Shading
Algoritmo
• 1. determina a normal N em cada vértice do polígono
• 2. usa N e L para calcular a intensidade I em cada vértice do polígono (usando o modelo de iluminação)
• 3. usa interpolação bi-linear para calcular a intensidade IR,G,B em cada pixel no qual o polígono visível é projetado
• 4. “pinta” o pixel de acordo com a cor determinada
Fonte: http://www.lcad.icmc.usp.br/~rosane/CG/Rendering.pdf
Phong Shading
Calcula as normais nos vértices, interpola para determinar a normal em cada ponto da face
• Normais em pontos ao longo de uma aresta calculadas por interpolação linear dos valores nos vértices (e precisam ser re-normalizadas)
• Normais em pontos no interior da face calculadas por interpolação linear das normais nas arestas (e renormalizadas)
Aplica o modelo de iluminação de Phong em cada ponto visível do polígono para determinar I
Melhor queGouraud para capturar highlights especulares
Custo computacional muito maior
Fonte: http://www.lcad.icmc.usp.br/~rosane/CG/Rendering.pdf
9
Exercícios
1-) Qual a importância da iluminação em computação gráfica?
2-) Quais os problemas da iluminação do tipo ambiente?
3-) Quais as diferenças entre reflexão difusa e especular, cite exemplo de tipos de materiais que sofrem estas reflexões.
4-) Explique os modelos de iluminação Phong e Cook-Torrance?
5-) Em relação ao custo computacional, coloque em ordem os modelos de shading (do menor ao maior). Explique o por quê disso?
6-) Implemente em OpenGL um modelo de iluminação e shading.
7-) Como posso aplicar os modelos de iluminação e shading o Blender 3D.
Bibliografia
Livro texto (Programa do Livro texto - PLT)• FORBELLONE, A. Lógica de Programação. São Paulo: Pearson,
2005“
Complementar• CORMEN, Thomas H. Algoritmos: teoria e prática. 1.ed. Rio de
Janeiro: CAMPUS, 2002.
• MANZANO, J. A. N. G. Algoritmos: lógica para desenvolvimento de programação. 1.ed. São Paulo: Erica, 1996.
• ASTÊNCIO, A .F.G.; CAMPOS, E.D.. Fundamentos da Programação de Computadores. 1.ed. São Paulo: PRENTICE HALL BRASIL, 2002.
Top Related