Interactive Hair Rendering Under Environment Lighting
Valentin JANIAUT
Zhong Ren, Kun Zhou, Tengfei Li, Wei Hua, Baining Guo
2
Hair Rendering
● Hair fiber represented with lines primitives
● Basic shading model is not realistic at all.
Basic OpenGL illumination
Deep Opacity Map [YUK08]
1 fiber4 strands
3
Environment Lighting
● Natural Illumination● No directional light
Environment LightingSingle Light
5
Spherical Radial Basis Function
● Useful to approximate spherical function
€
f (θ ,ϕ ) ≈ c jj =1
N
∑ R(θ ,ϕ,ξ j ,λ 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
● Same idea than Fourier Series.
6
SRBF Light
● A SRBF function can represent a light in graphic rendering.
€
R j (ω i,ξ j ,λ j ) = L jG(ω i,ξ j ,λ j )Expression of the SRBF light j.
Intensity of the light j.
Gaussian distribution Result on the sphere
2D 3D
€
exp(−λ j ) × exp(λ j × (ω i • ξ j ))
Gaussian distribution.
7
SRBF and Environment Lighting
● We can now represent the environment lighting as the sum of the SRBF lights, as following:
€
L(ω i) ≈ L jj =1
N
∑ G(ω i,ξ j ,λ j )
8
Outgoing Curved Intensity
€
L(ωo) = D L(ω i)T(ω i)Ω∫ S(ω i,ωo)cosθ idω i
Diameter of the hair fiber Environment Lighting Transmittance Bidirectional
scattering function
9
Transmittance or Absorbtance
Transmittance is the fraction of incident light that passes through a
sample.
€
T(x,ω i) = exp(−σ a ρ(x)dxx
∞ω∫ )
Attenuation coefficient. Density function:
• 1 if covered by hair fiber.• 0 otherwise
10
Bidirectional scattering function
● S(ωi,ωo) will be the bidirectional scattering function, similar to BRDF in surface reflectance.
● The scattering is the deviation of the straight trajectory of a ray light due to an obstacle.
● Kajiya and Kay model [1989]
€
S(ω i,ωo) = Kd + Ks
cosp (θ i +θ o)
cosθ i
11
Environment Lighting Approximation
● Remember SRBF? It’s time to use it.
€
L(ω i) ≈ L jj =1
N
∑ G(ω i,ξ j ,λ j )
€
L(ωo) = D L jj =1
N
∑ G j (ω i)T(ω i)Ω∫ S(ω i,ωo)cosθ idω i
12
Effective Transmittance
● Last step of our simplification● Average attenuation of the SRBF
Lighting j.
€
˜ T (ξ j ,λ j ) =G j (ω i)T(ω i)Ω
∫ S(ω i,ωo)cosθ idω i
G j (ω i)Ω∫ S(ω i,ωo)cosθ idω i
€
L(ωo) = D L jj =1
N
∑ ˜ T (ξ j ,λ j ) G j (ω i)Ω∫ S(ω i,ωo)cosθ idω i
● How to compute this equation?
13
Splitting the equation
€
L(ωo) = D L jj =1
N
∑ ˜ T (ξ j ,λ j ) G j (ω i)Ω∫ S(ω i,ωo)cosθ idω i
€
˜ T (ξ j ,λ j )
€
G j (ω i)Ω∫ S(ω i,ωo)cosθ idω i
Transmittance Convolution of SRBF and scattering function.
€
I(ωo,ξ,λ )
14
€
G j (ω i)Ω∫ S(ω i,ωo)cosθ idω i
Convolving SRBF and Scattering Function
● Marschner et al. model [2003]
€
S(ω i,ωo) = M t (θ h )N t (θ d ,φ)t
∑
€
θh =(θ i +θ o)
2;
θ d =(θ i −θ o)
2;
φ = φo + φi
With:
€
IM (cosθξ ,cosθ o,cos(φξ − φo), 1λ )
cos(ϕξ-ϕo)
15
Computing Effective Transmittance
€
L(ωo) = D L jj =1
N
∑ ˜ T (ξ j ,λ j ) G j (ω i)Ω∫ S(ω i,ωo)cosθ idω i
Precomputed in a table• Sampled at the SRBF center
• Use of the Deep Opacity Map technique
18
Multiple Scattering
€
LD (ωo) = D L j (ξ j )Tfj =1
N
∑ (ξ j ) ψ f (ξ j ,ω i,σ f )Ω
∫ SD (ω i,ωo)cosθ idω i
€
Tf (ξ j )
€
ψ f (ξ j ,ω i,σ f )Ω
∫ SD (ω i,ωo)cosθ idω i
Transmittance Convolution of SRBF and scattering function.
€
IG (ωo,ξ,σ f )
● More realistic model.
19
Multiple Scattering Computation
● Voxelize Hair Model
● For each voxel store:
● ϖ : Average Fiber
Direction
● ν : Standard Deviation of
fiber direction
● ςtΤ : Perpendicular
Attenuation Coefficient
● Sample Tf and σf on a rough
grid
● Store as 3D texture
● Hardware tri-linear
interpolation
20
Algorithm OverviewSingle Scattering
● Precompute● SRBF
decomposition● Single Scattering
integration table
● Runtime● Generate Deep
Opacity Depth Map (DODM)
● Construct the Summed Area Table
● Sample the effective transmittance
● Sample the single scattering integral
21
Results
hair model #fibers #segments
FPSSingle
scattering
animation 10K 270K 16.2
straight 10K 160K 17.8
ponytail 20K 900K 11.1
curly 50K 3.4M 2.30
wavy 10K 687K 12.3
natural 10K 1.6M 9.20
22
Limitations
● Runtime change of hair properties● precomputation is costly (~50 minutes)
● Eccentricity of hair scattering is omitted
● Additional video memory for the integral tables● 12MB for single scattering● 24MB for single + multiple scattering● no per-fiber hair property
23
References
● http://www.kunzhou.net/ (Author of the main paper, some of his slides are used in this slideshow)
● http://www.cemyuksel.com/ (Author of the Deep Opacity Maps and numerous other paper about hair rendering)
● Illustration on slide 10 comes from wikipedia.
● http://www.cse.cuhk.edu.hk/~ttwong/papers/srbf/srbf.html Lecture about SRBF.