Computação Gráfica Iluminação Prof. Rodrigo Rocha Prof.rodrigorocha@yahoo.com 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 1
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 luz Posição Aspecto/Eletromagnetísmo Forma Superfície Posição Propriedades reflectivas Posição de superfícies próximas Parâmetros da câmera Posição Sensibilidade do sensor A-) Pontual Todos os raios de luz saem do mesmo ponto B-) Paralela Raios de Luz paralelos Ponto infinito C-) Distribuída Fontes de Luz Todos os raios vêem de um ponto finito no espaço 2
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 3
Luz Ambiente A intensidade da luz refletida Iamb para cada ponto da superfícies é: I amb = K a I a I amb intensidade da luz ambiente K a E [0,1] Superfície reflete a luz As variáveis são em função das cores RGB Exemplo Superfícies ásperas ou granulado, como argila, solo, tecido A superfície parece igualmente brilhante de todos as direções Reflexão Difusa O brilho em cada ponto é proporcional ao cosseno do ângulo 4
Reflexão Difusa A instensidade da replexão Idiff em um ponto é I diff = K d I p cos(teta) = K d I p (N-L) Onde I p Intensidade da luz em um ponto K d 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: 5
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 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. 6
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) 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 7
Algoritmo Gouraud Shading 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 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 8
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. 9