traçado de raios e modelos de iluminação por marcelo gattass departamento de informática

44
Traçado de Raios e Modelos de Iluminação por Marcelo Gattass Departamento de Informática PUC-Rio

Upload: tallys

Post on 06-Jan-2016

18 views

Category:

Documents


0 download

DESCRIPTION

Traçado de Raios e Modelos de Iluminação por Marcelo Gattass Departamento de Informática. PUC-Rio. Pinturas: produção de imagens. Avercamp, Hendrick (1585-1634). Canaletto (Giovanni Antonio Canal) (1697-1768). Pin-Hole Camera. Câmara escura - Leonardo da Vinci -1545 - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Traçado de Raios e Modelos de Iluminação por Marcelo Gattass Departamento de Informática

Traçado de Raios e

Modelos de Iluminação

por

Marcelo Gattass

Departamento de Informática

PUC-Rio

Page 2: Traçado de Raios e Modelos de Iluminação por Marcelo Gattass Departamento de Informática

Pinturas: produção de imagens

Avercamp, Hendrick (1585-1634).

Page 3: Traçado de Raios e Modelos de Iluminação por Marcelo Gattass Departamento de Informática

Canaletto (Giovanni Antonio Canal) (1697-1768).

Page 4: Traçado de Raios e Modelos de Iluminação por Marcelo Gattass Departamento de Informática

Pin-Hole Camera

Câmara escura - Leonardo da Vinci -1545Luis-Jacques-Mandé Daguerre (1789-1851)

Page 5: Traçado de Raios e Modelos de Iluminação por Marcelo Gattass Departamento de Informática

Modelo de câmera

x

y

z

Iluminação

Objetos

Câmara

Page 6: Traçado de Raios e Modelos de Iluminação por Marcelo Gattass Departamento de Informática

Traçado de raios: raios e objetos implícitos

x

y

z

x = x0 + t (x1 - x0 )y = y0 + t (y1 - y0 )z = z0 + t (z1 - z0 )

(x-xc )2 + (y-yc )2 + (z-zc )2 = R2

-b ± b2 - 4ac2a

t =

Page 7: Traçado de Raios e Modelos de Iluminação por Marcelo Gattass Departamento de Informática

Interseção com a esfera

0

0)(2

)(:

)(:

2

22

2

22

22

ctbta

rCOCOtCODtDD

rDtCODtCO

rCDtO

rCtPEsfera

tDOtPRaio

ii

ii

ii

i

i

OD

ti

Page 8: Traçado de Raios e Modelos de Iluminação por Marcelo Gattass Departamento de Informática

P0

P1

x = x0 + t (x1 - x0 )y = y0 + t (y1 - y0 )z = z0 + t (z1 - z0 )

z

xy

Ax + By + Cz + D = 0

0 1

3

A0

A3

A1

L0 = A0 / AT

L1 = A1 / AT

L2 = A2 / AT

Li [0 ,1 ]

P é interior se e somente se

Raios e objetos descritos pela fronteira

Page 9: Traçado de Raios e Modelos de Iluminação por Marcelo Gattass Departamento de Informática

Interseção com o plano do triângulo

OD

P(ti)

0

0

0

1

1

1

NVONDt

NVDtO

NVPP

i

i

V1

N

ND

NOVti

1

DtOP i

Page 10: Traçado de Raios e Modelos de Iluminação por Marcelo Gattass Departamento de Informática

Ponto no interior de um triângulo

V1

V2

V3

Pi

Pe

a12

a23

a31

)(

)(

)(

3313

2232

1121

VPat

VPat

VPat

N P é interior se t1, t2 e t3 tem o mesmo sentido,ou seja:

0

0

31

21

tt

tt 0

0

31

21

tt

ttou

Page 11: Traçado de Raios e Modelos de Iluminação por Marcelo Gattass Departamento de Informática

Coordenadas baricêntricas

V1

V2

V3

Pi

Pe

a12

a23

a31

2/)(

2/)(

2/)(

3123

2312

1231

VPaA

VPaA

VPaA

NP é interior se L1, L2 e L3 [0..1]

A3

A1A2

321 AAAAT

T

T

T

AAL

AAL

AAL

/

/

/

33

22

11

3

3

3

3

2

2

2

2

1

1

1

1

z

y

x

L

z

y

x

L

z

y

x

L

z

y

x

i

i

i

Mais ainda:

Page 12: Traçado de Raios e Modelos de Iluminação por Marcelo Gattass Departamento de Informática

Coordenadas baricêntricas como interpolantes

V1

V2

V3

Pi

A3

A1A2

1

1

1

L1

L2

L3

1321 LLL

3

3

3

3

2

2

2

2

1

1

1

1

z

y

x

L

z

y

x

L

z

y

x

L

z

y

x

i

i

i

Page 13: Traçado de Raios e Modelos de Iluminação por Marcelo Gattass Departamento de Informática

Interpolação com coordenadas baricêntricas

V1

V2

V3

Pi

A3

A1A2

3

3

3

3

2

2

2

2

1

1

1

1

b

g

r

L

b

g

r

L

b

g

r

L

b

g

r

i

i

i

ou:

C1

C2

C3

U1

U2

U3

3

33

2

22

1

11 v

uL

v

uL

v

uL

v

u

i

i

Page 14: Traçado de Raios e Modelos de Iluminação por Marcelo Gattass Departamento de Informática

Exemplo: uma esfera e duas paredes

z

xy

#SURFACE20. 20. 100. 160. 160. 60.#LIGHT40. 120. 0. 255 255 255#SPHERE0 25.0 0.0 20.0 0.0#BOX1 -80. -50. -50. 50. -45. 50.1 -80. -50. -60. 50. 50. -50.

Page 15: Traçado de Raios e Modelos de Iluminação por Marcelo Gattass Departamento de Informática

Componente de reflexão difusa

NL

N

N

L

L

LN

kl

kl

kl

LN

k

k

k

l

l

l

I

I

I

dbb

dgg

drr

db

dg

dr

b

g

r

b

g

r

I, l, k [0 ,1 ]

Page 16: Traçado de Raios e Modelos de Iluminação por Marcelo Gattass Departamento de Informática

Componente de reflexão especular

NR

V

L

Brilho

n

sbb

sgg

srrn

sb

sg

sr

b

g

r

b

g

r

VR

kl

kl

kl

VR

k

k

k

l

l

l

I

I

I

-1 -0,5 0 0,5 1

n=4n=1

n=8

I, l, k [0 ,1 ]

Page 17: Traçado de Raios e Modelos de Iluminação por Marcelo Gattass Departamento de Informática

Cálculo do vetor R

N

L R1

L’

L’ = L / (L*N)

H

H = N - L’

HR’

R’ = N + H

LNL

NR

)(

12

R = unitário (R’)

Page 18: Traçado de Raios e Modelos de Iluminação por Marcelo Gattass Departamento de Informática

Luz direta sobre um ponto

N

R

V

nsdifluzamb VRkLNkCCC )(

Page 19: Traçado de Raios e Modelos de Iluminação por Marcelo Gattass Departamento de Informática

Modelo de várias luzes

luzes

n

sb

sg

sr

b

g

r

db

dg

dr

b

g

r

ab

ag

ar

b

g

r

VR

k

k

k

l

l

l

LN

k

k

k

l

l

l

I

I

I

I

I

I

ab

ag

ar

I

I

I

Luz Ambiente

Page 20: Traçado de Raios e Modelos de Iluminação por Marcelo Gattass Departamento de Informática

Sombra

A luz não chega a superfíce

Page 21: Traçado de Raios e Modelos de Iluminação por Marcelo Gattass Departamento de Informática

Uma revisão

Page 22: Traçado de Raios e Modelos de Iluminação por Marcelo Gattass Departamento de Informática

Reflexão de outros objetos

N V

Superfície especular

Page 23: Traçado de Raios e Modelos de Iluminação por Marcelo Gattass Departamento de Informática

Transparência

NV

Superfície transparente

=sin

sin

Lei de Snell:

Page 24: Traçado de Raios e Modelos de Iluminação por Marcelo Gattass Departamento de Informática

Iluminação considerando R e T

)(

)(

)(

)1(

)(

)(

)(

TI

TI

TI

o

RI

RI

RI

cVR

k

k

k

l

l

l

LN

k

k

k

l

l

l

I

I

I

I

I

I

b

g

r

b

g

r

rluzes

n

sb

sg

sr

b

g

r

db

dg

dr

b

g

r

ab

ag

ar

b

g

r

transparênciaredução da reflexão

Page 25: Traçado de Raios e Modelos de Iluminação por Marcelo Gattass Departamento de Informática

Traçado de Raios Recursivo

R1

T1

R2

T2

R3

L1

L3

L2

R1

R2

L1

L3L2

T1

T2R3

Page 26: Traçado de Raios e Modelos de Iluminação por Marcelo Gattass Departamento de Informática

Resultado de curso

Alunos de CGI98

Page 27: Traçado de Raios e Modelos de Iluminação por Marcelo Gattass Departamento de Informática

Algoritmo de traçado de raios

rtColor trace ( rtRay ray, int depth){ determine a interseção mais próxima com um objeto if (intercepta objeto) { calcule a normal no ponto de interseção return ( shade ( object, ray, intersection, normal, depth); } return BACKGOUND;}

rtColor trace ( rtRay ray, int depth){ determine a interseção mais próxima com um objeto if (intercepta objeto) { calcule a normal no ponto de interseção return ( shade ( object, ray, intersection, normal, depth); } return BACKGOUND;}

selecione o centro de projeção e uma janela no plano de projeçãofor (cada pixel da tela) { determine o raio ray que vai do centro de projeção ao pixel; pixel = trace ( ray, 1); }}

selecione o centro de projeção e uma janela no plano de projeçãofor (cada pixel da tela) { determine o raio ray que vai do centro de projeção ao pixel; pixel = trace ( ray, 1); }}

Page 28: Traçado de Raios e Modelos de Iluminação por Marcelo Gattass Departamento de Informática

rtColor shade ( rtObject object, rtRay ray, int depth, rtPoint point, rtNormal normal, int depth){ rtColor color, rColor, sColor; rtRay rRay, tRay, sRay; color = termo ambiente;for (cada luz) { sRay = raio para o ponto de luz; if (sRay • normal>0) { calcule quanto de luz é bloqueada por superfícies opacas e transparentes e use para computar as componentes difusa e especular } }

if (depth >= maxDepth) return color;

if (objeto é refletor) { rRay = raio na direção de refleção; rColor = trace( rRay, depth+1); reduza rColor pelo coeficente de refleção especular e some a color; }

if (objeto é transparente) { tRay = raio na direção de refração; if (reflexão total não ocorre} { tColor = trace( tRay, depth+1); reduza tColor pelo coeficente de refração especular e some a color; } }

return color;}

rtColor shade ( rtObject object, rtRay ray, int depth, rtPoint point, rtNormal normal, int depth){ rtColor color, rColor, sColor; rtRay rRay, tRay, sRay; color = termo ambiente;for (cada luz) { sRay = raio para o ponto de luz; if (sRay • normal>0) { calcule quanto de luz é bloqueada por superfícies opacas e transparentes e use para computar as componentes difusa e especular } }

if (depth >= maxDepth) return color;

if (objeto é refletor) { rRay = raio na direção de refleção; rColor = trace( rRay, depth+1); reduza rColor pelo coeficente de refleção especular e some a color; }

if (objeto é transparente) { tRay = raio na direção de refração; if (reflexão total não ocorre} { tColor = trace( tRay, depth+1); reduza tColor pelo coeficente de refração especular e some a color; } }

return color;}

Page 29: Traçado de Raios e Modelos de Iluminação por Marcelo Gattass Departamento de Informática

Tratamento anti-alias

Pixel

•Lance um raio para cada sub-pixel•Faça uma média dos valores obtidos

Sub-Pixels

...

dxdy

dx, dy = variáveis randômicas

Page 30: Traçado de Raios e Modelos de Iluminação por Marcelo Gattass Departamento de Informática

Normal e cor

Pertubar aleatóriamenteas normais dos objetos

N

N’

A cor de um ponto depende de sua posição

num mapa de textura

Page 31: Traçado de Raios e Modelos de Iluminação por Marcelo Gattass Departamento de Informática

Textura na esfera

x

y

z

sinsin

cossin

cos

y

x

z

z

yx

xy

22

tan

/tan

1

1

v

u

)1(

)1(

wuj

hvi

i

j

Page 32: Traçado de Raios e Modelos de Iluminação por Marcelo Gattass Departamento de Informática

Refinamento Progresivo

subdivisão finalsegunda subdivisão

primeira subdivisãoamostragem inicial

pixels sendo visitados pixels já visitados

Page 33: Traçado de Raios e Modelos de Iluminação por Marcelo Gattass Departamento de Informática

Modelo da câmera

Dados: eye, ref, vup (definem o sistema de coordenadas do olho)abertura do campo fixa de 900

eye

ref

vup

Coordenadas dosObjetos eye

ref

45o45o

Vista de cima

Page 34: Traçado de Raios e Modelos de Iluminação por Marcelo Gattass Departamento de Informática

Calcula o sistema - xe ye ze

ref

ze

eye

vup

z0

y0

x0

view

ze = – view / ||view||ze = – view / ||view||

vup

ref

eye

z0

y0

x0

view

dados:eye, ref, vupabertura da câmera

dados:eye, ref, vupabertura da câmera

view =ref-eyeview =ref-eye

Page 35: Traçado de Raios e Modelos de Iluminação por Marcelo Gattass Departamento de Informática

Calcula o sistema - xe ye ze

xe = (vup x ze) / ||vup x ze||xe = (vup x ze) / ||vup x ze||

ref

eye

vup

z0

y0

x0

view

zexe

ye = ze x xeye = ze x xe

ref

eye

vup

z0

y0

x0

view

zexe

ye

eye

vup ze

xe

ye

view

Page 36: Traçado de Raios e Modelos de Iluminação por Marcelo Gattass Departamento de Informática

Canto inferior da janela no plano de projeção

eye

z0

y0

x0

A

zexe

ye

B

C

Pll = eye + A + B + C

Pll = eye - ze - ye - xe

Pll

Se o ângulo de abertura for 900

, d=1 e w = h:A = - xe

B = - ye

C = - xe

Page 37: Traçado de Raios e Modelos de Iluminação por Marcelo Gattass Departamento de Informática

Lançamento de Raios

Pll dx = 2 xe / w

dy = 2 ye / h

Pll dx = 2 xe / w

dy = 2 ye / h P0 P

P0 = Pu + dx/2 + dy/2;for (i=0; i<=w; i++) { P = P0 ; for (j=0; j<=h; j++) { P = P + dx; trace o raio (eye, P); } P0 = P0 + dy;}

Page 38: Traçado de Raios e Modelos de Iluminação por Marcelo Gattass Departamento de Informática

Modelo de Lente e Obturador

tela (pixels) lente e obturador cena

Page 39: Traçado de Raios e Modelos de Iluminação por Marcelo Gattass Departamento de Informática

Focalização

imagem lente focalização

Luz de vários objetos chegam no mesmo ponto confusão

di df

d df

Page 40: Traçado de Raios e Modelos de Iluminação por Marcelo Gattass Departamento de Informática

Obtenção dos raios

plano daimagem lente plano de

focalização

P

A

Page 41: Traçado de Raios e Modelos de Iluminação por Marcelo Gattass Departamento de Informática
Page 42: Traçado de Raios e Modelos de Iluminação por Marcelo Gattass Departamento de Informática
Page 43: Traçado de Raios e Modelos de Iluminação por Marcelo Gattass Departamento de Informática
Page 44: Traçado de Raios e Modelos de Iluminação por Marcelo Gattass Departamento de Informática

Radiosidade e Ray Tracing