hardware-accelerated rendering of antialiased shadows with shadow maps stefan brabec and hans-peter...

Post on 05-Jan-2016

212 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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

top related