SlideShare a Scribd company logo
1 of 54
Download to read offline
Rendering Techniques
Monte Carlo Ray tracing, Photon
mapping
Yoo, Jinho
Department of Media Technology, Sogang University,
Seoul, Korea
Rendering techniques
Local illumination
• 빛이 표면에 닿았을 때, 그 표면과 빛의
관계만 계산해서 보여줌.
Ex) OpenGL로
만든 결과
Title
S.W.Lee’s slide
Light, Surface Materials
S.W.Lee’s slide
Reflectance
Reflectance: ratio of radiance to irradiance
dLr=fr dEi
Ei
qi
Ei
Lr(x,w)
Li(x,wi)
ò= irr dEfL
i
r
r
dE
dL
f =
The surface becomes a light source
S.W.Lee’s slide
irradiance
irradiance
radiance
Reflection Equation
S.W.Lee’s slide
BRDF
dEi
Lr(x,w) qi
Li(x,wi)
Reflectance:
ratio of radiance
to irradiance
ò ò
ò
ò
=
=
=
i i
i
iiiiir
iiir
irr
ddsincosLf
dcosLf
dEfL
f q
w
fqqq
wqiii
r
i
r
r
dcosL
dL
dE
dL
f
wq
==
ú
û
ù
ê
ë
é
sr
1
S.W.Lee’s slide
Global illumination
• 빛이 표면에 직접 닿는 것 이외에 간접
적으로 오는 모든 것을 다 계산해서 보
여줌
Ex) BMRT로
만든 결과
Kajiya’s Rendering equation
• 1986년 Kajiya가 제안
• Surface 위의 한 점에서 일어나는 현상
을 모델링 함.
• Light transport modeling
현재 이미지를 표시할 수 없습니다.
( ', ) ( , ')[ ( , ') ( , ', '') ( ', '') '']
s
I x x g x x e x x x x x I x x dxr= + ò
Jim Kajiya –MSR Graphics director
( ', ) ( , ')[ ( , ') ( , ', '') ( ', '') '']
s
I x x g x x x x x x x I x x dxe r= + ò
( ', ):I x x
( , '):g x x
( , '):x xe
3차원 점 x’에서 x로 전달되는 밝기값
보이는 점인지 아닌지 ( 0=보이지 않음,
1/sqrt( dist(x’-x) )= 보일 때)
x’에서 x로 전달되는 발산(emmittance)되 오는 값.
자기발광(light self-emmitted)해서 나오는 값
( , ', ''):x x xr x’’방향에서 나와 x’에 도달하는 에너지가
x로 퍼지는 에너지의 양
x’’
x’X
( ', ) ( , ')[ ( , ') ( , ', '') ( ', '') '']
s
I x x g x x x x x x x I x x dxe r= + ò
:BRDF를 적용함
Kajiya’s equation….
• 반드시 알아야 하는 것
– Surface e()에 의해 발산하는(emit)light
model
– 각 표면의 BRDF r()
– Visibility function의 계산방법
Kajiya’s equation….
• Integral
– Analytical한 방법을 쓸 수 없다.
– Monte Carlos방법이나 다른 실질적인 방법이용
• View-independent 문제
– x’ 은 Scene안의 모든 점들이다.
– 그러나 보이지 않는 점들에 대해서도 연산해야 한
다.
• Recursive equation이다.
– I(x, x’)을 계산하려면 I(x’, x’’)을 계산해야 한다.
Light transport notation
• 다음의 Notation으로 빛의 흐름을 표시한다.
– L: 광원( light source)
– E: 눈 (eye)
– S: Specular reflection
– D: diffuse reflection
– G: glossy
Ex) LDDSE = 광원에서 2개의 Diffuse reflection을 거치고
눈으로 들어옴
L(S|D)+DE: 광원에서 빛이 나가서 diffuse surface에 반
사되기 전에 하나나 그 이상의 diffuse, specular reflection
이 일어난다.
Light transport notation
LDSSE
LDSE
LSSDE
Diffuse wall
Transparent
sphere
Rendering techniques
Ray-Tracing (Whitted)
• 광원에서 시작한 빛이 어떻게 소멸해 가는지 거꾸
로 추적해 나감
Opaque
Semi Transparent object
Light rays
Eye
Initial ray
1 Light ray
2
3
Transmitted
(refracted)
4
Reflected1 2
3
4
Ray-Tracing (Whitted)
Monte Carlo techniques
• Integration을 효과적으로 하기 위한 방
법
1
0
( )I f x dx= ò
f(x)
0 1
:모든 구간에 대해 다
계산해서 합할 수는
없다. Þsampling해서
적분
1
1
( )
N
i
f
N
x
=
= å
x:sample point
어떻게 sampling 할 것인가?
Monte Carlo techniques
• f(x)에서 중요한 구간(Important regions)
을 선택해서 sample함
– p(x): 중요한 구간을 선택하는 함수(PDF와
유사)
– Cumulative function으로 정의가능
1
0
( )
( )
( )
f x
I p x dx
p x
= ò
0
( ) ( )
x
p x p t dt= ò
Monte Carlo techniques
• p(x)의 특징
• 일반적으로….
– Normalized absolute value of f(x)
– Approximated f(x)
( ) 0p x > ( ) 1p x dx =ò,
1
( )p x-
, 가 계산가능 할 것
Monte Carlo techniques-
Path tracing
• Kajiya가 Rendering equation의 답으로
제시
• Rendering equation을 아래와 같이 다
시 정리
• Neuman series로 재 정리
I g g Ie= + M M:rendering equation의 integral을
linear operator로 재정의
2 3
( ) ( )I g g g g g g ge e e e= + + + +M M M L
1번 부딪힘 2번 부딪힘 3번 부딪힘직접 닿음
Monte Carlo techniques-
Path tracing
Eye
Light
Ray #1
2 3
( ) ( )I g g g g g g ge e e e= + + + +M M M L
Monte Carlo techniques-
Path tracing
Eye
Light
Ray #2
2 3
( ) ( )I g g g g g g ge e e e= + + + +M M M L
Monte Carlo techniques-
Path tracing
• 몇 개의 ray를 추적해 갈 것인가?
– Sampling
• # of ray/pixel
• 문제점
– 얼마나 많이 sample할 것인가
• 숫자가 너무 적으면 noise가 생김
– 여러 광원에서 빛이 들어올 때
• BRDF는 1개의 광원에 대해서만 한 것
• 모든 광원에서 나오는 Ray를 추적하기 힘들다.
Monte Carlo techniques-
Path tracing
10 path/pixel
Monte Carlo techniques-
Path tracing
10 path/pixel(3*3 mask 처리 )
Monte Carlo techniques-
Path tracing
,Mask FilteringNoise줄이려면? : More sample,Better sample
Photon mapping
• Ray를 추적하는 개념이 아니라
Photon(光子)을 surface위에 입히는 것
– Ray:Radiance의 집합
– Photon: flux DF를 전달하는 빛의 조각 하
나
DF
photon
Ray
Flux
• The lines of force of a magnetic fileld
Source
• Point source
– Photon들은 모든 방향으로 균일하게 나간다.
• 광원의 power(W)는 photon안에 골고루 퍼져
있다.
– 각 photon의 Flux= W/#of photons
– 60W광원 Þ100k개의 Photon이 광원이 나오면 Df
=0.6mW의 Flux가 전달 된다.
• Photon은 한번만 보내진다.
Photon mapping
• Two-Pass algorithm
– 1)광원에서 Photon을 쏴서 닿는 surface에
기록한다.
– 2)저장된 Photon들의 정보를 모아서 보여
준다.
Photon mapping
• Two-Pass algorithm
– 1)광원에서 Photon을 쏴서 닿는 surface에
기록한다.
Store:
• position
• incoming direction
• probability
• color
• ...
Photon mapping
• Two-Pass algorithm
– 1)광원에서 Photon을 쏴서 닿는 surface에
기록한다.
Store:
• position
• incoming direction
• probability
• color
• ...
Photon mapping
• Two-Pass algorithm
– 1)광원에서 Photon을 쏴서 닿는 surface에
기록한다.
Store:
• position
• incoming direction
• probability
• color
• ...
Photon mapping
struct photon = {
float position[3];
rgbe power; // power packed as 4 bytes
char phi, theta; // incoming direction
short flags;
}
Left-balanced kd-tree에 저장
2종류의 Photon map
Global photon map Caustic photon map
Russian Roulette
• Ex) 100의 밝기를 가지는 빛을 0.5만 반
사하는 특성이 있는 매질에 비추면….
– 50의 밝기를 내야 되는데,
…..
….. …..
…..
모든 Photon이 0.5의 밝기를
가지게 하든지…
1의 밝기를 가지는 Photon
50개를 드문드문 뿌리던지
.
.
.
.
50개를
어떻게
골라낼 것
인가?
Russian Roulette
• Reflection? Absorption?
p=d // probability of reflection
V=random() // V=[0,1], uniformly distributed
random number
If(V < p)
reflect photon with power Fp
else
photon is absorbed
Russian Roulette
Diffuse reflectance:rd
Specular reflectance: rs
rd + rs <= 1
V=random() // V=[0,1], uniformly
distributed
random number
If( 0<V <rd )
reflect photon with power Fp
else
photon is absorbed
Diffuse reflection
Russian Roulette
Diffuse reflectance:rd
Specular reflectance: rs
rd + rs <= 1
V=random() // V=[0,1], uniformly
distributed
random number
If( rd <=V < rs +rd )
reflect photon with power Fp
else
photon is absorbed
Specular reflection
Photon mapping
• Two-Pass algorithm
– 2)저장된 Photon들의 정보를 모아서 보여
준다.
가장 가까운 photon N개를
찾는다.
이 photon들이 관심 있는
영역을 때린다고 가정
Photon들의 평균 Radiance
를 계산
Photon mapping
10000 photons / 50 photons
in radiance estimate
Path tracing
1000 paths/pixel
Photon mapping
Participating Media
• 연기, 반투명체의 경우
– Photon을 그냥 입히는 것이 아니라 물체 안
에서 ‘퍼져야’(Scattering)한다.
Participating Media
• Photon tracing
Participating Media
• The Volume photon map
Participating Media
• Volume radiance estimation
Participating Media
• Rendering
Surface scattering
• Ex) Skin, Marble
Surface scattering
a) Skin shader using in ‘Shrek’ b) a)+Surface scattering
결론을 내자면…
• 반투명체의 반사특성은 한 점에 대한 모
델이 아닌 주변부과의 에너지 전달문제
를 고려해서 모델을 만들어야 한다.
• Photon mapping은 위의 모델을 쉽게
구현할 수 있게 해줄 것이다.
• Rendering자체보다는 Model을 잘 만들
든지, 측정을 잘하는 방법을 개발하는
것이 필요하다.
Photon mapping을 하려면
• BMRT
– http://www.exluna.com/products/bmrt/index.html
– Light 조건 줄때, Photon mapping기법이용 가능
– Pixar Renderman과 호환, shader programming가능
– WINDOWS/Linux
• Renderpark
– http://www.cs.kuleuven.ac.be/cwis/research/grap
hics/RENDERPARK/
– Scattering, Caustic구현되어 있음
– Linux/Unix
– 소스공개

More Related Content

Similar to Rendering techniques

언차티드4 테크아트 파트3 MicroShadowBRDF Term
언차티드4 테크아트 파트3 MicroShadowBRDF Term언차티드4 테크아트 파트3 MicroShadowBRDF Term
언차티드4 테크아트 파트3 MicroShadowBRDF TermDae Hyek KIM
 
머피's 머신러닝: Latent Linear Model
머피's 머신러닝: Latent Linear Model머피's 머신러닝: Latent Linear Model
머피's 머신러닝: Latent Linear ModelJungkyu Lee
 
[1023 박민수] 깊이_버퍼_그림자_1
[1023 박민수] 깊이_버퍼_그림자_1[1023 박민수] 깊이_버퍼_그림자_1
[1023 박민수] 깊이_버퍼_그림자_1MoonLightMS
 
[1023 박민수] 깊이_버퍼_그림자
[1023 박민수] 깊이_버퍼_그림자[1023 박민수] 깊이_버퍼_그림자
[1023 박민수] 깊이_버퍼_그림자MoonLightMS
 
Depth buffershadow
Depth buffershadowDepth buffershadow
Depth buffershadowMoonLightMS
 
Build Lightmap system
Build Lightmap systemBuild Lightmap system
Build Lightmap systemJaesik Hwang
 
[GPU Gems3] Chapter 28. Practical Post Process Depth Of Field
[GPU Gems3] Chapter 28. Practical Post Process Depth Of Field[GPU Gems3] Chapter 28. Practical Post Process Depth Of Field
[GPU Gems3] Chapter 28. Practical Post Process Depth Of Field종빈 오
 
[Ndc13]Ndc 2013 김동석:UDK로 물리기반 셰이더 만들기
[Ndc13]Ndc 2013 김동석:UDK로 물리기반 셰이더 만들기[Ndc13]Ndc 2013 김동석:UDK로 물리기반 셰이더 만들기
[Ndc13]Ndc 2013 김동석:UDK로 물리기반 셰이더 만들기동석 김
 

Similar to Rendering techniques (8)

언차티드4 테크아트 파트3 MicroShadowBRDF Term
언차티드4 테크아트 파트3 MicroShadowBRDF Term언차티드4 테크아트 파트3 MicroShadowBRDF Term
언차티드4 테크아트 파트3 MicroShadowBRDF Term
 
머피's 머신러닝: Latent Linear Model
머피's 머신러닝: Latent Linear Model머피's 머신러닝: Latent Linear Model
머피's 머신러닝: Latent Linear Model
 
[1023 박민수] 깊이_버퍼_그림자_1
[1023 박민수] 깊이_버퍼_그림자_1[1023 박민수] 깊이_버퍼_그림자_1
[1023 박민수] 깊이_버퍼_그림자_1
 
[1023 박민수] 깊이_버퍼_그림자
[1023 박민수] 깊이_버퍼_그림자[1023 박민수] 깊이_버퍼_그림자
[1023 박민수] 깊이_버퍼_그림자
 
Depth buffershadow
Depth buffershadowDepth buffershadow
Depth buffershadow
 
Build Lightmap system
Build Lightmap systemBuild Lightmap system
Build Lightmap system
 
[GPU Gems3] Chapter 28. Practical Post Process Depth Of Field
[GPU Gems3] Chapter 28. Practical Post Process Depth Of Field[GPU Gems3] Chapter 28. Practical Post Process Depth Of Field
[GPU Gems3] Chapter 28. Practical Post Process Depth Of Field
 
[Ndc13]Ndc 2013 김동석:UDK로 물리기반 셰이더 만들기
[Ndc13]Ndc 2013 김동석:UDK로 물리기반 셰이더 만들기[Ndc13]Ndc 2013 김동석:UDK로 물리기반 셰이더 만들기
[Ndc13]Ndc 2013 김동석:UDK로 물리기반 셰이더 만들기
 

More from Jinho Yoo

현장에서 사용하는 Software production
현장에서 사용하는 Software production현장에서 사용하는 Software production
현장에서 사용하는 Software productionJinho Yoo
 
Blockchain 101
Blockchain 101Blockchain 101
Blockchain 101Jinho Yoo
 
RESTful API 설계
RESTful API 설계RESTful API 설계
RESTful API 설계Jinho Yoo
 
Spark 소개 2부
Spark 소개 2부Spark 소개 2부
Spark 소개 2부Jinho Yoo
 
Spark 소개 1부
Spark 소개 1부Spark 소개 1부
Spark 소개 1부Jinho Yoo
 
Map reduce 기본 설명
Map reduce 기본 설명Map reduce 기본 설명
Map reduce 기본 설명Jinho Yoo
 

More from Jinho Yoo (6)

현장에서 사용하는 Software production
현장에서 사용하는 Software production현장에서 사용하는 Software production
현장에서 사용하는 Software production
 
Blockchain 101
Blockchain 101Blockchain 101
Blockchain 101
 
RESTful API 설계
RESTful API 설계RESTful API 설계
RESTful API 설계
 
Spark 소개 2부
Spark 소개 2부Spark 소개 2부
Spark 소개 2부
 
Spark 소개 1부
Spark 소개 1부Spark 소개 1부
Spark 소개 1부
 
Map reduce 기본 설명
Map reduce 기본 설명Map reduce 기본 설명
Map reduce 기본 설명
 

Rendering techniques

  • 1. Rendering Techniques Monte Carlo Ray tracing, Photon mapping Yoo, Jinho Department of Media Technology, Sogang University, Seoul, Korea
  • 3. Local illumination • 빛이 표면에 닿았을 때, 그 표면과 빛의 관계만 계산해서 보여줌. Ex) OpenGL로 만든 결과
  • 6. Reflectance Reflectance: ratio of radiance to irradiance dLr=fr dEi Ei qi Ei Lr(x,w) Li(x,wi) ò= irr dEfL i r r dE dL f = The surface becomes a light source S.W.Lee’s slide irradiance irradiance radiance
  • 8. BRDF dEi Lr(x,w) qi Li(x,wi) Reflectance: ratio of radiance to irradiance ò ò ò ò = = = i i i iiiiir iiir irr ddsincosLf dcosLf dEfL f q w fqqq wqiii r i r r dcosL dL dE dL f wq == ú û ù ê ë é sr 1 S.W.Lee’s slide
  • 9. Global illumination • 빛이 표면에 직접 닿는 것 이외에 간접 적으로 오는 모든 것을 다 계산해서 보 여줌 Ex) BMRT로 만든 결과
  • 10. Kajiya’s Rendering equation • 1986년 Kajiya가 제안 • Surface 위의 한 점에서 일어나는 현상 을 모델링 함. • Light transport modeling 현재 이미지를 표시할 수 없습니다. ( ', ) ( , ')[ ( , ') ( , ', '') ( ', '') ''] s I x x g x x e x x x x x I x x dxr= + ò Jim Kajiya –MSR Graphics director
  • 11. ( ', ) ( , ')[ ( , ') ( , ', '') ( ', '') ''] s I x x g x x x x x x x I x x dxe r= + ò ( ', ):I x x ( , '):g x x ( , '):x xe 3차원 점 x’에서 x로 전달되는 밝기값 보이는 점인지 아닌지 ( 0=보이지 않음, 1/sqrt( dist(x’-x) )= 보일 때) x’에서 x로 전달되는 발산(emmittance)되 오는 값. 자기발광(light self-emmitted)해서 나오는 값
  • 12. ( , ', ''):x x xr x’’방향에서 나와 x’에 도달하는 에너지가 x로 퍼지는 에너지의 양 x’’ x’X ( ', ) ( , ')[ ( , ') ( , ', '') ( ', '') ''] s I x x g x x x x x x x I x x dxe r= + ò :BRDF를 적용함
  • 13. Kajiya’s equation…. • 반드시 알아야 하는 것 – Surface e()에 의해 발산하는(emit)light model – 각 표면의 BRDF r() – Visibility function의 계산방법
  • 14. Kajiya’s equation…. • Integral – Analytical한 방법을 쓸 수 없다. – Monte Carlos방법이나 다른 실질적인 방법이용 • View-independent 문제 – x’ 은 Scene안의 모든 점들이다. – 그러나 보이지 않는 점들에 대해서도 연산해야 한 다. • Recursive equation이다. – I(x, x’)을 계산하려면 I(x’, x’’)을 계산해야 한다.
  • 15. Light transport notation • 다음의 Notation으로 빛의 흐름을 표시한다. – L: 광원( light source) – E: 눈 (eye) – S: Specular reflection – D: diffuse reflection – G: glossy Ex) LDDSE = 광원에서 2개의 Diffuse reflection을 거치고 눈으로 들어옴 L(S|D)+DE: 광원에서 빛이 나가서 diffuse surface에 반 사되기 전에 하나나 그 이상의 diffuse, specular reflection 이 일어난다.
  • 18. Ray-Tracing (Whitted) • 광원에서 시작한 빛이 어떻게 소멸해 가는지 거꾸 로 추적해 나감 Opaque Semi Transparent object Light rays Eye Initial ray 1 Light ray 2 3 Transmitted (refracted) 4 Reflected1 2 3 4
  • 20. Monte Carlo techniques • Integration을 효과적으로 하기 위한 방 법 1 0 ( )I f x dx= ò f(x) 0 1 :모든 구간에 대해 다 계산해서 합할 수는 없다. Þsampling해서 적분 1 1 ( ) N i f N x = = å x:sample point 어떻게 sampling 할 것인가?
  • 21. Monte Carlo techniques • f(x)에서 중요한 구간(Important regions) 을 선택해서 sample함 – p(x): 중요한 구간을 선택하는 함수(PDF와 유사) – Cumulative function으로 정의가능 1 0 ( ) ( ) ( ) f x I p x dx p x = ò 0 ( ) ( ) x p x p t dt= ò
  • 22. Monte Carlo techniques • p(x)의 특징 • 일반적으로…. – Normalized absolute value of f(x) – Approximated f(x) ( ) 0p x > ( ) 1p x dx =ò, 1 ( )p x- , 가 계산가능 할 것
  • 23. Monte Carlo techniques- Path tracing • Kajiya가 Rendering equation의 답으로 제시 • Rendering equation을 아래와 같이 다 시 정리 • Neuman series로 재 정리 I g g Ie= + M M:rendering equation의 integral을 linear operator로 재정의 2 3 ( ) ( )I g g g g g g ge e e e= + + + +M M M L 1번 부딪힘 2번 부딪힘 3번 부딪힘직접 닿음
  • 24. Monte Carlo techniques- Path tracing Eye Light Ray #1 2 3 ( ) ( )I g g g g g g ge e e e= + + + +M M M L
  • 25. Monte Carlo techniques- Path tracing Eye Light Ray #2 2 3 ( ) ( )I g g g g g g ge e e e= + + + +M M M L
  • 26. Monte Carlo techniques- Path tracing • 몇 개의 ray를 추적해 갈 것인가? – Sampling • # of ray/pixel • 문제점 – 얼마나 많이 sample할 것인가 • 숫자가 너무 적으면 noise가 생김 – 여러 광원에서 빛이 들어올 때 • BRDF는 1개의 광원에 대해서만 한 것 • 모든 광원에서 나오는 Ray를 추적하기 힘들다.
  • 27. Monte Carlo techniques- Path tracing 10 path/pixel
  • 28. Monte Carlo techniques- Path tracing 10 path/pixel(3*3 mask 처리 )
  • 29. Monte Carlo techniques- Path tracing ,Mask FilteringNoise줄이려면? : More sample,Better sample
  • 30. Photon mapping • Ray를 추적하는 개념이 아니라 Photon(光子)을 surface위에 입히는 것 – Ray:Radiance의 집합 – Photon: flux DF를 전달하는 빛의 조각 하 나 DF photon Ray
  • 31. Flux • The lines of force of a magnetic fileld
  • 32. Source • Point source – Photon들은 모든 방향으로 균일하게 나간다. • 광원의 power(W)는 photon안에 골고루 퍼져 있다. – 각 photon의 Flux= W/#of photons – 60W광원 Þ100k개의 Photon이 광원이 나오면 Df =0.6mW의 Flux가 전달 된다. • Photon은 한번만 보내진다.
  • 33. Photon mapping • Two-Pass algorithm – 1)광원에서 Photon을 쏴서 닿는 surface에 기록한다. – 2)저장된 Photon들의 정보를 모아서 보여 준다.
  • 34. Photon mapping • Two-Pass algorithm – 1)광원에서 Photon을 쏴서 닿는 surface에 기록한다. Store: • position • incoming direction • probability • color • ...
  • 35. Photon mapping • Two-Pass algorithm – 1)광원에서 Photon을 쏴서 닿는 surface에 기록한다. Store: • position • incoming direction • probability • color • ...
  • 36. Photon mapping • Two-Pass algorithm – 1)광원에서 Photon을 쏴서 닿는 surface에 기록한다. Store: • position • incoming direction • probability • color • ...
  • 37. Photon mapping struct photon = { float position[3]; rgbe power; // power packed as 4 bytes char phi, theta; // incoming direction short flags; } Left-balanced kd-tree에 저장
  • 38. 2종류의 Photon map Global photon map Caustic photon map
  • 39. Russian Roulette • Ex) 100의 밝기를 가지는 빛을 0.5만 반 사하는 특성이 있는 매질에 비추면…. – 50의 밝기를 내야 되는데, ….. ….. ….. ….. 모든 Photon이 0.5의 밝기를 가지게 하든지… 1의 밝기를 가지는 Photon 50개를 드문드문 뿌리던지 . . . . 50개를 어떻게 골라낼 것 인가?
  • 40. Russian Roulette • Reflection? Absorption? p=d // probability of reflection V=random() // V=[0,1], uniformly distributed random number If(V < p) reflect photon with power Fp else photon is absorbed
  • 41. Russian Roulette Diffuse reflectance:rd Specular reflectance: rs rd + rs <= 1 V=random() // V=[0,1], uniformly distributed random number If( 0<V <rd ) reflect photon with power Fp else photon is absorbed Diffuse reflection
  • 42. Russian Roulette Diffuse reflectance:rd Specular reflectance: rs rd + rs <= 1 V=random() // V=[0,1], uniformly distributed random number If( rd <=V < rs +rd ) reflect photon with power Fp else photon is absorbed Specular reflection
  • 43. Photon mapping • Two-Pass algorithm – 2)저장된 Photon들의 정보를 모아서 보여 준다. 가장 가까운 photon N개를 찾는다. 이 photon들이 관심 있는 영역을 때린다고 가정 Photon들의 평균 Radiance 를 계산
  • 44. Photon mapping 10000 photons / 50 photons in radiance estimate Path tracing 1000 paths/pixel
  • 46. Participating Media • 연기, 반투명체의 경우 – Photon을 그냥 입히는 것이 아니라 물체 안 에서 ‘퍼져야’(Scattering)한다.
  • 48. Participating Media • The Volume photon map
  • 49. Participating Media • Volume radiance estimation
  • 52. Surface scattering a) Skin shader using in ‘Shrek’ b) a)+Surface scattering
  • 53. 결론을 내자면… • 반투명체의 반사특성은 한 점에 대한 모 델이 아닌 주변부과의 에너지 전달문제 를 고려해서 모델을 만들어야 한다. • Photon mapping은 위의 모델을 쉽게 구현할 수 있게 해줄 것이다. • Rendering자체보다는 Model을 잘 만들 든지, 측정을 잘하는 방법을 개발하는 것이 필요하다.
  • 54. Photon mapping을 하려면 • BMRT – http://www.exluna.com/products/bmrt/index.html – Light 조건 줄때, Photon mapping기법이용 가능 – Pixar Renderman과 호환, shader programming가능 – WINDOWS/Linux • Renderpark – http://www.cs.kuleuven.ac.be/cwis/research/grap hics/RENDERPARK/ – Scattering, Caustic구현되어 있음 – Linux/Unix – 소스공개