iluminação e sombreamento guilherme amaral avelino [email protected]

28
Iluminação e Sombreamento Guilherme Amaral Avelino [email protected]

Upload: internet

Post on 19-Apr-2015

108 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Iluminação e Sombreamento Guilherme Amaral Avelino gavelino@gmail.com

Iluminação e Sombreamento

Guilherme Amaral [email protected]

Page 2: Iluminação e Sombreamento Guilherme Amaral Avelino gavelino@gmail.com

Iluminação e Sombreamento Natureza da Luz Emissores

◦ Fontes de luz◦ Refletores

Sombreamento

Guilherme Amaral [email protected]

Page 3: Iluminação e Sombreamento Guilherme Amaral Avelino gavelino@gmail.com

Um modelo de iluminação em CG define a natureza da luz emanada por uma fonte e sua interação com todos os objetos em cena

Sombreamento está diretamente ligado a manipulação da luz dentro de um modelo de CG

Guilherme Amaral [email protected]

Page 4: Iluminação e Sombreamento Guilherme Amaral Avelino gavelino@gmail.com

Ondas eletromagnéticas capazes de serem captadas pela visão humana

Guilherme Amaral [email protected]

VermelhoLaranjaAmareloVerdeAzulAnilVioleta

Page 5: Iluminação e Sombreamento Guilherme Amaral Avelino gavelino@gmail.com

Conceitos importantes◦ A luz é uma energia eletromagnética◦ A intensidade de uma luz emitida diminui em

relação inversa ao quadrado da distância da fonte de luz

◦ Energia não se perde, se transforma Absorção da luz branca por uma superfície preta Calor: outra forma de energia com diferente

comprimento de onda

Guilherme Amaral [email protected]

Page 6: Iluminação e Sombreamento Guilherme Amaral Avelino gavelino@gmail.com

Quanto a emissão de luz os objetos podem ser classificados como:◦ Fontes de luz própria

Lâmpadas, lanternas, fogo, sol, etc. Caracterizadas pela intensidade, freqüência e

direção◦ Refletores

Objetos coloridos Propriedades de sua superfície

Guilherme Amaral [email protected]

Page 7: Iluminação e Sombreamento Guilherme Amaral Avelino gavelino@gmail.com

Classificadas em:◦ Ambiental◦ Direcional◦ Pontual◦ Spot

Guilherme Amaral [email protected]

Page 8: Iluminação e Sombreamento Guilherme Amaral Avelino gavelino@gmail.com

Ambiental◦ Ilumina igualmente todas as superfícies do

ambiente◦ Posição da câmera não é importante

Guilherme Amaral [email protected]

Page 9: Iluminação e Sombreamento Guilherme Amaral Avelino gavelino@gmail.com

Fonte Direcional◦ Raios paralelos e com mesma intensidade◦ Simula os raios solares

Guilherme Amaral [email protected]

Page 10: Iluminação e Sombreamento Guilherme Amaral Avelino gavelino@gmail.com

Fonte Pontual◦ Emite luz em todas as direções◦ Atinge os objetos com diferentes direções e

intensidades

Guilherme Amaral [email protected]

Page 11: Iluminação e Sombreamento Guilherme Amaral Avelino gavelino@gmail.com

Fonte Spot◦ Emite luz em forma de um cone a partir de um ponto◦ A intensidade cai a medida que se distancia da fonte

Guilherme Amaral [email protected]

Page 12: Iluminação e Sombreamento Guilherme Amaral Avelino gavelino@gmail.com

Objetos Refletores◦ Difusos◦ Especulares

Guilherme Amaral [email protected]

Page 13: Iluminação e Sombreamento Guilherme Amaral Avelino gavelino@gmail.com

Refletor Difuso◦ A luz é refletida em diferentes direções◦ Reflexão em objeto com saliências ou foscos◦ Objetos foscos apresentam reflexão quase Lambertiana

Guilherme Amaral [email protected]

Page 14: Iluminação e Sombreamento Guilherme Amaral Avelino gavelino@gmail.com

Refletor Especular◦ O ângulo de reflexão é igual ao de incidência◦ Superfícies polidas, lustradas ou brilhantes ◦ Gera brilho com a cor da luz, não com a do objeto

Guilherme Amaral [email protected]

Page 15: Iluminação e Sombreamento Guilherme Amaral Avelino gavelino@gmail.com

Guilherme Amaral [email protected]

Page 16: Iluminação e Sombreamento Guilherme Amaral Avelino gavelino@gmail.com

Simula o efeito de diferentes intensidades de iluminação sobre um objeto

Também conhecido como tonalização Utiliza as características das fontes de luz e

dos objetos para o cálculo da tonalização Inviabilidade da modelagem de todos os

conceitos físicos envolvidos

Guilherme Amaral [email protected]

Page 17: Iluminação e Sombreamento Guilherme Amaral Avelino gavelino@gmail.com

Sombreamento Constante(Flat)◦ O cálculo da reflexão da luz é feito apenas uma

vez por superfície◦ Solução mais simples e rápida◦ Resulta em uma aparência facetada

Guilherme Amaral [email protected]

Page 18: Iluminação e Sombreamento Guilherme Amaral Avelino gavelino@gmail.com

Sombreamento de Gouraud◦ O cálculo da reflexão da luz é feita em cada vértice e

cada face é resultado do gradiente entre os vértices◦ Interpolação bi-linear para cálculo dos demais pontos◦ Sombreamento mais suave, mais demorada

Guilherme Amaral [email protected]

Page 19: Iluminação e Sombreamento Guilherme Amaral Avelino gavelino@gmail.com

Sombreamento de Phong◦ Adiciona o cálculo dos vetores especulares ao

modelo de Gouraud◦ Produz efeitos mais realistas e é ainda mais

demorado

Guilherme Amaral [email protected]

Page 20: Iluminação e Sombreamento Guilherme Amaral Avelino gavelino@gmail.com

Fornece suporte para até 8 fontes de luz Implementa os modelos de tonalização Flat e Gouraud◦ glShadeModel(GLenum mode);

GL_FLAT GL_SMOOTH

A luz é dividida em quatro componentes que juntas formam o modelo de iluminação◦ Ambiente – luz que vem de todas as direções◦ Difusa – luz direcional que é ao atingir uma superfície é

refletida em todas as direções◦ Especular - luz direcional que é ao atingir uma superfície

tende a refletir em uma única outra direção◦ Emissiva – simula a luz que se origina em um objeto

Não é interfirida nem interfere no modelo de iluminação

Guilherme Amaral [email protected]

Page 21: Iluminação e Sombreamento Guilherme Amaral Avelino gavelino@gmail.com

A iluminação é resultado das propriedades especificadas para as fontes de luz e das propriedades dos materiais que constituem os objetos◦ Fontes de Luz

void glLightfv(GLenum light, GLenum pname, TYPE *param);

◦ Objetos void glMaterialfv(GLenum face, GLenum pname,

TYPE *param);

Guilherme Amaral [email protected]

Page 22: Iluminação e Sombreamento Guilherme Amaral Avelino gavelino@gmail.com

void glLightfv(GLenum light, GLenum pname, TYPE *param); ligth – fonte de luz desejada. GL_LIGHT0 a GL_LIGHT7 pname – característica da luz a ser especificada

param – vetor Glfloat com os valor a ser especificado

Guilherme Amaral [email protected]

Constante Valor default Significado

GL_AMBIENT (0.0,0.0,0.0,1.0) Cor ambiente da luz

GL_DIFFUSE (1.0,1.0,1.0,1.0) Cor difusa da luz

GL_SPECULAR (1.0,1.0,1.0,1.0) Cor especular da luz

GL_POSITION (0.0,0.0,1.0,0.0) Posição da luz

GL_SPOT_DIRECTION (0.0,0.0,-1.0) Direção da luz spot

GL_SPOTCUTOFF 180.0 Ângulo de corta da luz spot

Page 23: Iluminação e Sombreamento Guilherme Amaral Avelino gavelino@gmail.com

Guilherme Amaral [email protected]

void glMaterialfv(GLenum face, GLenum pname, TYPE *param); face – quais faces do objeto estão sendo especificadas.

GL_FRONT, GL_BACK ou GL_FRONT_AND_BACK pname – propriedade do material a ser especificada

param – vetor Glfloat com os valor a ser especificado

Constante Valor default Significado

GL_AMBIENT (0.2,0.2,0.2,1.0) Cor ambiente do material

GL_DIFFUSE (0.8,0.8,0.8,1.0) Cor difusa do material

GL_SPECULAR_AND_DIFFUSE

Cor ambiente e especular do material

GL_SPECULAR (0.0,0.0,0.0,1.0) Cor especular do material

GL_SHININESS 0.0 Expoente especular

GL_EMISSION (0.0,0.0,0.0,1.0) Cor emissiva do material

Page 24: Iluminação e Sombreamento Guilherme Amaral Avelino gavelino@gmail.com

void Inicializa (void){

// Habilita a definição da cor do material a partir da cor correnteglEnable(GL_COLOR_MATERIAL);//Habilita o uso de iluminaçãoglEnable(GL_LIGHTING); // Habilita a luz de número 0glEnable(GL_LIGHT0);// Habilita o depth-bufferingglEnable(GL_DEPTH_TEST);

// Habilita o modelo de colorização de GouraudglShadeModel(GL_SMOOTH);...

}

Guilherme Amaral [email protected]

Page 25: Iluminação e Sombreamento Guilherme Amaral Avelino gavelino@gmail.com

void DefineIluminacao (void){

GLfloat luzAmbiente[4]={0.2,0.2,0.2,1.0}; GLfloat luzDifusa[4]={0.7,0.7,0.7,1.0}; // "cor" GLfloat luzEspecular[4]={1.0, 1.0, 1.0, 1.0};// "brilho" GLfloat posicaoLuz[4]={0.0, 50.0, 50.0, 1.0};

// Capacidade de brilho do materialGLfloat especularidade[4]={1.0,1.0,1.0,1.0};

‘ GLint especMaterial = 60;

Guilherme Amaral [email protected]

Page 26: Iluminação e Sombreamento Guilherme Amaral Avelino gavelino@gmail.com

// Define a refletância do material glMaterialfv(GL_FRONT,GL_SPECULAR, especularidade);// Define a concentração do brilhoglMateriali(GL_FRONT,GL_SHININESS,especMaterial);

// Ativa o uso da luz ambiente glLightModelfv(GL_LIGHT_MODEL_AMBIENT, luzAmbiente);

// Define os parâmetros da luz de número 0glLightfv(GL_LIGHT0, GL_AMBIENT, luzAmbiente); glLightfv(GL_LIGHT0, GL_DIFFUSE, luzDifusa );glLightfv(GL_LIGHT0, GL_SPECULAR, luzEspecular );glLightfv(GL_LIGHT0, GL_POSITION, posicaoLuz );

}

Guilherme Amaral [email protected]

Page 27: Iluminação e Sombreamento Guilherme Amaral Avelino gavelino@gmail.com

void Desenha(void){

glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);

DefineIluminacao();

glColor3f(0.0f, 1.0f, 0.0f);

glutSolidSphere(50,20,20);

glFlush();}

Guilherme Amaral [email protected]

Page 28: Iluminação e Sombreamento Guilherme Amaral Avelino gavelino@gmail.com

Guilherme Amaral [email protected]