4 . 3. Lighting and Shading

27
4.3. LIGHTING AND SHADING Exploration of advanced lighting and shading techniques

description

4 . 3. Lighting and Shading. Exploration of advanced lighting and shading techniques. Shadowing Techniques. Exploration of different shadowing techniques. Video not available in on-line slides. Shadowing Techniques. - PowerPoint PPT Presentation

Transcript of 4 . 3. Lighting and Shading

Page 1: 4 . 3. Lighting and Shading

4.3. LIGHTING AND SHADINGExploration of advanced lighting and shading techniques

Page 2: 4 . 3. Lighting and Shading

SHADOWING TECHNIQUESExploration of different shadowing techniques

Page 3: 4 . 3. Lighting and Shading

Video not available in on-line slides

Page 4: 4 . 3. Lighting and Shading

Shadowing TechniquesApplying shadows to a rendered scene increases realism and provides an important visual cue for object depth and position.

The two most common shadowing approaches within real-time game engines are:•Shadow maps•Shadow volumes

Page 5: 4 . 3. Lighting and Shading

Shadow VolumesThis is a geometry based approach, extruding geometry in the forward direction of the light to generate a closed ‘shadow’ volume.

By testing against the shadow volume the shadowed portions of the scene can be determined (the stencil buffer can be used to record the lit area). Shadow volumes are pixel-accurate and don’t suffer from any aliasing problems. However, the computational cost is geometry dependent and the approach is fill-rate intensive (shadow maps are often faster).

Page 6: 4 . 3. Lighting and Shading

Shadow VolumesView the DirectX SDK Shadow Volume sample

Page 7: 4 . 3. Lighting and Shading

Shadow Maps

A shadow map is a rendering from the light’s perspective where the depths to ‘lit’ fragments are stored.

The shadow map texture is used, when rendering the scene from the camera’s perspective, to compare the distance from the pixel to be lit with the depth value encoded in the shadow map.

If the depth is larger than the value stored in the shadow map then the pixel is in shadow.

Page 8: 4 . 3. Lighting and Shading

Shadow MapsThe quality of the shadow map is dependent upon the size of the generated shadow map.

Page 9: 4 . 3. Lighting and Shading

Shadow Maps: Creating the Shadow Map

• Render the scene from the light's point of view (point light - suitable perspective projection, directional - orthographic projection). The depth map is typically stored as a texture.• As only the depth

information is needed, all unnecessary lighting, texturing, etc. can be excluded from the shadow map render. Not all objects need be drawn to the shadow map, with only important ‘shadow casting’ objects selected.

Page 10: 4 . 3. Lighting and Shading

Shadow Maps: Creating the Shadow Map

• If the light does not move and the shadow casting geometry does not move, then the shadow map need not be recalculated and can be cached/reused. Multiple lights require multiple depth maps.• A depth offset shifting

the objects away from the light is typically applied to remove stitching problems (where the depth map value is very close to the depth of the surface being drawn).

Page 11: 4 . 3. Lighting and Shading

Shadow Maps: Using the Shadow MapWhen drawing the scene from the normal camera viewpoint the shadow map is used to:• Find the position of the pixel as seen from the light• Compares the position-to-light distance to the

stored depth map value • Draw the pixel as in shadow or in light, as needed

Page 12: 4 . 3. Lighting and Shading

Shadow MappingView the DirectX SDK Shadow Mapping example

Page 13: 4 . 3. Lighting and Shading

Shadow Maps: ExtensionsThe principle behind shadow mapping is straightforward. The implementation can be problematic as:• It can be difficult to select an appropriate bias value• It can be hard to remove artefacts at shadow edges

or handle small viewing angles.

Page 14: 4 . 3. Lighting and Shading

Shadow Maps: Extensions

Percentage Closer FilteringThe result of the depth comparison are filtered, e.g. when comparing depths, some depths around the target position are also compared, with the result averaged.

Screen Space Blurred Shadow MappingShadows are rendered to a texture (in screen space) and the texture then blurred and later applied to the screen. Very easy to implement, but can suffer from shadow bleeding and the cost of the extra passes.

Page 15: 4 . 3. Lighting and Shading

Shadow Maps: Extensions

Page 16: 4 . 3. Lighting and Shading

Cascaded Shadow MappingView the DirectX SDK Cascaded Shadow Maps and Variance Shadows examples

Page 17: 4 . 3. Lighting and Shading

AMBIENT OCCLUSION Exploration of in-game ambient occlusion

Page 18: 4 . 3. Lighting and Shading

Ambient Occlusion Ambient occlusion adds realism by taking into account attenuation of light due to occlusion. It attempts to approximate the way light radiates in real life (including off what are normally considered non-reflective surfaces).

Ambient occlusion is a global method (unlike Phong shading which is a local method), meaning the illumination at each point is a function of other geometry in the scene.

Page 19: 4 . 3. Lighting and Shading

Ambient Occlusion Ambient occlusion is most often calculated by casting rays in every direction from the surface. Rays which reach the background or “sky” increase the brightness of the surface, whereas a ray which hits any other object contributes no illumination.

As a result, points surrounded by a large amount of geometry are rendered dark, whereas points with little geometry on the visible hemisphere appear well lit.

Page 20: 4 . 3. Lighting and Shading

Video not available in on-line slides

Page 21: 4 . 3. Lighting and Shading

Screen Space Ambient OcclusionSSAO is a recent technique (introduced within the game Crysis) which is capable of creating an approximation of ambient occlusion by using the depth of the rendered scene. It works by comparing the current fragment depth with a selection of random sample depths around it to see if the current depth is occluded or not. The current fragment is occluded if the sample is closer to the eye than the surrounding fragments.

Whilst the approach is very simple, it is also highly effective.

Page 22: 4 . 3. Lighting and Shading

Screen Space Ambient Occlusion: Approach

• For every pixel, a shader samples the surrounding depth values to measure occlusion from each of the sampled points.• Sampling is performed using a

randomly-rotated kernel (repeated every N screen pixels), ensuring that only high-frequency noise is introduced in the final output. • The noise can be mostly

removed using a NxN post-process blurring step taking into account depth discontinuities.• The approach permits the

number of depth samples to be reduced to about 16 per pixel (enabling real-time application) whilst providing a high quality result.

Page 23: 4 . 3. Lighting and Shading

DIRECTED READINGDirected reading concerning lighting and shadowing

Directed

reading

Page 24: 4 . 3. Lighting and Shading

Directed reading: Shadowing Directed

reading

• Read Projective Texture Mapping – for information on projective texturing (underpinning shadow mapping)• Read DevMaster - Shadow Mapping and

Shadow Volumes – for an excellent introduction to shadowing• Read GDC - Shadow Mapping GPU-based

Tips and Techniques – exploring different approaches to shadow mapping

Page 25: 4 . 3. Lighting and Shading

Directed reading: Shadowing Directed

reading

• Read GPU Gems - Efficient Shadow Volume Rendering – for information on how to render shadow volumes• Read GDC - Advanced Soft

Shadow Mapping Techniques – exploring shadow map softening techniques• Read High-Quality Adaptive

Soft Shadow Mapping – for an example of ongoing research• Read GPU Gems - Shadow

Map Antialiasing – for information on efficient dithering

Page 26: 4 . 3. Lighting and Shading

Directed reading: Ambient OcclusionDirected

reading

http://www.gamerendering.com/category/lighting/

• Read GPU Gems – Ambient Occlusion – providing a good overview of AO• Read GPU Gems 2 – Ambient

Occlusion and Indirect Lighting – exploring forms of indirect lighting• Read Hardware Accelerated

Ambient Occlusion Techniques on GPUs – provided an excellent account of GPU screen-space AO• More generally explore

gamerendering.com on other aspects of lighting:

Page 27: 4 . 3. Lighting and Shading

Summary

To do:Read the directed

readingThink if you would like

to explore lighting / shading for your project

Today we explored:

Different types of shadow techniques

Ambient occulusion