Computação Gráfica II Iluminação e Textura Prof. Rodrigo Rocha prof.rodrigorocha@yahoo.com http://www.bolinhabolinha.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 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 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 d 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 Iemcada 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
1-) Qual a importância da iluminação em computação gráfica? Exercícios 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. Informações Bibliografia GOMES, J. e VELHO, L. Computação Gráfica: Volume 1. Série Computação e Matemática, SBM/IMPA, 1998. VELHO, L. e GOMES, J. Sistemas Gráficos 3D. Serie Computação e Matemática, SBM/IMPA, 2001. Complementar FOLEY, J. D. et al. Computer Graphics Principles and Practice. Addison-Wesley, 1990. HEARN D., BAKER, M.P., Computer Graphics: C Version, 2nd edition, Prentice Hall WATT, A. 3D Computer Graphics. Addison-Wesley, 1993. 9