A self shadow algorithm for dynamic hair using density clustering
This presentation is the property of its rightful owner.
Sponsored Links
1 / 52

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


  • 47 Views
  • Uploaded on
  • Presentation posted in: General

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 Presentation

A Self Shadow Algorithm for Dynamic Hair using Density Clustering

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


A self shadow algorithm for dynamic hair using density clustering

Demo


Some more results

Some more results


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]


Overview of our approach

Overview of our approach


Overview of our approach1

Overview of our approach


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 clustering1

Density Clustering


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)


A self shadow algorithm for dynamic hair using density clustering

Demo


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)


  • Login