Realtime Shadow Mapping Shadow Mapping Shadow mapping uses
- Slides: 17
Real-time Shadow Mapping
Shadow Mapping • Shadow mapping uses two-pass rendering - render depth texture from the light’s point-of-view - render from the eye’s point-of-view using depth texture • Completely image-space implementation - no knowledge of scene’s geometry is required - must deal with aliasing artifacts
(First Pass(1 • The scene is rendered from the light’s point of view into the depth texture
(First Pass(2 • The result is a “depth texture” or “shadow map” - essentially a 2 D function indicating the depth of the closest pixels to the light
Second Pass • The scene is rendered from the eye’s point of view • For each rasterized fragment - determine fragment’s XYZ position relative to the light - this light position should be setup to match the frustum used to create the depth texture - compare the depth value at light position XY in the depth texture to fragment’s light position Z
Depth Texture (Comparison(1 • Two values - A = Z value from depth texture at fragment’s light XY position - B = Z value of fragment’s XYZ light position • If B is greater than A, then there must be something closer to the light than the fragment so the fragment is in shadow • If A and B are approximately equal, the fragment is lit
Depth Texture (Comparison(2
Depth Texture (Comparison(3 The A < B shadowed fragment case
Depth Texture (Comparison(4 The A = B shadowed fragment case
Using Projective (Texturing(1
Using Projective (Texturing(2 • Normal 2 D texture mapping uses (s, t) coordinates • Now consider homogeneous texture coordinates - r/q holds the distance from the light - (s, t, r, q) --> (s/q, t/q, r/q) - similar to homogeneous clip coordinates where (x, y, z, w) = (x/w, y/w, z/w) • Next compare texture value at (s/q, t/q) to value r/q - if texture[s/q, t/q] r/q then not shadowed - if texture[s/q, t/q] < r/q then shadowed
Ambient Shadows • Improvement for completely black shadows
Near and Far planes • Distance between near and far planes should be minimized for better precision of Z value
Z-Fighting • Problem take place when eye space pixel coordinates are transformed into light space to get the respective depth texture samples due to machine rounding errors in this stage
Aliasing Problems • There is still the problem of aliasing
Summary
Implementation • First pass uses the Open. Scene. Graph library which based on Open. GL • Second pass is done by hardware using cg and glsl language shaders
- Variance shadow mapping
- Shadow mapping techniques
- Perspective shadow mapping
- Variance shadow maps
- Realtime it
- Realtime communications
- Frankfurt realtime
- Realtime streaming protocol
- Ams realtime weather maps central
- Cac realtime
- Simple online and realtime tracking
- Realtime iep
- Realtime big data
- The definition of a real-time system.
- Realtime it
- Realtime interaction
- Realtime etl
- Ecurisa