1 Shadows (2) ©Anthony Steed 2002
2 Overview n Shadows – Umbra Recap n Penumbra Analytical v. Sampling n Analytical Aspect graphs Discontinuity meshing n Sampling Accumulation buffer Convolution
3 Shadows
4 Analytical v. Sampling n Analytical Find all boundaries within the penumbra. Done almost exclusively for polygonal light sources n Sampling Approximate solution that treat the light source as a set of points. Any shape source is possible.
5 Extremal Shadow Boundaries n What is the potential area of the penumbra and umbra? n For penumbra: Bounded by planes define by a pair of source vertex and occluder edge where the source is in the front space and the occluder on the back n For umbra: Similarly defined planes, but where source and occluder are in the back space
6 Extremal Shadow Boundaries
7 Shading Using Extremal Planes n If you write these planes into object space n We can use a scan-conversion as we have before At each pixel we must estimate the proportion of the light source that can be seen Usually done with SVBSP tree(s)
8 More Analysis n Borrowing aspect graphs from computer vision n Define critical surfaces where visual events occur EV surfaces: planes defined by edge and vertex EEE surfaces: quadratic surfaces defined by three non-adjacent edges. n Penumbra volumes so far have used EV only
9 EV and EEE Surfaces
10 Discontinuity Meshing n Discontinuities of the illumination of a polygon occur at the places where EV and EEE surfaces intersect the polygon n Discontinuities occur at different degrees n Discontinuities are written into the geometry of the scene as before
11 Shadows and Discontinuities
12 Storing the Discontinuity Mesh n DM-Tree which uses both 2D BSP tree and winged edge data structure
13 George Drettakis
14 George Drettakis
15 David Hedley
16 David Hedley
17 Sampling Methods n Model an area light source by multiple n point light sources n At rendering time render n times moving the light each time n Compose the image into an accumulation buffer
18 Accumulation Buffer n Yet another set of hardware buffers n Can be cleared (like the colour buffer) n You repeatedly copy the colour buffer to it, using a 1/N scale each time n After N iterations, the A-buffer holds the average of the N frames n Obviously requires precision! (Spend more $$)
19 Example
20 Recap n Penumbra is difficult to render correctly Boundaries are formed by very complex shapes n Discontinuity meshing is an analytical solution Difficult to implement n Sampling is obviously less accurate Potentially fast enough (soon) to do in real- time