Equação de Rendering Volumétrica - dca.fee.unicamp.br · IA369E – 2s2010 - Ting Equação de...

19
IA369E – 2s2010 - Ting Equação de Rendering Volumétrica ds e s q e I D I D s o D s dt t D s dt t + = - - ) ( ) ( 0 ) ( ) ( 0 κ κ Interação com o volume: leva em conta a influência do interior do volume sobre os raios que o atravessam IA369E – 2s2010 - Ting Até agora ... emissão-absorção α α C C B A C in out + - = + = ) 1 ( in C α , C out C Cada célula é uma potencial “fonte emissora”

Transcript of Equação de Rendering Volumétrica - dca.fee.unicamp.br · IA369E – 2s2010 - Ting Equação de...

Page 1: Equação de Rendering Volumétrica - dca.fee.unicamp.br · IA369E – 2s2010 - Ting Equação de Rendering Volumétrica I D I e q s e ds D s o D s D t dt s t dt ∫ ( ) 0 0 κ κ

IA369E – 2s2010 - Ting

Equação de Rendering Volum étrica

dsesqeIDI

D

s

o

D

s

dttD

s

dtt ∫+

∫=

−−

∫)()(

0 )()( 0

κκ

Interação com o volume:leva em conta a influênciado interior do volume sobreos raios que o atravessam

IA369E – 2s2010 - Ting

Até agora ... emissão-absorção

αα CCBAC inout +−=+= )1(

inCα,C

outC

Cada célula é uma potencial “fonte emissora”

Page 2: Equação de Rendering Volumétrica - dca.fee.unicamp.br · IA369E – 2s2010 - Ting Equação de Rendering Volumétrica I D I e q s e ds D s o D s D t dt s t dt ∫ ( ) 0 0 κ κ

IA369E – 2s2010 - Ting

Efeitos de Iluminação Externa

Com texturaCom componente especular

IA369E – 2s2010 - Ting

Luz x Meio x Observador

Espaço do dispositivo

Ao propagar pelo meio as radiações luminosas podem ser absorvidas, refletidas/espalhadas e reforçadas.

Page 3: Equação de Rendering Volumétrica - dca.fee.unicamp.br · IA369E – 2s2010 - Ting Equação de Rendering Volumétrica I D I e q s e ds D s o D s D t dt s t dt ∫ ( ) 0 0 κ κ

IA369E – 2s2010 - Ting

EsterradianoUnidade de medida de ângulo sólido (sr), tal que uma esferacompleta de área tem sempre esterradianos.24 rπ π4

IA369E – 2s2010 - Ting

Grandezas Radiom étricas

(Radiância)

(Intensidade radiante)

Fluxo radiante: taxa de energiaradiante Q transferida de uma região a outra através de um campo

dt

dQ=ϕ

srR

dAd

d

dI

)( 2

ϕϕ =Ω

=

Page 4: Equação de Rendering Volumétrica - dca.fee.unicamp.br · IA369E – 2s2010 - Ting Equação de Rendering Volumétrica I D I e q s e ds D s o D s D t dt s t dt ∫ ( ) 0 0 κ κ

IA369E – 2s2010 - Ting

Grandezas Radiom étricas

Irradiância: fluxo radiante transferido para dentro de uma superfícieatravés de uma hemisfera de direções.

dA

dE

ϕ=

A

IA369E – 2s2010 - Ting

BRDFbidirecional reflectance distribution function

)(

)( 0

iaIrradiânci

Radiância

ωω

io ωω ,BRDF

Superfície opaca

Page 5: Equação de Rendering Volumétrica - dca.fee.unicamp.br · IA369E – 2s2010 - Ting Equação de Rendering Volumétrica I D I e q s e ds D s o D s D t dt s t dt ∫ ( ) 0 0 κ κ

IA369E – 2s2010 - Ting

BRDFbidirecional reflectance distribution function

www-graphics.stanford.edu/~smr/brdf/bv/

Para uma superfície Lambertiana (perfeitamente difusa), BRDF é constante:

irradiância

radiância

IA369E – 2s2010 - Ting

Fontes de Luz

Fonte de luz de área

Sombras suaves e duras

Page 6: Equação de Rendering Volumétrica - dca.fee.unicamp.br · IA369E – 2s2010 - Ting Equação de Rendering Volumétrica I D I e q s e ds D s o D s D t dt s t dt ∫ ( ) 0 0 κ κ

IA369E – 2s2010 - Ting

Fontes de Luz

Fonte de luz volumétrica

IA369E – 2s2010 - Ting

Fontes de LuzTextura do ambiente: fonte de luz baseada em imagens

http://www.luxrender.net/v/manual_lighting

Page 7: Equação de Rendering Volumétrica - dca.fee.unicamp.br · IA369E – 2s2010 - Ting Equação de Rendering Volumétrica I D I e q s e ds D s o D s D t dt s t dt ∫ ( ) 0 0 κ κ

IA369E – 2s2010 - Ting

Superfícies Lambertianas

IA369E – 2s2010 - Ting

Modelo de Iluminação PhongReflexões Difusas

Intensidade luminosa refletida é diretamente proporcional ao coseno

do ângulo θ

φ=

φ=

Intensidade percebida pelo observador independe da sua

posição

Id = kd Id cos θθθθ

Page 8: Equação de Rendering Volumétrica - dca.fee.unicamp.br · IA369E – 2s2010 - Ting Equação de Rendering Volumétrica I D I e q s e ds D s o D s D t dt s t dt ∫ ( ) 0 0 κ κ

IA369E – 2s2010 - Ting

Intensidade luminosa refletida é diretamente

proporcional à potência αdo coseno do ângulo β

Is = ks Is (cos ββββ)αααα

(R)

Modelo de Iluminação PhongReflexões Especulares

IA369E – 2s2010 - Ting

Modelo de Iluminação Phong

Ip = kaIa + kd Id cosθ + ks Is (cosβ)α

N

L RV

βθ

cosθ = N.L /(|N||L|)cosβ = R.V /(|R||V|)

R = 2N(N.L) - L

Vetor Normal no cálculo da componente especular!!

Page 9: Equação de Rendering Volumétrica - dca.fee.unicamp.br · IA369E – 2s2010 - Ting Equação de Rendering Volumétrica I D I e q s e ds D s o D s D t dt s t dt ∫ ( ) 0 0 κ κ

IA369E – 2s2010 - Ting

Modelo de Blinn-PhongIp = kaIa + kd Id cosθ + ks Is (cosϕ)α’

Intensidade luminosa refletida é diretamente

proporcional à potência α’do coseno do ângulo θ

Is = ks Is (cos ϕϕϕϕ)αααα’

ϕϕ

Vantagem: Quando a fonte luminosa e o observador forem distantes,H é constante.

IA369E – 2s2010 - Ting

Intensidade luminosa comum para todos os pontos do ambienteIa = ka Ia

Modelo de Iluminação PhongMultireflexões

Page 10: Equação de Rendering Volumétrica - dca.fee.unicamp.br · IA369E – 2s2010 - Ting Equação de Rendering Volumétrica I D I e q s e ds D s o D s D t dt s t dt ∫ ( ) 0 0 κ κ

IA369E – 2s2010 - Ting

ambiente Modelo de PhongIp = kaIa + kd Id cosθ + ks Is (cosβ)α

Modelo de Iluminação Phong

IA369E – 2s2010 - Ting

Modelo de Iluminação Phongambiente

difusa

Modelo de PhongIp = kaIa + kd Id cosθ + ks Is (cosβ)α

Page 11: Equação de Rendering Volumétrica - dca.fee.unicamp.br · IA369E – 2s2010 - Ting Equação de Rendering Volumétrica I D I e q s e ds D s o D s D t dt s t dt ∫ ( ) 0 0 κ κ

IA369E – 2s2010 - Ting

ambiente

difusa

especular

Modelo de PhongIp = kaIa + kd Id cosθ + ks Is (cosβ)α

Modelo de Iluminação Phong

IA369E – 2s2010 - Ting

IsosuperfíciesConjuntos de voxels queapresentam mesmos valoresescalares c (isovlores).

czyxf =),,(

Page 12: Equação de Rendering Volumétrica - dca.fee.unicamp.br · IA369E – 2s2010 - Ting Equação de Rendering Volumétrica I D I e q s e ds D s o D s D t dt s t dt ∫ ( ) 0 0 κ κ

IA369E – 2s2010 - Ting

IA369E – 2s2010 - Ting

Page 13: Equação de Rendering Volumétrica - dca.fee.unicamp.br · IA369E – 2s2010 - Ting Equação de Rendering Volumétrica I D I e q s e ds D s o D s D t dt s t dt ∫ ( ) 0 0 κ κ

IA369E – 2s2010 - Ting

“Isosuperfícies”

IA369E – 2s2010 - Ting

Estimativa de Vetores Normais

isosuperfície

),,(

),,(

zyxf

zyxfn

∇∇=r

∂∂∂∂∂∂

=∇

z

fy

fx

f

zyxf ),,(

Page 14: Equação de Rendering Volumétrica - dca.fee.unicamp.br · IA369E – 2s2010 - Ting Equação de Rendering Volumétrica I D I e q s e ds D s o D s D t dt s t dt ∫ ( ) 0 0 κ κ

IA369E – 2s2010 - Ting

Aproximação por Série de Taylor

K+++=+ 2

!2

)(''

!1

)(')()( h

Pfh

PfPfhPf

n

n

n

hn

Pf∑

=

=0 !

)(

)()()(!1

)(' 2hPfhPfhPf ε−−+=

h

h

h

PfhPfPf

)()()()('

2ε−+−+=

)()()(

hoh

PfhPf +−+=

Isolando o termo de primeira derivada:

IA369E – 2s2010 - Ting

Aproximação por Série de Taylor

K−+−=− 2

!2

)(''

!1

)(')()( h

Pfh

PfPfhPf

n

n

nn

hn

Pf∑

=

−=0 !

)()1(

)()()(!1

)(' 2hhPfPfhPf ε+−−=

h

h

h

hPfPfPf

)()()()('

2ε+−−=

)()()(

hoh

hPfPf +−−=

Isolando o termo de primeira derivada:

Page 15: Equação de Rendering Volumétrica - dca.fee.unicamp.br · IA369E – 2s2010 - Ting Equação de Rendering Volumétrica I D I e q s e ds D s o D s D t dt s t dt ∫ ( ) 0 0 κ κ

IA369E – 2s2010 - Ting

Aproximação por Série de Taylor

K

33

2

!3

)(

!2

)(''

!1

)(')()( h

Pfh

Pfh

PfPfhPf +++=+

)()()()('2 3hhPfhPfhPf ε+−−+=

h

h

h

hPfhPfPf

2

)(

2

)()()('

3ε+−−+=

)(2

)()( 2hoh

hPfhPf +−−+=

Subtraindo a segunda expressão da primeira:

K

33

2

!3

)(

!2

)(''

!1

)(')()( h

Pfh

Pfh

PfPfhPf −+−=−

IA369E – 2s2010 - Ting

Aproximação por Diferenças FinitasDiferença finita central:

Diferença finita ascendente:

Diferença finita descendente:

Page 16: Equação de Rendering Volumétrica - dca.fee.unicamp.br · IA369E – 2s2010 - Ting Equação de Rendering Volumétrica I D I e q s e ds D s o D s D t dt s t dt ∫ ( ) 0 0 κ κ

IA369E – 2s2010 - Ting

Uma Implementação

−−+−−+

−−+=∇

),,(),,(

),,(),,(

),,(),,(

2

1),,(

hzyxfhzyxf

zhyxfzhyxf

zyhxfzyhxf

hzyxf

Derivar na direção z(Derivar na direção y(Derivar na direção x(P)))

++++−+−

−+−−−

),,(),,(),,(

),,(),,(),,(

),,(),,(),,(

zhyhxzhyxzhyhx

zyhxzyxzyhx

zhyhxzhyxzhyhx

−++−+−+−−+−−−

−−+−−−−−

),,(),,(),,(

),,(),,(),,(

),,(),,(),,(

hzhyhxhzhyxhzhyhx

hzyhxhzyxhzyhx

hzhyhxhzhyxhzhyhx

Notação Matricial

Mecanismo de Convolução

IA369E – 2s2010 - Ting

Média Ponderada dos Gradientes• Objetivo: remover outliers ponderando as amostras com

pesos distintos• Ferramenta: Operador de Sobel

– 2D

Convolução

Isosuperfície

smoothing smoothingdiferença central

h’(x)

diferença central

h(y) h’(y)h(x)

Page 17: Equação de Rendering Volumétrica - dca.fee.unicamp.br · IA369E – 2s2010 - Ting Equação de Rendering Volumétrica I D I e q s e ds D s o D s D t dt s t dt ∫ ( ) 0 0 κ κ

IA369E – 2s2010 - Ting

Operador de Sobel 3D)()()('),,(' zhyhxhzyxhx =

[ ]101

1

2

1

12

1

h’z(:,:,-1)h’z(:,:,0)

h’z(:,:,1)=

diferença central na direção x

IA369E – 2s2010 - Ting

Cômputo de Gradientes• Pré-processamento

• Em tempo de execução

+

+

+

=∇

valor

f

f

f

zyxf

f

f

f

zyxf

z

y

x

z

y

x

2

12

12

1

),,(

),,(

[0,1]

[-1,1]

Busca de 6 amostras vizinhas Cômputo de gradiente

Para cada amostra:

Page 18: Equação de Rendering Volumétrica - dca.fee.unicamp.br · IA369E – 2s2010 - Ting Equação de Rendering Volumétrica I D I e q s e ds D s o D s D t dt s t dt ∫ ( ) 0 0 κ κ

IA369E – 2s2010 - Ting

IA369E – 2s2010 - Ting

Iluminação através de Texturas

Mapas de Sombra

Page 19: Equação de Rendering Volumétrica - dca.fee.unicamp.br · IA369E – 2s2010 - Ting Equação de Rendering Volumétrica I D I e q s e ds D s o D s D t dt s t dt ∫ ( ) 0 0 κ κ

IA369E – 2s2010 - Ting

Iluminação através de Texturas

http://http.developer.nvidia.com/GPUGems2/gpugems2_chapter10.html

Mapas de Irradiância