A Hierarchical Shadow Volume Algorithm - PowerPoint PPT Presentation

1 / 28
About This Presentation
Title:

A Hierarchical Shadow Volume Algorithm

Description:

2D illustration: shadow volume. 5. Using graphics hardware ... 2D illustration: camera. R. visible samples (or pixels) view frustum. shadow volume. 6 ... – PowerPoint PPT presentation

Number of Views:26
Avg rating:3.0/5.0
Slides: 29
Provided by: tomasaken
Category:

less

Transcript and Presenter's Notes

Title: A Hierarchical Shadow Volume Algorithm


1
A Hierarchical Shadow Volume Algorithm
  • Timo Aila1,2
  • Tomas Akenine-Möller3

1Helsinki University of Technology 2Hybrid
Graphics 3Lund University
2
Outline
  • Brief intro to shadow volumes
  • fillrate problem, existing solutions
  • Our solution
  • idea
  • implementation
  • Results
  • QA

3
Shadow volumes Crow77
  • Shadow volumes define closed volumes of space
    that are in shadow

infinitesimallight source
shadow caster light cap
dark cap
extrudedside quads
4
Is point inside shadow volume?
  • Pick reference point R outside shadow volume
  • any such point is OK
  • Span line from R to point to be classified
  • Compute sum of enter (1) and exit (-1) events

P1
shadow volume
R
2D illustration
P2
P3
5
Using graphics hardware
  • R at 8 behind pixel (z-fail) BilodeauSongy,
    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

visible samples (or pixels)
2D illustration

-
camera
R

-

view frustum
shadow volume
6
Amount of pixel processing
Adapted from Chan and Durand 2004
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
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 ChanDurand 2004
  • use SVs only at shadow boundaries
  • boundary pixels determined using shadow map
  • artifacts due to limited shadow map resolution

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
2D illustration
shadow volume
visible pixels
10
Outline
  • Brief intro to shadow volumes
  • fillrate problem, existing solutions
  • Our solution
  • idea
  • implementation
  • Results
  • QA

11
Reference image
12
Shadow volume algorithm executed once per 8x8
pixel tile
13
Green tiles may contain shadow boundary - other
tiles were correct
14
Low-res (gray) per-pixel computed boundaries
(dark)
15
How to detect shadow boundaries?
  • Two facts about shadow volumes
  • always closed
  • 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
Outline
  • Brief intro to shadow volumes
  • fillrate problem, existing solutions
  • Our solution
  • idea
  • implementation
  • Results
  • QA

17
Detecting boundary tiles
  • Bound tile with axis-aligned bounding box
  • 8x8 pixel region
  • Zmin, Zmax
  • Triangle vs. AA Box intersection test
  • low-resolution rasterization
  • Zmin and Zmax tests

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 Smin, Smax 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
Implementation Stage 1
SV triangles
Low-res shadows
Boundary?
Low-resolution rasterizer
Per-tile operations
  • Buffers built separately for each shadow volume
  • Classifications ready when entire SV processed
  • application marks begin/end of shadow volumes

20
Implementation Stage 2
Boundary?
SV triangles
Low-resolution rasterizer
No
Copy to2-level stencil
boundary tile?
Yes
Per-pixel rasterizer
Stencil ops
Update 2-level stencil
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 SVs Stage 1

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
Outline
  • Brief intro to shadow volumes
  • fillrate problem, existing solutions
  • Our solution
  • idea
  • implementation
  • Results
  • QA

24
Results Simple scene (1280x1024)
25
Results Knights (1280x1024)
26
Results Powerplant (1280x1024)
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
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)
Write a Comment
User Comments (0)
About PowerShow.com