Top Banner
Importance sampling of products from Illumination and BSDF using SRBF Valentin JANIAUT KAIST (Korea Advanced Institute of Science and Technology)
17
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Improve real-time hair rendering.

Importance sampling of products from Illumination and BSDF using

SRBF

Valentin JANIAUT

KAIST (Korea Advanced Institute of Science and Technology)

Page 2: Improve real-time hair rendering.

2

Overview

● Preliminary notions● BSDF● Light scattering for human fiber● SRBF

● Problem

● Idea

● Results

● And after?

● References

Page 3: Improve real-time hair rendering.

3

BSDF: Bidirectional Scattering Distribution Function

Page 4: Improve real-time hair rendering.

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) = ????

Page 5: Improve real-time hair rendering.

5

BSDF For Hair Rendering

M(q i,q o)

N(f i,f o)

Page 6: Improve real-time hair rendering.

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

Page 7: Improve real-time hair rendering.

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

Page 8: Improve real-time hair rendering.

8

SRBF Viewer

Page 9: Improve real-time hair rendering.

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)

Page 10: Improve real-time hair rendering.

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

Page 11: Improve real-time hair rendering.

11

Problem

G j (w i)Wò S(w i,w o)cosq idw i

Pre-computation of the following integral:

Page 12: Improve real-time hair rendering.

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

Page 13: Improve real-time hair rendering.

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

Page 14: Improve real-time hair rendering.

14

How to check my idea?

● Implementation of Marschner model in Python with SciPy.

● Solving SRBF with SciPy and L-BFGS-B.

Page 15: Improve real-time hair rendering.

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)

Page 16: Improve real-time hair rendering.

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?

Page 17: Improve real-time hair rendering.

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)