Importance sampling of products from Illumination and BSDF using SRBF Valentin JANIAUT KAIST (Korea Advanced Institute of Science and Technology)
Jul 12, 2015
Importance sampling of products from Illumination and BSDF using
SRBF
Valentin JANIAUT
KAIST (Korea Advanced Institute of Science and Technology)
2
Overview
● Preliminary notions● BSDF● Light scattering for human fiber● SRBF
● Problem
● Idea
● Results
● And after?
● References
4
BSDF For Hair Rendering
● In 2003 Stefan Marschner proposed a new model for the light scattering for Human Fiber which has been widely used until today.
€
S(q i,q o,f i,f o) = ????
6
Rendering Equation for the Hair
● Transmittance replace the visibility.
● Single Scattering
● Different optimization to handle the large amount of data.
€
L(w o) = D L(w i)T(w i)Wò S(w i,w o)cosq idw i
Diameter of the hair fiber Environment Lighting Transmittance Bidirectional
scattering function
7
SRBF
€
f (w ) » c jj =1
N
å R((w · x j ), l j )
Spherical Coordinate of the
Spherical Function
Number of SRBF to use for the
approximation
Coefficient depending of the
problem
SRBF with actually 5 parameters
Spherical Coordinate of the
center of the SRBF
Bandwidth of the center of the SRBF
9
Advantage of SRBF
● The function can be approximate using just a row of vector: [c,ξ,λ]j
● The product of different SRBF is also an SRBF.
● Integration of SRBF is simple (sampling of the center of each SRBF)
10
Problem
€
L(w o) = D L jj =1
N
å ÷ T (x j ,l j ) G j (w i)Wò S(w i,w o)cosq idw i
€
L(w o) = D L(w i)T(w i)Wò S(w i,w o)cosq idw i
12
Idea
● Approximation using SRBF.
● Two possible ways to solve this.● Approximating the
integral:
Using a SRBF for each ωo
€
G j (w i)Wò S(w i,w o)cosq idw i
Smooth data efficient approximationNeed to compute the integral.Too much specific.
● Approximating the BSDF:
Using a SRBF for each ωo
€
S(w i,w o)
Easy computation of the integral using SRBF sampling.Can be used for other computation.Too smooth for the BSDF ?
One SRBF
13
Product of two SRBF
● What if we approximate the BSDF using SRBF?
€
S(w i,w k ) = S jkGk ((w ik · x jk ), l jk
j =1
N
å
€
G j (w i)Wò S(w i,w o)cosq idw i
€
G(w i)Wò S jkG
k ((w ik · x jk ), l jkj =1
N
å )cosq idw i
14
How to check my idea?
● Implementation of Marschner model in Python with SciPy.
● Solving SRBF with SciPy and L-BFGS-B.
15
Results
● Approximating the integral:
Using a SRBF for each ωo
● Approximating the BSDF:
Using a SRBF for each ωo
€
G j (w i)Wò S(w i,w o)cosq idw i
€
S(w i,w o)
● Computation of integration too slow with SciPy
● The code need more optimization to work with this approach.
● Encouraging result with 8 SRBF.
● Need to be tested with larger number of SRBF and real data.16 h to obtain the
image! (on a Mac Mini Intel Core 2 Duo 2GHz
1GB Ram)
cos (θi)
cos (θ0)
16
And after?
● Optimizing the code to validate my idea.
● How to merge geometric and scattering data?
● How to create a common method for all kind of hair?
17
References
● 2003: Light Scattering from Human Fiber [Marschner et al.]
● 2007: Practical Global Illumination for Hair Rendering [Cem Yuksel]
● 2008: Dual scattering approximation for fast multiple scattering in hair. [Zinke]
● 2008: Efficient multiple scattering in hair using spherical harmonics. [Moon et
.al]
● 2010: Interactive hair rendering under environment lighting. [Zhong Ren]
● http://hairrendering.wordpress.com/tag/marschner/ (C# implementation of
Marschner Scattering model)
● http://www.scipy.org/ (Scientific Computing in Python)
● http://project.valeuf.org/projects/marschner/ (Website with my source code,
and my PPT)