Saturday, October 1, 2016

[00] Variance Shadow Maps.. Here is a brief overview of shadows in computer graphics..


[Reference]


Variance Shadow Maps


Shadows add a significant amount of realism to a scene by conveying information about the geometry of objects and the location and characteristics of light. A large number of techniques have been developed for rendering shadows, and even after over two decades of work there are still a lot of new developments and progress to be made. Here is a brief overview of shadows in computer graphics:
  • Ray Tracing — For every pixel in the final image, a ray is shot towards each light. The point is in shadow if there is an object between the surface and the light. In more advanced ray tracing algorithms that use global illumination, shadows fall out naturally from the physics of light transport. Unfortunately, modern graphics hardware cannot yet implement this approach efficiently.
  • Classic Shadow Mapping — Shadows are created by testing whether a pixel is visible from the light source, by comparing it to a z-buffer or depth image of the light source's view, stored in the form of a texture. This can be implemented very efficiently, but results in severe aliasing even if relatively large shadow maps are used, and the shadows are always sharp.
  • Percentage Closer Filtering — A simple extension to classic shadow mapping that reduces aliasing by filtering the shadow map over a region. This requires a large number of samples of the shadow map for each screen space pixel and it can be very expensive to get good looking, antialiased soft shadows.
  • Perspective Shadow Maps — Often, the light's point of view is an inefficient render location because lots of shadow map resolution is being spent on regions that are not going to be visible from the camera's location. Perspective shadow maps transform the light's camera to better make use of the shadow map resolution.
  • Cascaded Shadow Maps — For scenes with a very large range of depths, a single shadow map may be insufficient to render the scene with a reasonable amount of detail at all depth ranges. Cascaded shadow maps uses multiple shadow maps at a variety of depth ranges to deal with these scenes.
  • Variance Shadow Maps — The main expense of percentage closer filtering is that the filtering must be done in screen space. Variance shadow maps is a simple extension to classic shadow mapping that allows you to prefilter the shadow maps. An efficient, separable kernel can be used and the final render with the shadow map requires only a single texture fetch per shadow map. This lets you get large filters radii that would be much more expensive to achieve with traditional percentage closer filtering.





No comments:

Post a Comment