Presentation is loading. Please wait.

Presentation is loading. Please wait.

1 A Hierarchical Shadow Volume Algorithm Timo Aila 1,2 Tomas Akenine-Möller 3 1 Helsinki University of Technology 2 Hybrid Graphics 3 Lund University.

Similar presentations


Presentation on theme: "1 A Hierarchical Shadow Volume Algorithm Timo Aila 1,2 Tomas Akenine-Möller 3 1 Helsinki University of Technology 2 Hybrid Graphics 3 Lund University."— Presentation transcript:

1 1 A Hierarchical Shadow Volume Algorithm Timo Aila 1,2 Tomas Akenine-Möller 3 1 Helsinki University of Technology 2 Hybrid Graphics 3 Lund University

2 2 Outline Brief intro to shadow volumes  fillrate problem, existing solutions Our solution  idea  implementation Results Q&A

3 3 Shadow volumes [Crow77] Shadow volumes define closed volumes of space that are in shadow infinitesimal light source shadow caster = light cap extruded side quads dark cap

4 4 Is point inside shadow volume? 1. Pick reference point R outside shadow volume any such point is OK 2. Span line from R to point to be classified 3. Compute sum of enter (+1) and exit (-1) events R P2 P3 P1 2D illustration: shadow volume

5 5 Using graphics hardware R at ∞ behind pixel (z-fail) [Bilodeau&Songy, Carmack]  infinity always outside SVs – robust  must not clip to far plane of view frustum  sum hidden events to stencil buffer, sign from backface culling 2D illustration: camera R visible samples (or pixels) view frustum + + + - - shadow volume

6 6 Amount of pixel processing Adapted from [Chan and Durand 2004]

7 7 Fillrate problem 50+ fps without shadows on ATI Radeon 9800XT at 1280x1024, 1 sample/pixel 1 fps when shadow volumes rasterized  2.2 billion pixels per frame

8 8 Existing solutions (1/2) CC shadow volumes [Lloyd et al. 2004]  draw SVs only where receivers exist  good when lots of empty space Hybrid shadow maps and volumes [Chan&Durand 2004]  use SVs only at shadow boundaries  boundary pixels determined using shadow map  artifacts due to limited shadow map resolution

9 9 Existing solutions (2/2) Depth bounds [Nvidia 2003]  application supplies min & max depth values separately for each shadow volume  rasterize shadow volume only when visible geometry between [min,max]  optimal bounds hard to compute camera minmax 2D illustration: shadow volume visible pixels

10 10 Outline Brief intro to shadow volumes  fillrate problem, existing solutions Our solution  idea  implementation Results Q&A

11 11 Reference image

12 12 Shadow volume algorithm executed once per 8x8 pixel tile

13 13 Green tiles may contain shadow boundary - other tiles were correct

14 14 Low-res (gray) + per-pixel computed boundaries (dark)

15 15 How to detect shadow boundaries? Two facts about shadow volumes 1. always closed 2. SV triangles mark potential shadow boundaries If 3D volume in scene not intersected by shadow volume triangles  fully lit or fully in shadow  single sample classifies entire volume

16 16 Outline Brief intro to shadow volumes  fillrate problem, existing solutions Our solution  idea  implementation Results Q&A

17 17 Detecting boundary tiles Bound tile with axis-aligned bounding box  8x8 pixel region  Z min, Z max Triangle vs. AA Box intersection test 1. low-resolution rasterization 2. Z min and Z max tests 8 8 pixels Z ma x Z min

18 18 Fast update of non-boundary tiles Copy low-res shadows to stencil buffer  writing 64 per-pixel values would be slow Two-level stencil buffer saves the day  maintain [S min, S max ] per tile  always test the higher level first  often no need to validate per-pixel values  stencil values of non-boundary tiles are constant

19 19 Implementation – Stage 1 Buffers built separately for each shadow volume Classifications ready when entire SV processed  application marks begin/end of shadow volumes Low-res shadows Low-resolution rasterizer Boundary? Per-tile operations SV triangles

20 20 Implementation – Stage 2 Low-res shadows Per-pixel rasterizer Copy to 2-level stencil Stencil ops Yes No Low-resolution rasterizer Boundary? SV triangles boundary tile? Update 2-level stencil

21 21 Alternative implementations Two pass  Pass 1 = Stage 1  Pass 2 = Stage 2  How to keep pixel units busy during Stage 1? maybe assign per-tile operations to pixel shaders? Single pass  Separate stages using delay stream [Aila et al. 2003]  Stage 2 of current SV executes simultaneously with next SV’s Stage 1

22 22 Hardware resources Two-level stencil buffer Per-tile operations Optionally  delay stream *  duplicate low-res rasterizer & Zmin/Zmax units *  cache for per shadow volume buffers multiple buffers for pipelined operation allocate from external memory * If not already there for occlusion culling purposes

23 23 Outline Brief intro to shadow volumes  fillrate problem, existing solutions Our solution  idea  implementation Results Q&A

24 24 Results – Simple scene (1280x1024) Depth boundsHierarchicalImprovement Ratio in #pixels1.112.711.5 Ratio in bandwidth1.0317.617.2

25 25 Results – Knights (1280x1024) Depth boundsHierarchicalImprovement Ratio in #pixels2.67.42.8 Ratio in bandwidth2.45.62.4

26 26 Results – Powerplant (1280x1024) Depth boundsHierarchicalImprovement Ratio in #pixels2.422.99.5 Ratio in bandwidth2.316.06.9

27 27 Summary Hierarchical rendering method for shadow volumes  significant fillrate savings compared to other hardware methods  also works for soft shadow volumes Future work  would it make sense to extend programmability to per-tile operations?  how many pipeline bubbles are created? requires chip-level simulations

28 28 Thank you! Questions? Acknowledgements  Ville Miettinen, Jacob Ström, Eric Haines, Ulf Assarsson, Lauri Savioja, Jonas Svensson, Ulf Borgenstam, Karl Schultz, 3DR group at Helsinki University of Technology  The National Technology Agency of Finland, Hybrid Graphics, Bitboys, Nokia and Remedy Entertainment  ATI for granting fellowship to Timo (2004-2005)


Download ppt "1 A Hierarchical Shadow Volume Algorithm Timo Aila 1,2 Tomas Akenine-Möller 3 1 Helsinki University of Technology 2 Hybrid Graphics 3 Lund University."

Similar presentations


Ads by Google