66
Computação Gráfica I CRAb – Grupo de Computação Gráfica Departamento de Computação UFC

Computação Gráfica I CRAb – Grupo de Computação Gráfica Departamento de Computação UFC

Embed Size (px)

Citation preview

Page 1: Computação Gráfica I CRAb – Grupo de Computação Gráfica Departamento de Computação UFC

Computação Gráfica I

CRAb – Grupo de Computação Gráfica

Departamento de ComputaçãoUFC

Page 2: Computação Gráfica I CRAb – Grupo de Computação Gráfica Departamento de Computação UFC

2

Objetivos

• Estudar – equipamentos, técnicas de

programação e conceitos matemáticos

• Para– representação, manipulação e

projeção de objetos bi- e tridimensionais

– aplicar a problemas específicos

Page 3: Computação Gráfica I CRAb – Grupo de Computação Gráfica Departamento de Computação UFC

3

Sumário do Curso

• Sistemas Gráficos e Modelos• Programação Gráfica• Input e Interação• Objetos Geométricos e

Transformações• Visualização• Pintura• Técnicas Discretas• Implementação de um Renderizador

Page 4: Computação Gráfica I CRAb – Grupo de Computação Gráfica Departamento de Computação UFC

Pintura (Shading)

Page 5: Computação Gráfica I CRAb – Grupo de Computação Gráfica Departamento de Computação UFC

5

6.1 Luz e Matéria

• Superfície pode ser

– Emissora de luz

• Superfície de uma lâmpada

– Refletora de luz

– Emissora e refletora de luz

• Ferro em brasa

Page 6: Computação Gráfica I CRAb – Grupo de Computação Gráfica Departamento de Computação UFC

6

6.1 Luz e Matéria

• Luz chegando a uma superfície é resultado de múltiplas interações

Page 7: Computação Gráfica I CRAb – Grupo de Computação Gráfica Departamento de Computação UFC

7

6.1 Luz e Matéria

• Equação de renderização

– i(p, p’): intensidade sai de p’ chega a p• (p,p’): parte emitida diretamente por p’• i(p’, p”): intensidade de p” chegando a p’• (p, p’, p”): função de reflexão de p’

– (p, p’): função de oclusão• = 0 se objeto opaco estiver no caminho• = 1/r2 fator de atenuação da distância

"

")",'()",',()',()',()',(P

PpppppppppppS

dSii

Page 8: Computação Gráfica I CRAb – Grupo de Computação Gráfica Departamento de Computação UFC

8

6.1 Luz e Matéria

• Classificação da interação luz/material– Superfícies especulares

– Superfícies difusas

– Superfícies translúcidas

Page 9: Computação Gráfica I CRAb – Grupo de Computação Gráfica Departamento de Computação UFC

9

6.2 Fonte Luminosa (A25)

6.2.0 Introdução– Função de iluminação: I(x, y, z, , , )

•x, y, z: posição da fonte• (, ): direção de emissão• : comprimento de onda emitido

– Contribuição total da fonte para iluminação da superfície

Page 10: Computação Gráfica I CRAb – Grupo de Computação Gráfica Departamento de Computação UFC

10

6.2 Fonte Luminosa (A25)

– Tipos de fontes

•Luz ambiente

•Luz pontual

•Luz spot

•Luz distante

Page 11: Computação Gráfica I CRAb – Grupo de Computação Gráfica Departamento de Computação UFC

11

6.2 Fonte Luminosa (A25)

6.2.1 Fontes de cores– Modelo do sistema visual humano

• Modelo tricromático (R, G, B)

– Utilizar a função de luminância

b

g

r

I

I

I

I

Page 12: Computação Gráfica I CRAb – Grupo de Computação Gráfica Departamento de Computação UFC

12

6.2 Fonte Luminosa (A25)

6.2.2 Luz ambiente– Representa a iluminação uniforme

do ambiente • Cozinhas, salas de aula, dias nublados

– Utilizar a intensidade

ab

ag

ar

a

I

I

I

I

Page 13: Computação Gráfica I CRAb – Grupo de Computação Gráfica Departamento de Computação UFC

13

6.2 Fonte Luminosa

6.2.3 Fonte pontual– Emite luz uniformemente em todas

as direções– Tem Intensidade e localização

02

0

0

0

0

0

0

1),(

I

I

I

pIpp

ppi

p

p

p

pI

b

g

r

Page 14: Computação Gráfica I CRAb – Grupo de Computação Gráfica Departamento de Computação UFC

14

6.2 Fonte Luminosa

6.2.3 Fonte pontual ...– Gera sombras duras– Fonte de tamanho finito gera regiões

de penumbra e umbra

Page 15: Computação Gráfica I CRAb – Grupo de Computação Gráfica Departamento de Computação UFC

15

6.2 Fonte Luminosa

6.2.3 Fonte pontual ...– Atenuar efeito de iluminação com a

distância• Utilizar fator

1/(a + b*d + c*d2)

Page 16: Computação Gráfica I CRAb – Grupo de Computação Gráfica Departamento de Computação UFC

16

6.2 Fonte Luminosa (A25)

6.2.4 Spotlights– Uniforme: Não há diferença de

intensidade na área iluminada• Exceto pela distância do ponto iluminado

à fonte (d1 e d2)

Page 17: Computação Gráfica I CRAb – Grupo de Computação Gráfica Departamento de Computação UFC

17

6.2 Fonte Luminosa

6.2.4 Spotlights– Não-uniforme: Intensidade concentra

na direção l e decai com o afastamento angular dessa direção• I = (cos )e = (l . s) e

l s

Page 18: Computação Gráfica I CRAb – Grupo de Computação Gráfica Departamento de Computação UFC

18

6.2 Fonte Luminosa (A25)

6.2.5 Fontes luminosas distantes– Importa apenas a direção de

iluminação e intensidade de iluminação D

D

D

D

DI

b

g

r

I

I

I

Page 19: Computação Gráfica I CRAb – Grupo de Computação Gráfica Departamento de Computação UFC

19

6.3 O Modelo de Reflexão de Phong

6.3.0 Introdução– Modelo simplificado

• Eficiência computacional• Bom realismo sob

– Condições de iluminação variadas– Materiais diferentes

• Usa 4 vetores unitários– n: normal à superfície– l: do ponto iluminado à fonte– r: reflexão de l (Euclides)– v: do ponto iluminado ao observador

Page 20: Computação Gráfica I CRAb – Grupo de Computação Gráfica Departamento de Computação UFC

20

6.3 O Modelo de Reflexão de Phong

• Suporta os 3 tipos de interação luz/material– Ambiente– Difusa– Especular

• Cada fonte i contém as 3 intensidades

ibsigsirs

ibdigdird

ibaigaira

i

LLL

LLL

LLL

L

Page 21: Computação Gráfica I CRAb – Grupo de Computação Gráfica Departamento de Computação UFC

21

6.3 O Modelo de Reflexão de Phong

• As reflectividades do material j para cada um dos 3 tipos de interação– Representam quanto de uma dada

componente é refletida

jbsjgsjrs

jbdjgdjrd

jbajgajra

j

RRR

RRR

RRR

R

Page 22: Computação Gráfica I CRAb – Grupo de Computação Gráfica Departamento de Computação UFC

22

6.3 O Modelo de Reflexão de Phong

• Considerando o operador matricial @ tal que

– C = A @ B Cij = Aij Bij (não há

somatório)

– I = Ia + Id + Is = La@Ra + Ld@Rd + Ls@Rs

Page 23: Computação Gráfica I CRAb – Grupo de Computação Gráfica Departamento de Computação UFC

23

6.3 O Modelo de Reflexão de Phong

6.3.1 Reflexão ambiente– Ia = Ra La = ka La

– 0 ka 1

– ka = (kar, kag, kab)

kar= 1.0kag= 0.0kab= 0.0

Lar= 1.0Lag= 1.0Lab= 1.0

Iar= 1.0Iag= 0.0Iab= 0.0

Page 24: Computação Gráfica I CRAb – Grupo de Computação Gráfica Departamento de Computação UFC

24

6.3 O Modelo de Reflexão de Phong

6.3.2 Reflexão difusa– Superfícies Lambertianas

Superfície rugosa

Page 25: Computação Gráfica I CRAb – Grupo de Computação Gráfica Departamento de Computação UFC

25

6.3 O Modelo de Reflexão de Phong

– Lei de Lambert• Rd cos

cosφ = l ⋅n

Id = kd l ⋅n( )Ld

Id =kd

a+ bpq0 + c pq0

2 l ⋅n( )Ld

q0

q0

p p

Page 26: Computação Gráfica I CRAb – Grupo de Computação Gráfica Departamento de Computação UFC

26

6.3 O Modelo de Reflexão de Phong

6.3.3 Reflexão especular– Intensidade na direção do

observador• Decai quando cresce:

Is = ks Ls (cos )m

Is = ks Ls (r · v)m r

v

l

Page 27: Computação Gráfica I CRAb – Grupo de Computação Gráfica Departamento de Computação UFC

27

6.3 O Modelo de Reflexão de Phong

6.3.4 Modelo completo

aa

N

iisisidid

ii

aia

fontes

cbaLkvrLknlLk

pqpqLkI @@@

1@

1

m

2

= m

Page 28: Computação Gráfica I CRAb – Grupo de Computação Gráfica Departamento de Computação UFC

28

6.4 Cálculo dos Vetores

6.4.1 Vetores normais– Dada a equação do plano

222

222222222,,

unitário):( 1 onde

0...

CBA

Dd

CBA

Cn

CBA

Bn

CBA

An

dznynxn

DzCyBxA

zyx

zyx

nn

Page 29: Computação Gráfica I CRAb – Grupo de Computação Gráfica Departamento de Computação UFC

29

6.4 Cálculo dos Vetores

– Dados 3 pontos em um plano

0201 ppppn

p0

p2

p1

n

Observação: O vetor obtido precisa ser normalizado

Page 30: Computação Gráfica I CRAb – Grupo de Computação Gráfica Departamento de Computação UFC

30

6.4 Cálculo dos Vetores

– Dada a equação implícita da superfície

Observação: O vetor obtido pelo gradiente da função precisa ser normalizado

)(2

)(2

)(2

0)()()(),,(0),,( 2222

c

c

c

ccc

zz

yy

xx

z

fy

fx

f

f

rzzyyxxzyxf

z

fy

fx

f

f

zyxf

nn

Esfera em (xc,yc,zc)

Page 31: Computação Gráfica I CRAb – Grupo de Computação Gráfica Departamento de Computação UFC

31

6.4 Cálculo dos Vetores

– Dada a equação paramétrica da superfície

vu

v

vufv

vufv

vuf

v

u

vufu

vufu

vuf

uvuf

vuf

vuf

z

y

x

vu

z

y

x

z

y

x

z

y

x

ppn

pp

fp

),(

),(

),(

e ,

),(

),(

),(

),(

),(

),(

),(

Observação: O vetor n precisa ser normalizado

Page 32: Computação Gráfica I CRAb – Grupo de Computação Gráfica Departamento de Computação UFC

32

6.4 Cálculo dos Vetores

– Equação paramétrica da esfera de r=1 centrada na origem• -/2 < u < /2• - < v <

z

y

x

uv

p

pnp

ppn

ppp

)cos(coscos

cos

)cos(

cos

coscos

cos

0

cos

coscos

e ,

cos

coscoscos

cos

2

2

u

usen

vu

vsenu

u

uusen

vu

vsenu

vu

vsenu

vu

vu

vusen

vsenusen

uusen

vu

vsenu

z

y

x

normalizado

Page 33: Computação Gráfica I CRAb – Grupo de Computação Gráfica Departamento de Computação UFC

33

6.4 Cálculo dos Vetores

– Especificação de um vetor normal em OpenGL• GLfloat n[3];• glNormal3f(n[0], n[1], n[2]); // nx, ny, nzou• glNormal3fv(n); // ponteiro para of vetor

n

Page 34: Computação Gráfica I CRAb – Grupo de Computação Gráfica Departamento de Computação UFC

34

6.4 Cálculo dos Vetores

6.4.2 Ângulo de reflexão

l r

n

(l . n)

(l . n)

2(l . n)

r + l = 2 l ⋅n( )( )n⇒

⇒ r = 2 l ⋅n( )( )n− l 7 multiplicações5 adições

Page 35: Computação Gráfica I CRAb – Grupo de Computação Gráfica Departamento de Computação UFC

35

6.4 Cálculo dos Vetores

6.4.3 Uso do vetor h (Halfway)– Usado em vez de r no cálculo da

reflexão especular

vl

vlh

3 multiplicações5 adições1 raiz quadrada3 divisões

l

n h

r

v

Page 36: Computação Gráfica I CRAb – Grupo de Computação Gráfica Departamento de Computação UFC

36

6.4 Cálculo dos Vetores

6.4.3 Uso do vetor h (Halfway)– Só vale a pena se a fonte estiver longe

e o observador estiver longe • h é o mesmo para todo ponto do cenário• r não é o mesmo para todo ponto do cenário

– Se o observador estiver no mesmo plano que contém l e n: 2 = • Utilizando n·h em vez de r·v com o mesmo

expoente m produz um specular hilight menor

• Modificar o expoente m para m’

Page 37: Computação Gráfica I CRAb – Grupo de Computação Gráfica Departamento de Computação UFC

37

6.4 Cálculo dos Vetores

6.4.4 Luz transmitida– Lei de Snell

– Obter t comot = a (-l) + b (-n)t = – a l – b n

||t|| = 1

i meio no luz da velocidade

vácuono luz da velocidade

sen

sen

i

l

t

t

l

ln

-n t

l

t

a

b

Meio l

Meio t

Page 38: Computação Gráfica I CRAb – Grupo de Computação Gráfica Departamento de Computação UFC

38

6.4 Cálculo dos Vetores

nlnlnlt

ln

ln

2

2

2

2

2

2

2

2

2

-11

-11cos

cos-11sen1sen1cos

coscos1cos

sen

sensen1sen

t

l

t

l

t

l

t

lt

lt

ll

t

ltt

t

lttl

t

l

l

ttl

bba

aa

Page 39: Computação Gráfica I CRAb – Grupo de Computação Gráfica Departamento de Computação UFC

39

6.5 Coloração de polígonos

6.5.0 Introdução– Três maneiras de atribuir cor ponto a

ponto • Flat shading• Gouraud shading• Phong shading

– Exemplo: Colorir a malha poligonal

Page 40: Computação Gráfica I CRAb – Grupo de Computação Gráfica Departamento de Computação UFC

40

6.5 Coloração de polígonos

6.5.1 Coloração homogênea:Flat Shading

– Modelo de Phong retorna mesma intensidade para qualquer ponto• v=constante: observador no infinito• l=constante: fonte de luz no infinito• n=constante: polígono plano

– No OpenGL• glShadeModel(GL_FLAT);

Page 41: Computação Gráfica I CRAb – Grupo de Computação Gráfica Departamento de Computação UFC

41

6.5 Coloração de polígonos

– Inibição lateral• Propriedade do sistema visual humano• Percebe pequenas diferenças em

intensidade luminosa• Bordas fictícias são criadas: Mach bands

Page 42: Computação Gráfica I CRAb – Grupo de Computação Gráfica Departamento de Computação UFC

42

6.5 Coloração de polígonos

6.5.2 Coloração por interpolação e de Gouraud

– Intensidade calculada pelo modelo de iluminação de Phong nos vértices do polígono

– Depois de projetados os polígonos• Pontos interiores são coloridos por

interpolação das intensidades dos vértices

– No OpenGL• glShadeModel(GL_SMOOTH);

Page 43: Computação Gráfica I CRAb – Grupo de Computação Gráfica Departamento de Computação UFC

43

6.5 Coloração de polígonos

– Cálculo das normais em um vértice da malha

4321

4321

nnnn

nnnnn

Page 44: Computação Gráfica I CRAb – Grupo de Computação Gráfica Departamento de Computação UFC

44

6.5 Coloração de polígonos

6.5.3 Coloração de Phong– Normais são calculadas nos vértices– Polígono é projetado– Normais nos pontos interiores são

interpoladas a partir das normais nos vértices

– Intensidade é calculada ponto a ponto com as normais interpoladas

Page 45: Computação Gráfica I CRAb – Grupo de Computação Gráfica Departamento de Computação UFC

45

6.5 Coloração de polígonos

– Utilizar interpolação bilinear

DC

BA

nnn

nnn

1,

1

Page 46: Computação Gráfica I CRAb – Grupo de Computação Gráfica Departamento de Computação UFC

46

6.6 Aproximação de uma esfera por subdivisão

recursiva• Processo recursivo

– Construir tetraedro•Quatro faces triangulares ligando 4

vértices em uma superfície esférica

– Calcular ponto central de cada face– Normalizar pontos centrais

•Pontos irão para a superfície esférica

– Criar três novos triângulos ligando vértices do triângulo ao seu ponto central

Page 47: Computação Gráfica I CRAb – Grupo de Computação Gráfica Departamento de Computação UFC

47

6.6 Aproximação de uma esfera por subdivisão

recursiva• Processo recursivo

Código FonteCódigo Fonte Código ExecCódigo Exec

B C

A A

B C

AB

BC

AC

Page 48: Computação Gráfica I CRAb – Grupo de Computação Gráfica Departamento de Computação UFC

48

6.6 Aproximação de uma esfera por subdivisão

recursiva• Processo recursivo

B C

A A

B C

D

Page 49: Computação Gráfica I CRAb – Grupo de Computação Gráfica Departamento de Computação UFC

49

6.7 Fontes Luminosas no OpenGL

• Tipos de fontes– Ambiente– Direcional (localizada no infinito)

• (xd, yd, zd, 0)

– Pontual •Localizada em um ponto próximo: (xp,yp,zp,wp)• Irradia em todas as direções

– Spot•Localizad em um ponto próximo: (xs, ys, zs, ws)•Apontada em uma direção principal•Limitada lateralmente por um cone

Page 50: Computação Gráfica I CRAb – Grupo de Computação Gráfica Departamento de Computação UFC

50

6.7 Fontes Luminosas no OpenGL

• Número de fontes em um programa– Limitado em oito fontes

•GL_LIGHT0•GL_LIGHT1•GL_LIGHT2•…•GL_LIGHT7

Page 51: Computação Gráfica I CRAb – Grupo de Computação Gráfica Departamento de Computação UFC

51

6.7 Fontes Luminosas no OpenGL

• Definir uma fonte de luz (ex: luz 1)– Habilitar iluminação

• glEnable(GL_LIGHTING);

– Especificar os valores das propriedades• GLfloat L1_ambiente[] ={0.3, 0.3, 0.3, 1.0};• GLfloat L1_difusa[] ={1.0, 1.0, 1.0, 1.0};• GLfloat L1_especular[] ={1.0, 1.0, 1.0, 1.0};• GLfoat L1_posicao[] ={-2.0, 2.0, 1.0, 1.0};• GLfloat spot_dir [] ={-1.0, -1.0, 0.0};

– Utilizar os comandos do OpenGL para associar essas propriedades à GL_LIGHT1

Page 52: Computação Gráfica I CRAb – Grupo de Computação Gráfica Departamento de Computação UFC

52

glLightfv(GL_LIGHT1, GL_AMBIENT, L1_ambiente);glLightfv(GL_LIGHT1, GL_DIFFUSE, L1_difusa);glLightfv(GL_LIGHT1, GL_SPECULAR, L1_especular);

glLightfv(GL_LIGHT1, GL_POSITION, L1_posicao);

glLightf (GL_LIGHT1, GL_CONSTANT_ATTENUATION, 1.5);glLightf (GL_LIGHT1, GL_LINEAR_ATTENUATION, 0.5);glLightf (GL_LIGHT1, GL_QUADRATIC_ATTENUATION, 0.2);

glLightf (GL_LIGHT1, GL_SPOT_CUTOFF, 45.0);glLightfv(GL_LIGHT1, GL_SPOT_DIRECTION, spot_dir);glLightf (GL_LIGHT1, GL_SPOT_EXPONENT, 2.0);

glEnable (GL_LIGHT1);

6.7 Fontes Luminosas no OpenGL

Page 53: Computação Gráfica I CRAb – Grupo de Computação Gráfica Departamento de Computação UFC

53

6.7 Fontes Luminosas no OpenGL

• Estabelecer um modelo de iluminação– Três componentes

• Intensidade da iluminação ambiente global

•Considerar o observador próximo ao cenário ou no infinito?

•Cálculo da iluminação deve ser diferente para os dois lados de uma face?

– Usar o comando glLightModel*();

Page 54: Computação Gráfica I CRAb – Grupo de Computação Gráfica Departamento de Computação UFC

54

6.7 Fontes Luminosas no OpenGL

• Estabelecer um modelo de iluminação– Iluminação ambiente global

GLfloat luz_ambiente_global[]={0.2, 0.2, 0.2, 1.0);

glLightModelfv(GL_LIGHT_MODEL_AMBIENT, luz_ambiente_global);

– Observador local ou no infinito glLightModeli(GL_LIGHT_MODEL_LOCAL_VIEWER,

GL_TRUE);Default: GL_FALSE (Observador no infinito)

Page 55: Computação Gráfica I CRAb – Grupo de Computação Gráfica Departamento de Computação UFC

55

6.7 Fontes Luminosas no OpenGL

• Estabelecer um modelo de iluminação– Iluminação em dois lados

glLightModeli(GL_LIGHT_MODEL_TWO_SIDE, GL_TRUE);

Default: GL_FALSE (Somente uma face é iluminada)

Page 56: Computação Gráfica I CRAb – Grupo de Computação Gráfica Departamento de Computação UFC

56

[Default]

6.8 Especificação de Materiais/OpenGL

•Utilizar o comando glMaterial*()void glMaterial{if}[v]( GLenum face, GLenum pname, TYPE param);

face: GL_FRONT, GL_BACK, GL_FRONT_AND_BACK

pname: GL_AMBIENT param: (0.2, 0.2, 0.2,

1.0)GL_DIFFUSE (0.8, 0.8, 0.8, 1.0)GL_AMBIENT_AND_DIFFUSEGL_SPECULAR (0.0, 0.0, 0.0, 1.0)GL_SHININESS 0.0GL_EMISSION (0.0, 0.0, 0.0, 1.0)GL_COLOR_INDEX (0, 1, 1)

Page 57: Computação Gráfica I CRAb – Grupo de Computação Gráfica Departamento de Computação UFC

57

6.8 Especificação de Materiais/OpenGL

•Definir as propriedades do material iglFloat ka_i[]={0.2, 0.2, 0.2, 1.0};glFloat kd_i[]={1.0, 0.8, 0.0, 1.0};glFloat ks_i[]={1.0, 1.0, 1.0, 1.0};

•Utilizar o comando glMaterial*()glMaterialfv(GL_FRONT, GL_AMBIENT, ka_i);glMaterialfv(GL_FRONT, GL_DIFFUSE, kd_i);glMaterialfv(GL_FRONT, GL_SPECULAR, ks_i);glMaterialf (GL_FRONT, GL_SHININESS, 100.0);

Page 58: Computação Gráfica I CRAb – Grupo de Computação Gráfica Departamento de Computação UFC

58

6.8 Especificação de Materiais/OpenGL

•Para superfícies emissoras de luzglFloat emissao[]={0.0, 0.3, 0.3, 1.0};glMaterialfv(GL_FRONT, GL_EMISSION, emissao);

Page 59: Computação Gráfica I CRAb – Grupo de Computação Gráfica Departamento de Computação UFC

59

6.8 Especificação de Materiais/OpenGL

• Aspectos de programação– Toda mudança de material implica em um

grande número de chamadas a glMaterial– Melhor escrever a seguinte função para trocar

o materialvoid materials(materialStruct *materials){

glMaterialfv(GL_FRONT, GL_AMBIENT, materials->ambient);glMaterialfv(GL_FRONT, GL_DIFFUSE, materials->diffuse);glMaterialfv(GL_FRONT, GL_SPECULAR, materials->specular);glMaterialf (GL_FRONT, GL_SHININESS, materials->shininess);

}

Page 60: Computação Gráfica I CRAb – Grupo de Computação Gráfica Departamento de Computação UFC

60

6.8 Especificação de Materiais/OpenGL

• Aspectos de programaçãotypedef struct

{ GLfloat ambient[4];GLfloat diffuse[4];GLfloat specular[4];GLfloat shininess[4];

} materialStruct;

Page 61: Computação Gráfica I CRAb – Grupo de Computação Gráfica Departamento de Computação UFC

61

6.8 Especificação de Materiais/OpenGL

• Aspectos de programação– Bronze e Ouro

materialStruct brassMaterial = { 0.33, 0.22, 0.03, 1.0,0.78, 0.57, 0.11, 1.0,0.99, 0.94, 0.81, 1.0,27.89};

materialStruct goldMaterial = {0.25, 0.20, 0.07, 1.0,0.75, 0.61, 0.23, 1.0,0.63, 0.56, 0.37, 1.0,51.2};

Page 62: Computação Gráfica I CRAb – Grupo de Computação Gráfica Departamento de Computação UFC

62

6.9 Coloração do Modelo da Esfera

• Habilitação de propriedades e testesglEnable (GL_LIGHTING);glEnable (GL_LIGHT0);glEnable (GL_DEPTH_TEST);glPolygonMode(GL_FRONT, GL_FILL);

• Atribuição do material ouro• Definição da fonte de luz• Desenho da esfera

Código FonteCódigo Fonte

Código ExecCódigo Exec

Page 63: Computação Gráfica I CRAb – Grupo de Computação Gráfica Departamento de Computação UFC

63

6.10 Coloração Global

• Modelo de iluminação local– Colore-se cada objeto

independentemente•Fonte de luz + objeto + observador

Iluminação local

Iluminação global

Page 64: Computação Gráfica I CRAb – Grupo de Computação Gráfica Departamento de Computação UFC

64

6.10 Coloração Global

• Modelo de iluminação global– Luz que chega ao olho do observador

é oriunda de múltiplas reflexões e refrações

– Ray-tracing: segue raio caminho inverso

Page 65: Computação Gráfica I CRAb – Grupo de Computação Gráfica Departamento de Computação UFC

65

6.10 Coloração Global

• Modelo de iluminação global– Radiosidade: balanço de energia no

ambiente define a energia em cada superfície

Page 66: Computação Gráfica I CRAb – Grupo de Computação Gráfica Departamento de Computação UFC

Fim do capítulo 6