Hardware-accelerated Rendering of Antialiased Shadows With Shadow Maps Stefan Brabec and Hans-Peter...

33
Hardware-accelerated Hardware-accelerated Rendering of Rendering of Antialiased Shadows Antialiased Shadows With Shadow Maps With Shadow Maps Stefan Brabec and Hans- Peter Seidel Max-Planck-Institut für Informatik Saarbrücken, Germany

Transcript of Hardware-accelerated Rendering of Antialiased Shadows With Shadow Maps Stefan Brabec and Hans-Peter...

Page 1: Hardware-accelerated Rendering of Antialiased Shadows With Shadow Maps Stefan Brabec and Hans-Peter Seidel Max-Planck-Institut für Informatik Saarbrücken,

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

Page 2: Hardware-accelerated Rendering of Antialiased Shadows With Shadow Maps Stefan Brabec and Hans-Peter Seidel Max-Planck-Institut für Informatik Saarbrücken,

Stefan Brabec, MPI Informatik

OverviewOverview

IntroductionShadow mapping using graphics hardwareHardware-based percentage closer filteringA faster approachResultsConclusions

Page 3: Hardware-accelerated Rendering of Antialiased Shadows With Shadow Maps Stefan Brabec and Hans-Peter Seidel Max-Planck-Institut für Informatik Saarbrücken,

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]

Page 4: Hardware-accelerated Rendering of Antialiased Shadows With Shadow Maps Stefan Brabec and Hans-Peter Seidel Max-Planck-Institut für Informatik Saarbrücken,

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

Page 5: Hardware-accelerated Rendering of Antialiased Shadows With Shadow Maps Stefan Brabec and Hans-Peter Seidel Max-Planck-Institut für Informatik Saarbrücken,

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

Page 6: Hardware-accelerated Rendering of Antialiased Shadows With Shadow Maps Stefan Brabec and Hans-Peter Seidel Max-Planck-Institut für Informatik Saarbrücken,

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

Page 7: Hardware-accelerated Rendering of Antialiased Shadows With Shadow Maps Stefan Brabec and Hans-Peter Seidel Max-Planck-Institut für Informatik Saarbrücken,

Stefan Brabec, MPI Informatik

Shadow MappingShadow Mapping

Percentage closer filtering [Reeves `87]– Filtering depth values makes no sense – Perform shadow test before filtering

Page 8: Hardware-accelerated Rendering of Antialiased Shadows With Shadow Maps Stefan Brabec and Hans-Peter Seidel Max-Planck-Institut für Informatik Saarbrücken,

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

Page 9: Hardware-accelerated Rendering of Antialiased Shadows With Shadow Maps Stefan Brabec and Hans-Peter Seidel Max-Planck-Institut für Informatik Saarbrücken,

Stefan Brabec, MPI Informatik

Shadow MappingShadow Mapping

1D ramp texturebrings depth tocolor values

Page 10: Hardware-accelerated Rendering of Antialiased Shadows With Shadow Maps Stefan Brabec and Hans-Peter Seidel Max-Planck-Institut für Informatik Saarbrücken,

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

Page 11: Hardware-accelerated Rendering of Antialiased Shadows With Shadow Maps Stefan Brabec and Hans-Peter Seidel Max-Planck-Institut für Informatik Saarbrücken,

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

Page 12: Hardware-accelerated Rendering of Antialiased Shadows With Shadow Maps Stefan Brabec and Hans-Peter Seidel Max-Planck-Institut für Informatik Saarbrücken,

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

Page 13: Hardware-accelerated Rendering of Antialiased Shadows With Shadow Maps Stefan Brabec and Hans-Peter Seidel Max-Planck-Institut für Informatik Saarbrücken,

Stefan Brabec, MPI Informatik

Hardware-based PCFHardware-based PCF

Stratified sampling and pixel packing

Red Green

Blue

Alpha

Page 14: Hardware-accelerated Rendering of Antialiased Shadows With Shadow Maps Stefan Brabec and Hans-Peter Seidel Max-Planck-Institut für Informatik Saarbrücken,

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

Page 15: Hardware-accelerated Rendering of Antialiased Shadows With Shadow Maps Stefan Brabec and Hans-Peter Seidel Max-Planck-Institut für Informatik Saarbrücken,

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

Page 16: Hardware-accelerated Rendering of Antialiased Shadows With Shadow Maps Stefan Brabec and Hans-Peter Seidel Max-Planck-Institut für Informatik Saarbrücken,

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

Page 17: Hardware-accelerated Rendering of Antialiased Shadows With Shadow Maps Stefan Brabec and Hans-Peter Seidel Max-Planck-Institut für Informatik Saarbrücken,

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

Page 18: Hardware-accelerated Rendering of Antialiased Shadows With Shadow Maps Stefan Brabec and Hans-Peter Seidel Max-Planck-Institut für Informatik Saarbrücken,

Stefan Brabec, MPI Informatik

Fast PCFFast PCF

Fast PCF filtering and pixel packing

Red Green

Blue Alpha

Page 19: Hardware-accelerated Rendering of Antialiased Shadows With Shadow Maps Stefan Brabec and Hans-Peter Seidel Max-Planck-Institut für Informatik Saarbrücken,

Stefan Brabec, MPI Informatik

Fast PCF Fast PCF

Collect pixels using convolution

Currently the only hardware-acceleratedoperation to include information from adjacent pixels

Page 20: Hardware-accelerated Rendering of Antialiased Shadows With Shadow Maps Stefan Brabec and Hans-Peter Seidel Max-Planck-Institut für Informatik Saarbrücken,

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

Page 21: Hardware-accelerated Rendering of Antialiased Shadows With Shadow Maps Stefan Brabec and Hans-Peter Seidel Max-Planck-Institut für Informatik Saarbrücken,

Stefan Brabec, MPI Informatik

Fast PCFFast PCF

Texture coordinate offset– Shift center pixel to be

centered in 2x2 region

ds

2,

2

dtds

Page 22: Hardware-accelerated Rendering of Antialiased Shadows With Shadow Maps Stefan Brabec and Hans-Peter Seidel Max-Planck-Institut für Informatik Saarbrücken,

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

Page 23: Hardware-accelerated Rendering of Antialiased Shadows With Shadow Maps Stefan Brabec and Hans-Peter Seidel Max-Planck-Institut für Informatik Saarbrücken,

Stefan Brabec, MPI Informatik

ResultsResults

without filtering

Page 24: Hardware-accelerated Rendering of Antialiased Shadows With Shadow Maps Stefan Brabec and Hans-Peter Seidel Max-Planck-Institut für Informatik Saarbrücken,

Stefan Brabec, MPI Informatik

ResultsResults

normal PCF (filter size 2x2)

Page 25: Hardware-accelerated Rendering of Antialiased Shadows With Shadow Maps Stefan Brabec and Hans-Peter Seidel Max-Planck-Institut für Informatik Saarbrücken,

Stefan Brabec, MPI Informatik

ResultsResults

fast PCF (filter size 2x2)

Page 26: Hardware-accelerated Rendering of Antialiased Shadows With Shadow Maps Stefan Brabec and Hans-Peter Seidel Max-Planck-Institut für Informatik Saarbrücken,

Stefan Brabec, MPI Informatik

ResultsResults

real PCF vs. fast PCF

Page 27: Hardware-accelerated Rendering of Antialiased Shadows With Shadow Maps Stefan Brabec and Hans-Peter Seidel Max-Planck-Institut für Informatik Saarbrücken,

Stefan Brabec, MPI Informatik

ResultsResults

fast,multipass PCF (filter size 4x4)

Page 28: Hardware-accelerated Rendering of Antialiased Shadows With Shadow Maps Stefan Brabec and Hans-Peter Seidel Max-Planck-Institut für Informatik Saarbrücken,

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

Page 29: Hardware-accelerated Rendering of Antialiased Shadows With Shadow Maps Stefan Brabec and Hans-Peter Seidel Max-Planck-Institut für Informatik Saarbrücken,

Stefan Brabec, MPI Informatik

no filtering

Page 30: Hardware-accelerated Rendering of Antialiased Shadows With Shadow Maps Stefan Brabec and Hans-Peter Seidel Max-Planck-Institut für Informatik Saarbrücken,

Stefan Brabec, MPI Informatik

fast PCF (filter size 2x2)

Page 31: Hardware-accelerated Rendering of Antialiased Shadows With Shadow Maps Stefan Brabec and Hans-Peter Seidel Max-Planck-Institut für Informatik Saarbrücken,

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

Page 32: Hardware-accelerated Rendering of Antialiased Shadows With Shadow Maps Stefan Brabec and Hans-Peter Seidel Max-Planck-Institut für Informatik Saarbrücken,

Stefan Brabec, MPI Informatik

ConclusionsConclusions

Future Work:– Now: only constant filter sizes– Better: mipmap-like method to compute filter size

using the projected area

Page 33: Hardware-accelerated Rendering of Antialiased Shadows With Shadow Maps Stefan Brabec and Hans-Peter Seidel Max-Planck-Institut für Informatik Saarbrücken,

Stefan Brabec, MPI Informatik

Thank You !Thank You !

Visit us athttp://www.mpi-sb.mpg.de

Max-Planck-Institut für InformatikComputer Graphics Group