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


  • 50 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

Tom Mertens1 Jan Kautz2 Philippe Bekaert1 Frank Van Reeth1

Limburgs Universitair Centrum - Belgium1 MIT – Cambridge, MA2


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


Demo


Some more results


Self-Shadows for Hair

  • Canonical solutions

    • Shadow Volume [Crow ’77]

    • Shadow Mapping [Williams ’78]


Self-Shadows for Hair

  • Canonical solutions

    • Shadow Volume [Crow ’77]

    • Shadow Mapping [Williams ’78]

  • Problems

    • Geometric complexity

    • Hair strand ≤ pixel

      → aliasing


Shadow Mapping

light source view

shadow map

[Williams et al. ’78]


Shadow Mapping

light source view

depth( )

shadow map

depth( ) > depth( )  shadowed

[Williams et al. ’78]


Shadow Mapping

1D visibility function

[Williams et al. ’78]


area

a

=

hair

area

pixel

Deep Shadow Maps

1D visibility function

[Lokovic et al. ’00]


1D visibility function

Deep Shadow Maps

compression

Used during offline rendering

[Lokovic et al. ’00]


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


s

t

s

-

s

dt

ò

t

=

V

(

s

)

e

0

Hair as a Density Field

density


s

t

s

-

s

dt

ò

t

=

V

(

s

)

e

0

Hair as a Density Field

density


s

t

s

-

s

dt

ò

t

=

V

(

s

)

e

0

Hair as a Density Field

density


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


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 estimation

     histogram

s

s

Our approach: non-uniform

  • Uniform

  • Opacity Shadow Mapping

    [Kim et al. ’01]


Density Clustering


Density Clustering

Rasterize hair strands


Density Clustering

Rasterize hair strands

Pre-filtering


Density Clustering

d0

β0

Rasterize hair strands

Intersection at depth d0

with weight β0


Density Clustering

d0

β0

Rasterize hair strands


Density Clustering

d0 d1

β0β1

Rasterize hair strands


Density Clustering

d0 d1 d2

β0β1β2

Rasterize hair strands


Density Clustering

d0 d1 d2 … dn

β0β1β2 … βn

Rasterize hair strands


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 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 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 Clustering

d0 d1 d2 … dn

β0β1β2 … βn

Clustering of di’s

K-means

(while rasterizing)

Histogram bins

μ = mean

σ = standard dev

μ

μ


s

t

Density Clustering

d0 d1 d2 … dn

Fill bins

β0β1β2 … βn

s


s

t

Density Clustering

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

Density Clustering

d0 d1 d2 … dn

Fill bins

β0β1β2 … βn

s

Integrate

s

Exp

s


Rendering Overview

  • For light source view

    • Compute initial clusters

    • Rasterize  K-means

    • Construct bins

    • Fill histogram bins

    • Integrate σt


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

all intersections

along ray

Ground truth

Uniform (8-bins)

Non-uniform (4-means clustering)


Qualitative Comparison

Our method

(4 clusters)

Opacity Shadow Mapping

[Kim et al. ’01]

(256 slices)


Qualitative Comparison

Our method

(4 clusters)

Opacity Shadow Mapping

[Kim et al. ’01]

(256 slices)


Demo


Conclusion

  • Realistic self-shadowing

  • Interactive rates

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

    • Order of magnitude speedup Opacity Sh. Maps


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

The first author gratefully acknowledges the

European Commission (European Regional Development Fund).


Qualitative Comparison

Our method

(4 clusters)

Opacity Shadow Mapping

[Kim et al. ’01]

(256 slices)


Qualitative Comparison

Our method

(4 clusters)

Opacity Shadow Mapping

[Kim et al. ’01]

(256 slices)


Qualitative Comparison

Our method

(4 clusters)

Opacity Shadow Mapping

[Kim et al. ’01]

(256 slices)


Qualitative Comparison

N=256

N=64

N=16

N=4

Opacity Shadow Mapping

[Kim et al. ’01]

(N slices)

Our method

(4 clusters)


Qualitative Comparison

N=256

N=64

N=16

N=4

Opacity Shadow Mapping

[Kim et al. ’01]

(N slices)

Our method

(4 clusters)


Qualitative Comparison

N=256

N=64

N=16

N=4

Opacity Shadow Mapping

[Kim et al. ’01]

(N slices)

Our method

(4 clusters)


Qualitative Comparison

Our method

(4 clusters)


Qualitative Comparison

Opacity Shadow Mapping

[Kim et al. ’01]

(256 slices)


  • Login