Paper explaing the diffrent shadowing techniques?

Moloch

God of Wicked Games
Veteran
I wanna learn about shadow volumes, shadow mapping etc, can someone point me in the right direction?
 
shadow map???maybe you can find it in dx9 runtime sdk,i'am looking for something about softshadow.
 
shadows can be drawn any way you want.

- Dungeon siege : characters are drawn black on white background. That makes a texture that is projected and blended on the ground. The simplest and most widely used technique for dynamic shadows. If you can't render to a texture or don't have the speed you can have a predefined shadow texture (usually a blob).
- Quake 3 : shadows are built in the level, calculated with a raytracing solution. Alternatively you can use a radiosity solution as in Max Payne, since nothing has to be calculated on line (except for the simplest blending of the lightmap with the wall diffuse texture). In Quake 3 characters have a simple blob shadow or an alternate technique where each characters is flatened on the ground and drawn in black. It's very efficient if your terrain is flat. If the shadow is not perfectly black you get overdraw artifacts (see following).
- Stencil shadow : instead of drawing black geometry to simulate the shadow as in Quake 3, you can instead drawing transparent shadows by drawing geometry that only sets one bit in the stencil. If the stencil is non zero then it is in shadow and you rerender the background for this specific stencil value or you simply darken the whole screen with a quad that affects only stenciled regions.
- static geometry shadows. It works for static objects and lighting. you cut your objects along the boundaries of shadows and prebake the vertex colors to take into account the lighting. See Animusic demo by ATI. You can also simulate soft shadows at only geometric processing cost. Works good if the lighting conditions are not too complicated and/or you're not geometry processing limited. Of course the shadows do not affect moving objects but that's the same for all prebaked lighting conditions.
- 3dmark05/Splinter Cell : shadowmaps work good for complicated and dynamic lighting conditions (with not too complicated scene configurations). Each scene is rendered from the light point of view in a depth buffer. Then depth is back projected in the scene and compared against current depth to see if you're in shadow or not. Con : Z-Fighting and aliasing can look pretty bad and Depth buffer can be huge. In Splinter Cell, all the shadowed scenes are tuned "by hand" since perspective shadow maps or other techniques are not reasonable on XBox. Before that, it has been popularized by PIXAR (Toy Story). But the constraints are very different (hand tuned lighting, huge buffers with huge precision, huge number of samples per pixels).
- 3dmark03/Doom 3/DeusEx II: for stencil shadow volumes each casting object is stretched alongs its silhouette and then the corresponding volume is drawn against stencil only. increase or decrease when you enter and the reverse when you exit the volume. The volume intersects real geometry and a face is not drawn if it falls behind. This way by looking at the resulting arithmetic overdraw you know immediately if an object was in shadow or not. This is very costly since your screen can be filled by a lot of overlapping volumes and each draw needs to do a read/modify/write of the depth/stencil surface (even with hierarchical Z !).
- Raytraced shadows (not used in any title.. yet): shadow is calculated only once per pixel and per light source. When shading a pixel (or a vertex), the source is checked against all known occluders, if it falls behind, then the source is in shadow. Major inconvenient is that checking the occluders can be very costly and usually pixel shaders don't have access to the scene configuration (only for the simplest setup).

Etc..
 
You missed off generalised modifier volumes :p

where, like a stencil volume you geenrate a stretched sllhoutte of the object you are rendering, but before rendering the scene you determine the objects that lie inside this volume. If the object lies inside this volume it takes on a second set of parameters - i.e. make it darker, corresponding to the light it blocks brightness. You can actually set it to do anything, like make objects in it transparent or something, but shadowing is the most obvious use for this feature.

sadly it is only possible on a Tiler, like the Neon250 :(

(I nearly put KYRO then LOL)
 
Here are various papers i have on my HD, I most probably have more but i've never sat down and organized any of my files. Some are from Nvidia, some ATI, the zipped word is from PVR, others are from various places i don't remember where... just google. The first set are good overviews, the second are helper texts, third shadow mapping, fourth everything i haven't grouped yet (shadow volumes, soft shadows...)

GDC2K1_Shadows.pdf
Shadows (Word 6).zip
6800_Leagues_Shadows.pdf


projective_texture_mapping.pdf
GDC2K_TexGenNTexMatrix.pdf
GDC_Stencil.ppt

shadow_mapping.pdf
ShadowMapping.pdf
GDC2004_PerspectiveShadowMap.pdf
GDC2K_ogl_shadowmap.pdf
PerspectiveShadowMaps.pdf
FFBG01.pdf

fastShadows.pdf
GDC2003_ShadowVolumes.pdf
realtimesoftshadows.pdf
RobustShadowVolumes.pdf
ShaderX_ShadowExtrusion.pdf
Shadows.pdf
Tom_Forsyth_Practical_Shadows.ppt.zip
smapSV-electronic.pdf
Mitchell_LightShafts.pdf
talk_eg03.ppt
 
Back
Top