Computação Gráfica Iluminação Prof. Rodrigo Rocha [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 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 são: O fatores f t ã • 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 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 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 é: • Iambb = Ka Ia Iamb – 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 ao cosseno do ângulo 4 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 p “specular” p ideal é o espelho, p p 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 C t t 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) objeto 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 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) 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 7 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 I em cada pixel no qual o polígono visível é projetado • 4. “pinta” o pixel de acordo com a cor determinada RGB R,G,B 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 o ase em po pontos tos no o interior te o da face ace ca calculadas cu adas po por interpolação te po ação linear ea das normais o as 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 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 d shading de h di (d (do menor ao maior). i ) E Explique li o por quê ê di 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