330 likes | 559 Views
Hardware-accelerated Rendering of Antialiased Shadows With Shadow Maps. Stefan Brabec and Hans-Peter Seidel Max-Planck-Institut f ür Informatik Saarbrücken, Germany. Overview. Introduction Shadow mapping using graphics hardware Hardware-based percentage closer filtering A faster approach
E N D
Hardware-accelerated Rendering of Antialiased Shadows With Shadow Maps Stefan Brabec and Hans-Peter Seidel Max-Planck-Institut für Informatik Saarbrücken, Germany
Overview • Introduction • Shadow mapping using graphics hardware • Hardware-based percentage closer filtering • A faster approach • Results • Conclusions Stefan Brabec, MPI Informatik
Introduction • 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 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 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 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 Mapping • Percentage closer filtering [Reeves `87] • Filtering depth values makes no sense • Perform shadow test before filtering Stefan Brabec, MPI Informatik
Shadow 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 Mapping • 1D ramp texturebrings depth tocolor values Stefan Brabec, MPI Informatik
Hardware-based PCF • How can Reeves’ scheme be adopted for hardware-based shadow mapping ? • Idea: • Generate multi-channel depth mapwhere each entry contains also valuesof neighborhood pixels Stefan Brabec, MPI Informatik
Shadow 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 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 2in 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 PCF • Stratified sampling and pixel packing Stefan Brabec, MPI Informatik
Hardware-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 PCF • Computing the percentage of shadowing • Implemented using OpenGL Imaging Subset 64,63 corresponds to 25 % shadow Sums up to 255 for full shadow Stefan Brabec, MPI Informatik
Hardware-based PCF • Larger filter sizes possible • Split up into parts of max. 4 components • Sum up shadow contributions using theaccumulation buffer • Problem: • Number of rendering passes (scene geometry)not really practical for dynamic scenes Stefan Brabec, MPI Informatik
Fast PCF • Problem: • Previous algorithm needs four passesonly for shadow map generation • Unsuitable for very complex scenes • Fast PCF: • Use only one rendering pass and collectneighborhood pixels Stefan Brabec, MPI Informatik
Fast PCF • Fast PCF filtering and pixel packing Stefan Brabec, MPI Informatik
Fast PCF • Collect pixels using convolution • Currently the only hardware-acceleratedoperation to include information from adjacent pixels Stefan Brabec, MPI Informatik
Fast PCF • Assemble pixels using neighborhood channels • Center pixel consists of RGBA values taken from lower-left 2x2 region • Use larger (3x3) filter for best hardwaresupport Stefan Brabec, MPI Informatik
Fast PCF • Texture coordinate offset • Shift center pixel to be centered in 2x2 region Stefan Brabec, MPI Informatik
Fast 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
Results without filtering Stefan Brabec, MPI Informatik
Results normal PCF (filter size 2x2) Stefan Brabec, MPI Informatik
Results fast PCF (filter size 2x2) Stefan Brabec, MPI Informatik
Results real PCF vs. fast PCF Stefan Brabec, MPI Informatik
Results fast,multipass PCF (filter size 4x4) Stefan Brabec, MPI Informatik
Results • Timings & Overview Machine: SGI Octane VPro/8Image Resolution: 800x600Shadow Map: 512x512Polygons: 7000 Frame rate Generation Shadowing No filtering 30 fps 1 pass 2 levels PCF 2x2 10 fps 4 passes 5 levels Fast PCF 2x2 20 fps 1 pass 5 levels PCF 4x4 < 0.5 fps 16 passes 20 levels Fast PCF 4x4 5 fps 4 passes 20 levels Stefan Brabec, MPI Informatik
no filtering Stefan Brabec, MPI Informatik
fast PCF (filter size 2x2) Stefan Brabec, MPI Informatik
Conclusions • 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
Conclusions • Future Work: • Now: only constant filter sizes • Better: mipmap-like method to compute filter sizeusing the projected area Stefan Brabec, MPI Informatik
Thank You ! Visit us at http://www.mpi-sb.mpg.de Max-Planck-Institut für Informatik Computer Graphics Group Stefan Brabec, MPI Informatik