Docstoc

Hardware-accelerated Rendering of Antialiased Shadows With

Document Sample
Hardware-accelerated Rendering of Antialiased Shadows With  Powered By Docstoc
					          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 mostly
    dominated 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 map
             with 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 texture
    brings depth to
    color values




                       Stefan Brabec, MPI Informatik
        Hardware-based PCF
 How can Reeves’ scheme be adopted
  for hardware-based shadow mapping ?
 Idea:
    – Generate multi-channel depth map
     where each entry contains also values
     of 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’s
    register 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 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 PCF
   Stratified sampling and pixel packing
                                      Alpha

                        Blue




                        Red          Green


                                  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
           RGBA Color Table        Color Matrix
R           0 64 64 64 64           R = unused
G           0 64 64 64 64           G = unused                    Percentage
                                                                  Shadow in
B           0 64 64 64 64           B = unused                    Alpha !
A           0 63 63 63 63           A = R+G+B+A


             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 the
      accumulation 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 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 PCF
   Fast PCF filtering and pixel packing



                         Blue    Alpha




                         Red     Green


                                  Stefan Brabec, MPI Informatik
                 Fast PCF
   Collect pixels using convolution




   Currently the only hardware-accelerated
    operation 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 hardware
  support
                                  Stefan Brabec, MPI Informatik
                   Fast PCF
   Texture coordinate offset
    – Shift center pixel to be
      centered in 2x2 region
       ds dt 
       , 
       2 2



                                 ds


                                  Stefan Brabec, MPI Informatik
                      Fast PCF
   Fast PCF only uses one rendering pass
    for 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 left
         2x2 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/8
Image Resolution:        800x600
Shadow Map:              512x512
Polygons:                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 size
      using 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

				
DOCUMENT INFO
Shared By:
Categories:
Tags:
Stats:
views:2
posted:8/29/2012
language:English
pages:33