1 / 52

A Self Shadow Algorithm for Dynamic Hair using Density Clustering

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

shae
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. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 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

  2. 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

  3. Demo

  4. Some more results

  5. Self-Shadows for Hair • Canonical solutions • Shadow Volume [Crow ’77] • Shadow Mapping [Williams ’78]

  6. Self-Shadows for Hair • Canonical solutions • Shadow Volume [Crow ’77] • Shadow Mapping [Williams ’78] • Problems • Geometric complexity • Hair strand ≤ pixel → aliasing

  7. Shadow Mapping light source view shadow map [Williams et al. ’78]

  8. Shadow Mapping light source view depth( ) shadow map depth( ) > depth( )  shadowed [Williams et al. ’78]

  9. Shadow Mapping 1D visibility function [Williams et al. ’78]

  10. area a = hair area pixel Deep Shadow Maps 1D visibility function [Lokovic et al. ’00]

  11. 1D visibility function Deep Shadow Maps compression Used during offline rendering [Lokovic et al. ’00]

  12. Opacity Shadow Maps 1D visibility function Near interactive performance Regular sampling [Kim et al. ’01] Images from [Kim et al. ‘01]

  13. Overview of our approach

  14. Overview of our approach

  15. s t s - s dt ò t = V ( s ) e 0 Hair as a Density Field density

  16. s t s - s dt ò t = V ( s ) e 0 Hair as a Density Field density

  17. s t s - s dt ò t = V ( s ) e 0 Hair as a Density Field density

  18. 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

  19. 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

  20. Density Clustering • Density estimation  histogram s s Our approach: non-uniform • Uniform • Opacity Shadow Mapping [Kim et al. ’01]

  21. Density Clustering

  22. Density Clustering Rasterize hair strands

  23. Density Clustering Rasterize hair strands Pre-filtering

  24. Density Clustering d0 β0 Rasterize hair strands Intersection at depth d0 with weight β0

  25. Density Clustering d0 β0 Rasterize hair strands

  26. Density Clustering d0 d1 β0β1 Rasterize hair strands

  27. Density Clustering d0 d1 d2 β0β1β2 Rasterize hair strands

  28. Density Clustering d0 d1 d2 … dn β0β1β2 … βn Rasterize hair strands

  29. 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

  30. 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

  31. 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

  32. Density Clustering d0 d1 d2 … dn β0β1β2 … βn Clustering of di’s K-means (while rasterizing) Histogram bins μ = mean σ = standard dev μ μ ~σ ~σ

  33. s t Density Clustering d0 d1 d2 … dn Fill bins β0β1β2 … βn s

  34. s t Density Clustering d0 d1 d2 … dn Fill bins β0β1β2 … βn s

  35. 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

  36. Rendering Overview • For light source view • Compute initial clusters • Rasterize  K-means • Construct bins • Fill histogram bins • Integrate σt

  37. 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

  38. Conceptual Comparison all intersections along ray Ground truth Uniform (8-bins) Non-uniform (4-means clustering)

  39. Qualitative Comparison Our method (4 clusters) Opacity Shadow Mapping [Kim et al. ’01] (256 slices)

  40. Qualitative Comparison Our method (4 clusters) Opacity Shadow Mapping [Kim et al. ’01] (256 slices)

  41. Demo

  42. Conclusion • Realistic self-shadowing • Interactive rates • 200K line segments @ 3Hz (scales linearly) • Order of magnitude speedup Opacity Sh. Maps

  43. 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, …

  44. Thank you for your attention The first author gratefully acknowledges the European Commission (European Regional Development Fund).

  45. Qualitative Comparison Our method (4 clusters) Opacity Shadow Mapping [Kim et al. ’01] (256 slices)

  46. Qualitative Comparison Our method (4 clusters) Opacity Shadow Mapping [Kim et al. ’01] (256 slices)

  47. Qualitative Comparison Our method (4 clusters) Opacity Shadow Mapping [Kim et al. ’01] (256 slices)

  48. Qualitative Comparison N=256 N=64 N=16 N=4 Opacity Shadow Mapping [Kim et al. ’01] (N slices) Our method (4 clusters)

  49. Qualitative Comparison N=256 N=64 N=16 N=4 Opacity Shadow Mapping [Kim et al. ’01] (N slices) Our method (4 clusters)

  50. Qualitative Comparison N=256 N=64 N=16 N=4 Opacity Shadow Mapping [Kim et al. ’01] (N slices) Our method (4 clusters)

More Related