Hardware-accelerated Rendering of Antialiased Shadows With Shadow Maps Stefan Brabec and Hans-Peter...
-
Upload
isaac-campbell -
Category
Documents
-
view
212 -
download
0
Transcript of Hardware-accelerated Rendering of Antialiased Shadows With Shadow Maps Stefan Brabec and Hans-Peter...
Hardware-accelerated Hardware-accelerated Rendering of Antialiased Rendering of Antialiased
Shadows With Shadow MapsShadows With Shadow MapsStefan Brabec and Hans-Peter Seidel
Max-Planck-Institut für Informatik
Saarbrücken, Germany
Stefan Brabec, MPI Informatik
OverviewOverview
IntroductionShadow mapping using graphics hardwareHardware-based percentage closer filteringA faster approachResultsConclusions
Stefan Brabec, MPI Informatik
IntroductionIntroduction
Hardware-accelerated rendering mostlydominated by local effects– Triangle through-put– Fast lighting & texturing
Most important global effect are shadows– Two main classes of shadow algorithms
Shadow Volumes [Crow ’77] Shadow Maps [Williams ’78]
Stefan Brabec, MPI Informatik
Shadow MappingShadow Mapping
Sampling based approach– Generate depth map from light source position
Store depth values of frontmost pixels
– Final rendering pass Foreach pixel seen by the camera:
– Transform to light source coordinate system
– Compare corresponding entry in depth mapwith transformed camera depth
Stefan Brabec, MPI Informatik
Shadow MappingShadow Mapping
Shadow Maps – Make their way to hardware
SGI InfiniteReality, NVIDIA GeForce3, ATI
– Implemented as special texture map operation Compare value at (s/q,t/q) with r/q -> result 1 or 0
– Can also be implemented using standard OpenGL
Stefan Brabec, MPI Informatik
Shadow MappingShadow Mapping
Pros:– Does not depend on scene geometry– Can be implemented using graphics-hardware
Cons:– Sampling problems (aliasing)
High resolution depth maps Filtering
Stefan Brabec, MPI Informatik
Shadow MappingShadow Mapping
Percentage closer filtering [Reeves `87]– Filtering depth values makes no sense – Perform shadow test before filtering
Stefan Brabec, MPI Informatik
Shadow MappingShadow Mapping
Our Shadow Mapping Approach– Render scene as seen by light source– Encode depth values in alpha channel
– Project this texture into the final scene– Subtract depth values to determine lit pixels
Stefan Brabec, MPI Informatik
Shadow MappingShadow Mapping
1D ramp texturebrings depth tocolor values
Stefan Brabec, MPI Informatik
Hardware-based PCFHardware-based PCF
How can Reeves’ scheme be adopted for hardware-based shadow mapping ?
Idea: – Generate multi-channel depth map
where each entry contains also valuesof neighborhood pixels
Stefan Brabec, MPI Informatik
Shadow MappingShadow Mapping
Problem: 1D ramp texture can only use 256 depth values because of frame buffer depth– Only for scenes with moderate complexity
But: 16 bits possible with NVIDIA’sregister combiners– Use two color channels (high & low 8 bits)– See NVIDIA website for more details
Stefan Brabec, MPI Informatik
Hardware-based PCFHardware-based PCF
Multi-channel shadow map– Use RGBA instead of alpha channel only
4 values to sample a 2x2 region Increases effective shadow map resolution by a factor of 2
in each dimension
– Shadow map generation: Render scene four times where in each pass
– One channel (R,G,B or A) is selected
– Image-plane is jittered (stratified sampling) Copy RGBA image to texture
Stefan Brabec, MPI Informatik
Hardware-based PCFHardware-based PCF
Stratified sampling and pixel packing
Red Green
Blue
Alpha
Stefan Brabec, MPI Informatik
Hardware-based PCFHardware-based PCF
Computing the percentage of shadowing– Final pass using all four channels
R = camera_z – light_z_sample_1 G = camera_z – light_z_sample_2 B = camera_z – light_z_sample_3 A = camera_z – light_z_sample_4
– Channel is in shadow if value > 0
Stefan Brabec, MPI Informatik
Hardware-based PCFHardware-based PCF
Computing the percentage of shadowing– Implemented using OpenGL Imaging Subset
R
G
B
A
0 64 64 64 64
0 64 64 64 64
0 64 64 64 64
0 63 63 63 63
RGBA Color Table Color Matrix
R = unused
G = unused
B = unused
A = R+G+B+A
PercentageShadow inAlpha !
64,63 corresponds to 25 % shadowSums up to 255 for full shadow
Stefan Brabec, MPI Informatik
Hardware-based PCFHardware-based PCF
Larger filter sizes possible– Split up into parts of max. 4 components – Sum up shadow contributions using the
accumulation buffer
Problem:– Number of rendering passes (scene geometry)
not really practical for dynamic scenes
Stefan Brabec, MPI Informatik
Fast PCFFast PCF
Problem: – Previous algorithm needs four passes
only for shadow map generation Unsuitable for very complex scenes
Fast PCF:– Use only one rendering pass and collect
neighborhood pixels
Stefan Brabec, MPI Informatik
Fast PCFFast PCF
Fast PCF filtering and pixel packing
Red Green
Blue Alpha
Stefan Brabec, MPI Informatik
Fast PCF Fast PCF
Collect pixels using convolution
Currently the only hardware-acceleratedoperation to include information from adjacent pixels
Stefan Brabec, MPI Informatik
Fast PCFFast PCF
Center pixel consists of RGBA values taken from lower-left 2x2 region
Use larger (3x3) filter for best hardwaresupport
Assemble pixels using neighborhood channels
Stefan Brabec, MPI Informatik
Fast PCFFast PCF
Texture coordinate offset– Shift center pixel to be
centered in 2x2 region
ds
2,
2
dtds
Stefan Brabec, MPI Informatik
Fast PCFFast PCF
Fast PCF only uses one rendering passfor shadow map generation– Suitable for larger filter sizes– Example: 4x4 footprint
Four passes which will sample the lower right, lower left, upper right and upper left2x2 region
Results in 4*5=20 shadowing levels Four shadow map textures used
Stefan Brabec, MPI Informatik
ResultsResults
without filtering
Stefan Brabec, MPI Informatik
ResultsResults
normal PCF (filter size 2x2)
Stefan Brabec, MPI Informatik
ResultsResults
fast PCF (filter size 2x2)
Stefan Brabec, MPI Informatik
ResultsResults
real PCF vs. fast PCF
Stefan Brabec, MPI Informatik
ResultsResults
fast,multipass PCF (filter size 4x4)
Stefan Brabec, MPI Informatik
ResultsResultsTimings & Overview
No filtering
PCF 2x2
Fast PCF 2x2
PCF 4x4
30 fps
10 fps
20 fps
< 0.5 fps
1 pass
4 passes
1 pass
16 passes
2 levels
5 levels
5 levels
20 levels
Fast PCF 4x4 5 fps 4 passes 20 levels
Machine: SGI Octane VPro/8Image Resolution: 800x600Shadow Map: 512x512Polygons: 7000
Frame rate Generation Shadowing
Stefan Brabec, MPI Informatik
no filtering
Stefan Brabec, MPI Informatik
fast PCF (filter size 2x2)
Stefan Brabec, MPI Informatik
ConclusionsConclusions
Benefits:– Good-looking, anti-aliased shadows– Hardware-based (fast)– Standard OpenGL
Drawbacks:– OpenGL Imaging Subset not everywhere available– Depth to color mapping needs more than
8 bits per channel for complex scenes
Stefan Brabec, MPI Informatik
ConclusionsConclusions
Future Work:– Now: only constant filter sizes– Better: mipmap-like method to compute filter size
using the projected area
Stefan Brabec, MPI Informatik
Thank You !Thank You !
Visit us athttp://www.mpi-sb.mpg.de
Max-Planck-Institut für InformatikComputer Graphics Group