A self shadow algorithm for dynamic hair using density clustering
Download
1 / 52

A Self Shadow Algorithm for Dynamic Hair using Density Clustering - PowerPoint PPT Presentation


  • 85 Views
  • Uploaded on

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

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about ' A Self Shadow Algorithm for Dynamic Hair using Density Clustering' - shae


An Image/Link below is provided (as is) to download presentation

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.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
A self shadow algorithm for dynamic hair using density clustering

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


Rendering hair
Rendering Hair

  • Realistic appearance

    • Light Scattering

      [Marschner et al ’03]

    • Multiple Scattering

    • Self-shadows

  • Dynamic hair, real-time rate

     GPU

Without self-shadows

With self-shadows




Self shadows for hair
Self-Shadows for Hair

  • Canonical solutions

    • Shadow Volume [Crow ’77]

    • Shadow Mapping [Williams ’78]


Self shadows for hair1
Self-Shadows for Hair

  • Canonical solutions

    • Shadow Volume [Crow ’77]

    • Shadow Mapping [Williams ’78]

  • Problems

    • Geometric complexity

    • Hair strand ≤ pixel

      → aliasing


Shadow mapping
Shadow Mapping

light source view

shadow map

[Williams et al. ’78]


Shadow mapping1
Shadow Mapping

light source view

depth( )

shadow map

depth( ) > depth( )  shadowed

[Williams et al. ’78]


Shadow mapping2
Shadow Mapping

1D visibility function

[Williams et al. ’78]


Deep shadow maps

area

a

=

hair

area

pixel

Deep Shadow Maps

1D visibility function

[Lokovic et al. ’00]


Deep shadow maps1

1D visibility function

Deep Shadow Maps

compression

Used during offline rendering

[Lokovic et al. ’00]


Opacity shadow maps
Opacity Shadow Maps

1D visibility function

Near interactive

performance

Regular sampling

[Kim et al. ’01]

Images from [Kim et al. ‘01]




Hair as a density field

s

t

s

-

s

dt

ò

t

=

V

(

s

)

e

0

Hair as a Density Field

density


Hair as a density field1

s

t

s

-

s

dt

ò

t

=

V

(

s

)

e

0

Hair as a Density Field

density


Hair as a density field2

s

t

s

-

s

dt

ò

t

=

V

(

s

)

e

0

Hair as a Density Field

density


Hair as a density field3

s

t

D

s

P

-

s

D

a

=

s

e

t

i

i

s

-

s

dt

ò

t

=

V

(

s

)

e

0

Hair as a Density Field

density


Hair as a density field4

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

Hair as a Density Field

and

density

density estimation


Density clustering
Density Clustering

  • Density estimation

     histogram

s

s

Our approach: non-uniform

  • Uniform

  • Opacity Shadow Mapping

    [Kim et al. ’01]



Density clustering2
Density Clustering

Rasterize hair strands


Density clustering3
Density Clustering

Rasterize hair strands

Pre-filtering


Density clustering4
Density Clustering

d0

β0

Rasterize hair strands

Intersection at depth d0

with weight β0


Density clustering5
Density Clustering

d0

β0

Rasterize hair strands


Density clustering6
Density Clustering

d0 d1

β0β1

Rasterize hair strands


Density clustering7
Density Clustering

d0 d1 d2

β0β1β2

Rasterize hair strands


Density clustering8
Density Clustering

d0 d1 d2 … dn

β0β1β2 … βn

Rasterize hair strands


Density clustering9
Density Clustering

d0 d1 d2 … dn

β0β1β2 … βn

Clustering of di’s

K-means

(while rasterizing)

  • Pick initial clusters

  • Update clusters

    • get closest samples

    • new cluster pos

      • = mean of closest


Density clustering10
Density Clustering

d0 d1 d2 … dn

β0β1β2 … βn

Clustering of di’s

K-means

(while rasterizing)

  • Pick initial clusters

  • Update clusters

    • get closest samples

    • new cluster pos

      • = mean of closest


Density clustering11
Density Clustering

d0 d1 d2 … dn

β0β1β2 … βn

Clustering of di’s

K-means

(while rasterizing)

  • Pick initial clusters

  • Update clusters

    • get closest samples

    • new cluster pos

      • = mean of closest


Density clustering12
Density Clustering

d0 d1 d2 … dn

β0β1β2 … βn

Clustering of di’s

K-means

(while rasterizing)

Histogram bins

μ = mean

σ = standard dev

μ

μ


Density clustering13

s

t

Density Clustering

d0 d1 d2 … dn

Fill bins

β0β1β2 … βn

s


Density clustering14

s

t

Density Clustering

d0 d1 d2 … dn

Fill bins

β0β1β2 … βn

s


Density clustering15

s

t

s

ò

s

dt

t

0

s

-

s

dt

ò

t

=

V

(

s

)

e

0

Density Clustering

d0 d1 d2 … dn

Fill bins

β0β1β2 … βn

s

Integrate

s

Exp

s


Rendering overview
Rendering Overview

  • For light source view

    • Compute initial clusters

    • Rasterize  K-means

    • Construct bins

    • Fill histogram bins

    • Integrate σt


Rendering overview1

s

ò

s

dt

t

0

Rendering Overview

  • For light source view

    • Compute initial clusters

    • Rasterize  K-means

    • Construct bins

    • Fill histogram bins

    • Integrate σt

  • Eye view: shadow attenuation

    • Use piecewise linear function as lookup


Conceptual comparison
Conceptual Comparison

all intersections

along ray

Ground truth

Uniform (8-bins)

Non-uniform (4-means clustering)


Qualitative comparison
Qualitative Comparison

Our method

(4 clusters)

Opacity Shadow Mapping

[Kim et al. ’01]

(256 slices)


Qualitative comparison1
Qualitative Comparison

Our method

(4 clusters)

Opacity Shadow Mapping

[Kim et al. ’01]

(256 slices)



Conclusion
Conclusion

  • Realistic self-shadowing

  • Interactive rates

    • 200K line segments @ 3Hz (scales linearly)

    • Order of magnitude speedup Opacity Sh. Maps


Conclusion1
Conclusion

  • Realistic self-shadowing

  • Interactive rates

    • 200K line segments @ 3Hz (scales linearly)

    • Order of magnitude speedup Opacity Sh. Maps

  • Future work

    • Implementation on next generation HW

      4x speedup expected (due to floating point blending)

    • Better initial clusters for K-means

    • Explore other cluster techniques

    • Smoke, clouds, …


Thank you for your attention
Thank you for your attention

The first author gratefully acknowledges the

European Commission (European Regional Development Fund).


Qualitative comparison2
Qualitative Comparison

Our method

(4 clusters)

Opacity Shadow Mapping

[Kim et al. ’01]

(256 slices)


Qualitative comparison3
Qualitative Comparison

Our method

(4 clusters)

Opacity Shadow Mapping

[Kim et al. ’01]

(256 slices)


Qualitative comparison4
Qualitative Comparison

Our method

(4 clusters)

Opacity Shadow Mapping

[Kim et al. ’01]

(256 slices)


Qualitative comparison5
Qualitative Comparison

N=256

N=64

N=16

N=4

Opacity Shadow Mapping

[Kim et al. ’01]

(N slices)

Our method

(4 clusters)


Qualitative comparison6
Qualitative Comparison

N=256

N=64

N=16

N=4

Opacity Shadow Mapping

[Kim et al. ’01]

(N slices)

Our method

(4 clusters)


Qualitative comparison7
Qualitative Comparison

N=256

N=64

N=16

N=4

Opacity Shadow Mapping

[Kim et al. ’01]

(N slices)

Our method

(4 clusters)


Qualitative comparison8
Qualitative Comparison

Our method

(4 clusters)


Qualitative comparison9
Qualitative Comparison

Opacity Shadow Mapping

[Kim et al. ’01]

(256 slices)


ad