Computação Gráfica Modelos de Iluminação Mauricio Cunha Escarpinati [email protected]...

55
Computação Gráfica Modelos de Iluminação Mauricio Cunha Escarpinati [email protected] Computação Gráfica

Transcript of Computação Gráfica Modelos de Iluminação Mauricio Cunha Escarpinati [email protected]...

Page 1: Computação Gráfica Modelos de Iluminação Mauricio Cunha Escarpinati escarpinati@gmail.com Computação Gráfica.

Computação GráficaModelos de Iluminação

Mauricio Cunha [email protected]

Computação Gráfica

Page 2: Computação Gráfica Modelos de Iluminação Mauricio Cunha Escarpinati escarpinati@gmail.com Computação Gráfica.

Apresentação

• Objetivos da aula:

•Apresentar conceitos de iluminação 3D;

•Tipos de Fontes de Luz;

•Modelos de Reflexão;

Page 3: Computação Gráfica Modelos de Iluminação Mauricio Cunha Escarpinati escarpinati@gmail.com Computação Gráfica.

Apresentação

• Justificativa;

• Dependência que a qualidade de imagens graficamente geradas tem em relação às técnicas de iluminação utilizadas;

• Variação de técnicas e algoritmos existentes para este fim;

Page 4: Computação Gráfica Modelos de Iluminação Mauricio Cunha Escarpinati escarpinati@gmail.com Computação Gráfica.

Apresentação

• Abordagem;

•Será apresentado o problema e algumas possíveis soluções na forma de técnicas e algoritmos;

•Apresentação de exemplos utilizados por bibliotecas gráficas na manipulação de tais algoritmos;

•Apresentação prática de um sistema desenvolvido para exemplificar os efeitos das componentes de reflexão no processo de iluminação;

Page 5: Computação Gráfica Modelos de Iluminação Mauricio Cunha Escarpinati escarpinati@gmail.com Computação Gráfica.

IluminaçãoIntrodução

• O grande objetivo da CG é criar cenas virtuais com o máximo de realismo possível;

• Para isso busca-se modelos e algoritmos computacionais que descrevam matematicamente objetos e cenas da melhor forma possível;

• Dessa forma as técnicas de iluminação buscam uma forma de computar a irradiação de um raio de luz;

• É importante lembrar que o raio de luz é composto por ondas eletromagnéticas;

Page 6: Computação Gráfica Modelos de Iluminação Mauricio Cunha Escarpinati escarpinati@gmail.com Computação Gráfica.

Superfície especular (Polida)Todos os fótons são perfeitamente refletidos

Fonte de Luz

Fótons de luz

IluminaçãoInterações do fóton de luz na natureza

N

θ θ

Page 7: Computação Gráfica Modelos de Iluminação Mauricio Cunha Escarpinati escarpinati@gmail.com Computação Gráfica.

Fonte de Luz

Fótons de luz

Superfícies irregulares (rugosa)a reflexão também se torna irregular

IluminaçãoInterações do fóton de luz na natureza

Page 8: Computação Gráfica Modelos de Iluminação Mauricio Cunha Escarpinati escarpinati@gmail.com Computação Gráfica.

Fonte de Luz

Fótons de luz

Parte dos fótons são convertidos em calor

IluminaçãoInterações do fóton de luz na natureza

Page 9: Computação Gráfica Modelos de Iluminação Mauricio Cunha Escarpinati escarpinati@gmail.com Computação Gráfica.

Fonte de Luz

Fótons de luz

Objeto Translúcido

(Transparente)

IluminaçãoInterações do fóton de luz na natureza

Page 10: Computação Gráfica Modelos de Iluminação Mauricio Cunha Escarpinati escarpinati@gmail.com Computação Gráfica.

Iluminação de Objetos 3DObjetivos

• Criar modelos Computacionais para:• Simular Fontes de Luz e as devidas

emissões de fótons;

• Dispersão desses fótons na superfície;

• Recepção nas câmeras;

• Características desejadas:• Concisão;

• Eficiência;

• Precisão;

Page 11: Computação Gráfica Modelos de Iluminação Mauricio Cunha Escarpinati escarpinati@gmail.com Computação Gráfica.

Iluminação de Objetos 3DModelando as Fontes de Luz

• IL(x,y,z,θ,Φ,ג)

• Descreve a intensidade de energia;

• Saindo de uma Fonte de Luz;

• Chegando em (x,y,z);

• Da direção (θ,Φ);

• Com comprimento de onda ג;

• Modelos Empíricos;• Idealmente deveriam medir a energia

irradiada em todas as situações;

•Muita Informação;

•Difícil na prática

Page 12: Computação Gráfica Modelos de Iluminação Mauricio Cunha Escarpinati escarpinati@gmail.com Computação Gráfica.

Iluminação de Objetos 3DModelando as Fontes de Luz

• Pensando num modelo digital pode-se assumir que:

• Todo objeto da cena é potencialmente uma fonte de luz (emissores e refletores);

• Emissores podem ser entendidos como lâmpadas, sol, estrelas, vela, fogo.. E são caracterizados por suas intensidades ou freqüências;

• Refletores são quaisquer objetos da cena e são caracterizados pelas propriedades de suas superfícies como cor, material, polimento, etc.

• Os tipos emissores podem ser classificados como ambiente, natural ou artificial;

Page 13: Computação Gráfica Modelos de Iluminação Mauricio Cunha Escarpinati escarpinati@gmail.com Computação Gráfica.

Iluminação de Objetos 3DFontes de luz Ambiente

Page 14: Computação Gráfica Modelos de Iluminação Mauricio Cunha Escarpinati escarpinati@gmail.com Computação Gráfica.

Iluminação de Objetos 3DFontes de luz Ambiente

• Reflexões indiretas são computacionalmente caras de se calcular (especialmente em tempo real), por isso usa-se um truque: fonte de luz ambiente

•Não tem características espaciais ou direcionais: ilumina todas as superfícies igualmente;

•A quantidade de luz refletida depende das propriedades das superfícies;

Page 15: Computação Gráfica Modelos de Iluminação Mauricio Cunha Escarpinati escarpinati@gmail.com Computação Gráfica.

Iluminação de Objetos 3DFontes de luz Ambiente

•Para cada comprimento de onda amostrado (R, G, B), a luz ambiente refletida em uma superfície depende de:

• Propriedade da superfície, kambiente;

• Intensidade, Iambiente da fonte de luz ambiente (constante para todos os pontos em todas as superfícies)

Irefletida = kambienteIambiente

Page 16: Computação Gráfica Modelos de Iluminação Mauricio Cunha Escarpinati escarpinati@gmail.com Computação Gráfica.

Iluminação de Objetos 3DFontes de luz Ambiente

• Objeto exibido a frente de um fundo preto onde foi utilizada somente a luz ambiente no processo de renderização

Page 17: Computação Gráfica Modelos de Iluminação Mauricio Cunha Escarpinati escarpinati@gmail.com Computação Gráfica.

• Este tipo de fonte é usualmente empregada na elaboração de luz ambiente;

• Algumas simplificações devem ser assumidas:

• A direção de iluminação é constante para todas as superfícies da cena;

• Todos os raios de luz são paralelos• Como se a fonte estivesse no infinito;• Ideal para representação para luz do Sol;

• Inclinação dos raios em relação a superfície são importantes;• Posição do observador não é importante;

Iluminação de Objetos 3DFontes de luz Direcionais

Page 18: Computação Gráfica Modelos de Iluminação Mauricio Cunha Escarpinati escarpinati@gmail.com Computação Gráfica.

Iluminação de Objetos 3DFontes de luz Direcionais

Comparando:

Page 19: Computação Gráfica Modelos de Iluminação Mauricio Cunha Escarpinati escarpinati@gmail.com Computação Gráfica.

Iluminação de Objetos 3DFontes de Luz Pontuais

Page 20: Computação Gráfica Modelos de Iluminação Mauricio Cunha Escarpinati escarpinati@gmail.com Computação Gráfica.

Iluminação de Objetos 3DFontes de Luz Spot Lights

Page 21: Computação Gráfica Modelos de Iluminação Mauricio Cunha Escarpinati escarpinati@gmail.com Computação Gráfica.

Iluminação de Objetos 3DReflexões

• Em Computação Gráfica, a manipulação da luz assume um papel fundamental no aspecto realístico da apresentação;

• A maioria dos objetos ao nosso redor não emite luz própria, pelo contrário, refletem a radiação nele incidentes;

• Neste sentido, vários são os algoritmos computacionais que procuram estimar as taxas e tipos de reflexão de cada objeto no processo de iluminação de uma cena.

Page 22: Computação Gráfica Modelos de Iluminação Mauricio Cunha Escarpinati escarpinati@gmail.com Computação Gráfica.

Iluminação de Objetos 3DModelo Geral da Reflexão na Superfície

• Pensando Matematicamente no processo de reflexão podemos definir:

• Rs(xL, yL, xR, yR, ג)

• Descreve a quantidade de energia incidente;

• Chegando da direção (xL, yL);

• Saindo na direção (xR, yR);

• Com comprimento de onda ג;

• Modelos Empíricos:

• Idealmente deveriam medir energia radiante para “todas” as combinações de ângulos de incidência;

• Muita informação• Difícil na prática

Page 23: Computação Gráfica Modelos de Iluminação Mauricio Cunha Escarpinati escarpinati@gmail.com Computação Gráfica.

Iluminação de Objetos 3DReflexão Difusa

• Reflexão difusa ideal• Um refletor difuso ideal, microscopicamente, é superfície extremamente rugosa

• Devido a essas variações microscópicas, raio de luz recebido pela superfície se reflete igualmente em qualquer direção do “hemisfério”

Page 24: Computação Gráfica Modelos de Iluminação Mauricio Cunha Escarpinati escarpinati@gmail.com Computação Gráfica.

Iluminação de Objetos 3DReflexão Difusa

dL=dAcos(90-θ)

Page 25: Computação Gráfica Modelos de Iluminação Mauricio Cunha Escarpinati escarpinati@gmail.com Computação Gráfica.

Iluminação de Objetos 3DReflexão Difusa

• Superfícies difusas ideais refletem de acordo com a lei do co-seno de Lambert;

• A energia refletida de uma fonte de luz em uma dada direção por um pequeno pedaço de uma superfície é proporcional ao co-seno do ângulo entre aquela direção e a normal da superfície naquele pequeno pedaço

• São as chamadas: superfícies lambertianas;

• Intensidade refletida depende da orientação da superfície em relação à fonte de luz, mas independe da direção de visualização do observador:

Page 26: Computação Gráfica Modelos de Iluminação Mauricio Cunha Escarpinati escarpinati@gmail.com Computação Gráfica.

Iluminação de Objetos 3DComputando a Reflexão Difusa

• O ângulo entre a normal da superfície e o raio incidente é chamado de ângulo de incidência:

Idifusa = kd I0 cosθ

Onde Idifusa é a intensidade de luz refletida difusamente, I0 é a intensidade de luz inicial recebida, kd representa a refletividade de luz difusa da superfície e θ o ângulo que a direção do feixe de luz faz com a superfície.

Na prática cosθ pode ser determinado pelo produto interno de l e n

Idifusa = kd I0 (n ● l)

Page 27: Computação Gráfica Modelos de Iluminação Mauricio Cunha Escarpinati escarpinati@gmail.com Computação Gráfica.

Iluminação de Objetos 3DReflexão Difusa

Page 28: Computação Gráfica Modelos de Iluminação Mauricio Cunha Escarpinati escarpinati@gmail.com Computação Gráfica.

Iluminação de Objetos 3DExemplo de Incidência Difusa

Uma Esfera Lambertiana Vista com Diferentes ângulos de Incidência

Page 29: Computação Gráfica Modelos de Iluminação Mauricio Cunha Escarpinati escarpinati@gmail.com Computação Gráfica.

• Superfícies brilhantes exibem reflexão especular (Metal Polido);

• O “brilho” da luz sobre superfície especular gera “manchas” brilhantes sobre o objeto: specular highlight;

• Onde esses highlights aparecem é em função da posição do observador;

• Reflexão especular depende da visão do observador.

Iluminação de Objetos 3DReflexão Especular

Page 30: Computação Gráfica Modelos de Iluminação Mauricio Cunha Escarpinati escarpinati@gmail.com Computação Gráfica.

Iluminação de Objetos 3DFísica da Reflexão

• No nível microscópico a superfície especular deve ser muito lisa;

• Raios de luz tendem a “bater” e refletir como espelhos;

• Reflexão segue a Lei de Snell;• O raio incidente e o refletido estão no mesmo plano que o vetor normal à

superfície;

• O ângulo que o raio refletido forma com a normal à superfície é igual ao ângulo formado pelo raio incidente e a normal;

Page 31: Computação Gráfica Modelos de Iluminação Mauricio Cunha Escarpinati escarpinati@gmail.com Computação Gráfica.

Iluminação de Objetos 3DAlgoritmos que Tratam a Reflexão Especular

• Segundo a literatura especializada, não são muitos os algoritmos que calculam a contribuição especular na formação de uma cena;

• Dentre os principais estão:

• O algoritmo de Phong que é baseado em um modelo de fonte de luz Pontual;

• Cook-Torrance, que considera a energia incidente sobre o objeto;

Page 32: Computação Gráfica Modelos de Iluminação Mauricio Cunha Escarpinati escarpinati@gmail.com Computação Gráfica.

Iluminação de Objetos 3DAlgoritmo de Phong

• Apontado por muitos como o mais utilizado para cálculo de luz especular;

• Esse modelo considera a relação especular como uma função do ângulo que a direção de reflexão faz com o observador;

• É dado em função da cor apenas da fonte de luz;

Page 33: Computação Gráfica Modelos de Iluminação Mauricio Cunha Escarpinati escarpinati@gmail.com Computação Gráfica.

Iluminação de Objetos 3DAlgoritmo de Phong

Iespecular = ks I0 (cosΦ)n

Onde Iespecular é a intensidade de luz refletida especularmente; I0 é a intensidade de luz inicial recebida, ks representa a refletividade de luz especular da superfície, Φ o ângulo entre o reflexo ideal e o vetor de visualização do observador e n é uma constante que determina a especularidade da superfície

Na prática cos Φ pode ser determinado pelo produto interno de v e r

Iespecular = ks I0 (v ● r)n

Page 34: Computação Gráfica Modelos de Iluminação Mauricio Cunha Escarpinati escarpinati@gmail.com Computação Gráfica.

Iluminação de Objetos 3DReflexão Especular

Page 35: Computação Gráfica Modelos de Iluminação Mauricio Cunha Escarpinati escarpinati@gmail.com Computação Gráfica.

Iluminação de Objetos 3DReflexão Especular (Modelo de Blinn)

• Blinn adota uma variação em relação ao método proposto por Phong;

• Segundo o modelo proposto por Blin, a relação de especularidade é dada em função do ângulo entre a fonte de luz e um ângulo que determina a bissetriz da direção da fonte de luz e o observador;

Iespecular = ks I0 (n ● h)n

vl

vlh

Page 36: Computação Gráfica Modelos de Iluminação Mauricio Cunha Escarpinati escarpinati@gmail.com Computação Gráfica.

Iluminação de Objetos 3DComparação

Page 37: Computação Gráfica Modelos de Iluminação Mauricio Cunha Escarpinati escarpinati@gmail.com Computação Gráfica.

Iluminação de Objetos 3DCook-Torrance

• Distingui-se do Modelo de Phong pelos seguintes fatores:• É baseado na taxa de energia incidente ao invés da intensidade;

• Os termos especulares são baseados no modelo físico micro facetado;

• As cores mudam de acordo com o brilho;

• É baseado nas leis de Fresnel e mede as características do material;

• Leis de Fresnel:• Luz incidente normal reflete cor da superfície;

• Luz incidente tangencial reflete cor da luz;

• Reflexão aumenta à medida que a incidência se torna tangencial;

Page 38: Computação Gráfica Modelos de Iluminação Mauricio Cunha Escarpinati escarpinati@gmail.com Computação Gráfica.

Iluminação de Objetos 3DCook-Torrance

• Componente especular

• F – termo de Fresnel

• D – termo de Roughness

• G – termo geométrico

))((

1

VNLN

FDGI s

Page 39: Computação Gráfica Modelos de Iluminação Mauricio Cunha Escarpinati escarpinati@gmail.com Computação Gráfica.

Iluminação de Objetos 3DCook-Torrance (Termo de Fresnel)

2

2

2

2

2

2

2

2

)1)((

)1)((1

)(

)(

2

1

)(tan

)(tan

)(sin

)(sin

2

1

cgc

cgc

cg

cgF

tr

tr

tr

tr

• Coeficientes:r – ângulo de reflexão

t – ângulo de transmissão (refração do material)

c = cos r = LH = VHg2 =2 + c2 – 1

• Indíce de refraxão complexo;• O Algoritmo Completo de Fresnel, implementado em Pascal

pode ser obtido em 3D Computer Graphics de Alan Watt (pp 120-122);

Page 40: Computação Gráfica Modelos de Iluminação Mauricio Cunha Escarpinati escarpinati@gmail.com Computação Gráfica.

Iluminação de Objetos 3DCook-Torrance (Rugosidade)

• Modelo estatístio de reflectância da luz

• Centrado na direção de reflexão R

• Modelo Blinn

• Função Beckmann and Spizzichino (1963)

• m também pode ser considerada, segundo Alan Watt (97) como sendo a média quadradica das inclinações das microfaces da superfície;

)/( 22 mceD

2

2tan

42 cos

1 mem

D

m

Page 41: Computação Gráfica Modelos de Iluminação Mauricio Cunha Escarpinati escarpinati@gmail.com Computação Gráfica.

Iluminação de Objetos 3DCook-Torrance (Termo Geométrico)

• Shadowing (sombreando)– Luz incidente não alcança o material

• Masking (mascarando)– Luz refletida não alcança o observador

• A Literatura indica utilizar o menor coeficienteGm = min (Gs, Gm)

)(

))((2

HV

VNHNGm

)(

))((2

HV

LNHNGm

Page 42: Computação Gráfica Modelos de Iluminação Mauricio Cunha Escarpinati escarpinati@gmail.com Computação Gráfica.

Iluminação de Objetos 3DComposição dos Métodos

• É muito comum na literatura encontrar as funções de reflexo já compostas;

• Por Exemplo:

• No caso do Método de Phong é comum encontrar a função já com as componentes de de reflexão ambiente e difusa incorporadas ao método;

Page 43: Computação Gráfica Modelos de Iluminação Mauricio Cunha Escarpinati escarpinati@gmail.com Computação Gráfica.

Iluminação de Objetos 3DVárias Fontes de Luz

Page 44: Computação Gráfica Modelos de Iluminação Mauricio Cunha Escarpinati escarpinati@gmail.com Computação Gráfica.

Iluminação de Objetos 3D

Exemplos práticos;

A partir de agora serão apresentados alguns exemplos de como os conceitos até aqui

apresentados são tratados por uma biblioteca gráfica amplamente utilizada, o

OpenGL

Page 45: Computação Gráfica Modelos de Iluminação Mauricio Cunha Escarpinati escarpinati@gmail.com Computação Gráfica.

Iluminação de Objetos 3DExemplos Práticos (OpenGL)

• Controle para:

• Adição e habilitação de fontes de luz na cena;

• Controle de componentes ambiente, difusa e especular;

• Posicionamento e fontes de luz;

• Controle de atenuação de fontes de luz;

• Especificação de vetores normais;

• Especificação de propriedades materiais dos objetos;

Page 46: Computação Gráfica Modelos de Iluminação Mauricio Cunha Escarpinati escarpinati@gmail.com Computação Gráfica.

Iluminação de Objetos 3DExemplos Práticos (OpenGL)

• Habilitando e desabilitando a Iluminação:• GLvoid glEnable(GL_LIGHTING);

• GLvoid glDisable(GL_LIGHTING);

• Fontes de luz tem propriedades como cor, posição e direção, que são especificadas através e funções;

• void glLight{if}(Glenum light, Glenum paname, TYPE param);

• void glLight{if}(Glenum light, Glenum paname, TYPE *param);

• Onde:• light pode ser GL_LIGHT0, GL_LIGHT1 até GL_LIGHT7;

• A propriedade sendo definida é dada por pname;

• Param indica o valor da propriedade pname (ou um vetor de valores)

Page 47: Computação Gráfica Modelos de Iluminação Mauricio Cunha Escarpinati escarpinati@gmail.com Computação Gráfica.

Iluminação de Objetos 3DExemplos Práticos (OpenGL)

Page 48: Computação Gráfica Modelos de Iluminação Mauricio Cunha Escarpinati escarpinati@gmail.com Computação Gráfica.

Iluminação de Objetos 3DExemplos Práticos (OpenGL)

Page 49: Computação Gráfica Modelos de Iluminação Mauricio Cunha Escarpinati escarpinati@gmail.com Computação Gráfica.

• Habilitando Múltiplas fontes de luz:• GLvoid glEnable(GL_LIGHTING <n>);

• GLvoid glDisable(GL_LIGHTING <n>);

• <n> é um número entre 0 e maxLights;

• maxLights do sistema pode ser obtida com:• glGetIntegerv(GL_MAX_LIGHTS, &maxLights)

Iluminação de Objetos 3DExemplos Práticos (OpenGL)

Page 50: Computação Gráfica Modelos de Iluminação Mauricio Cunha Escarpinati escarpinati@gmail.com Computação Gráfica.

Iluminação de Objetos 3DExemplos Práticos (OpenGL)

• Parâmetros GL_POSITION de glLightfv():• Coordenadas homogêneas (x,y,z,w);

• w=0, luz direcional, no infinito;

• w=1, luz localizada na cena;

• Valor default é (0.0, 0.0, 1.0, 0.0) (i.e, da direção do eixo z no infinito)

Page 51: Computação Gráfica Modelos de Iluminação Mauricio Cunha Escarpinati escarpinati@gmail.com Computação Gráfica.

Iluminação de Objetos 3DExemplos Práticos (OpenGL)

• Simulação de atenuação da fonte de luz de acordo com a distância da mesma em relação aos objetos:

• Constante• Não existe atenuação;

• Linear;• A intensidade diminui linearmente com a distância;

• Quadrática;• A intensidade diminui quadraticamente com a distância;

Page 52: Computação Gráfica Modelos de Iluminação Mauricio Cunha Escarpinati escarpinati@gmail.com Computação Gráfica.

Iluminação de Objetos 3DExemplos Práticos (OpenGL)

glLightfv(GL_LIGHT0, GL_Position, light_posicion);

glLightfv(GL_LIGHT0, GL_CONSTANT_ATENENUATION, 2.0);

glLightfv(GL_LIGHT0, GL_LINEAR_ATENENUATION, 0.0);

glLightfv(GL_LIGHT0, GL_QUADRATIC_ATENENUATION, 0.0);

Pode-se combinar os três tipos de atenuação com valores diferentes de zero para cada um dos atributos;

Page 53: Computação Gráfica Modelos de Iluminação Mauricio Cunha Escarpinati escarpinati@gmail.com Computação Gráfica.

Iluminação de Objetos 3DExemplos Práticos (OpenGL)

•Reflexão Difusa e Ambiente;

•Reflexão Especular;

•Emissão;

•Alterações nos materiais;

Page 54: Computação Gráfica Modelos de Iluminação Mauricio Cunha Escarpinati escarpinati@gmail.com Computação Gráfica.

Iluminação de Objetos 3DExemplos Práticos (OpenGL)

•OpenGL permite controlar:• Reflexão difusa;

• Reflexão ambiente;

• Reflexão especular ou brilhos (highlights);

• Brilho do objeto;

• Emissividade do objeto (luz emitida por ele);

Page 55: Computação Gráfica Modelos de Iluminação Mauricio Cunha Escarpinati escarpinati@gmail.com Computação Gráfica.

Iluminação de Objetos 3DAvaliação

•Os alunos deverão desenvolver os seguintes temas com trabalho sobre o tema:

• Pesquisar se os outros algoritmos estudados, como o caso do método de Blinn e Cook-Torrance são disponibilizados em bibliotecas gráficas, como o próprio OpenGL, DirectX, VTK, etc.;

• Implementar um modelo de iluminação simples que envolva componentes de reflexão ambiente, difusa e especular a partir de uma fonte de luz direcional;