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

Post on 16-Apr-2015

111 views 0 download

Transcript of Computação Gráfica Modelos de Iluminação Mauricio Cunha Escarpinati escarpinati@gmail.com...

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

Mauricio Cunha Escarpinatiescarpinati@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;

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;

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;

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;

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

θ θ

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

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

Fonte de Luz

Fótons de luz

Objeto Translúcido

(Transparente)

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

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;

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

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;

Iluminação de Objetos 3DFontes de luz Ambiente

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;

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

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

• 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

Iluminação de Objetos 3DFontes de luz Direcionais

Comparando:

Iluminação de Objetos 3DFontes de Luz Pontuais

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

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.

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

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”

Iluminação de Objetos 3DReflexão Difusa

dL=dAcos(90-θ)

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:

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)

Iluminação de Objetos 3DReflexão Difusa

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

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

• 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

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;

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;

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;

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

Iluminação de Objetos 3DReflexão Especular

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

Iluminação de Objetos 3DComparação

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;

Iluminação de Objetos 3DCook-Torrance

• Componente especular

• F – termo de Fresnel

• D – termo de Roughness

• G – termo geométrico

))((

1

VNLN

FDGI s

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);

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

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

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;

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

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

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;

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)

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

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

• 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)

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)

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;

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;

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

•Reflexão Difusa e Ambiente;

•Reflexão Especular;

•Emissão;

•Alterações nos materiais;

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);

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;