Loading in 2 Seconds...
A Self Shadow Algorithm for Dynamic Hair using Density Clustering. Tom Mertens 1 Jan Kautz 2 Philippe Bekaert 1 Frank Van Reeth 1 Limburgs Universitair Centrum  Belgium 1 MIT – Cambridge, MA 2. Rendering Hair. Realistic appearance Light Scattering
Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.
A Self Shadow Algorithm for Dynamic Hair using Density Clustering
Tom Mertens1 Jan Kautz2 Philippe Bekaert1 Frank Van Reeth1
Limburgs Universitair Centrum  Belgium1 MIT – Cambridge, MA2
[Marschner et al ’03]
GPU
Without selfshadows
With selfshadows
→ aliasing
light source view
shadow map
[Williams et al. ’78]
light source view
depth( )
shadow map
depth( ) > depth( ) shadowed
[Williams et al. ’78]
1D visibility function
[Williams et al. ’78]
area
a
=
hair
area
pixel
1D visibility function
[Lokovic et al. ’00]
1D visibility function
compression
Used during offline rendering
[Lokovic et al. ’00]
1D visibility function
Near interactive
performance
Regular sampling
[Kim et al. ’01]
Images from [Kim et al. ‘01]
s
t
s

s
dt
ò
t
=
V
(
s
)
e
0
density
s
t
s

s
dt
ò
t
=
V
(
s
)
e
0
density
s
t
s

s
dt
ò
t
=
V
(
s
)
e
0
density
s
t
D
s
P

s
D
a
=
s
e
t
i
i
s

s
dt
ò
t
=
V
(
s
)
e
0
density
s
t
D
s
å
b
P

s
D
a
=
s
b
=

a
e
ln
i
t
i
i
s
=
i
i
t
D
s
i
s

s
dt
ò
t
=
V
(
s
)
e
0
and
density
density estimation
histogram
s
s
Our approach: nonuniform
[Kim et al. ’01]
Rasterize hair strands
Rasterize hair strands
Prefiltering
d0
β0
Rasterize hair strands
Intersection at depth d0
with weight β0
d0
β0
Rasterize hair strands
d0 d1
β0β1
Rasterize hair strands
d0 d1 d2
β0β1β2
Rasterize hair strands
d0 d1 d2 … dn
β0β1β2 … βn
Rasterize hair strands
d0 d1 d2 … dn
β0β1β2 … βn
Clustering of di’s
Kmeans
(while rasterizing)
d0 d1 d2 … dn
β0β1β2 … βn
Clustering of di’s
Kmeans
(while rasterizing)
d0 d1 d2 … dn
β0β1β2 … βn
Clustering of di’s
Kmeans
(while rasterizing)
d0 d1 d2 … dn
β0β1β2 … βn
Clustering of di’s
Kmeans
(while rasterizing)
Histogram bins
μ = mean
σ = standard dev
μ
μ
~σ
~σ
s
t
d0 d1 d2 … dn
Fill bins
β0β1β2 … βn
s
s
t
d0 d1 d2 … dn
Fill bins
β0β1β2 … βn
s
s
t
s
ò
s
dt
t
0
s

s
dt
ò
t
=
V
(
s
)
e
0
d0 d1 d2 … dn
Fill bins
β0β1β2 … βn
s
Integrate
s
Exp
s
s
ò
s
dt
t
0
all intersections
along ray
Ground truth
Uniform (8bins)
Nonuniform (4means clustering)
Our method
(4 clusters)
Opacity Shadow Mapping
[Kim et al. ’01]
(256 slices)
Our method
(4 clusters)
Opacity Shadow Mapping
[Kim et al. ’01]
(256 slices)
4x speedup expected (due to floating point blending)
The first author gratefully acknowledges the
European Commission (European Regional Development Fund).
Our method
(4 clusters)
Opacity Shadow Mapping
[Kim et al. ’01]
(256 slices)
Our method
(4 clusters)
Opacity Shadow Mapping
[Kim et al. ’01]
(256 slices)
Our method
(4 clusters)
Opacity Shadow Mapping
[Kim et al. ’01]
(256 slices)
N=256
N=64
N=16
N=4
Opacity Shadow Mapping
[Kim et al. ’01]
(N slices)
Our method
(4 clusters)
N=256
N=64
N=16
N=4
Opacity Shadow Mapping
[Kim et al. ’01]
(N slices)
Our method
(4 clusters)
N=256
N=64
N=16
N=4
Opacity Shadow Mapping
[Kim et al. ’01]
(N slices)
Our method
(4 clusters)
Our method
(4 clusters)
Opacity Shadow Mapping
[Kim et al. ’01]
(256 slices)