Skip to main content

2 posts tagged with "optimization"

View All Tags

Improved Reflective Shadow Maps

· 15 min read
Jaker
Senior Frog @ GP

Reflective shadow maps, introduced in 2005 by Carsten Dachsbacher and Marc Stamminger in the eponymous paper, is a technique for rendering a single bounce of indirect lighting in real time.

RSM is derived from the simple observation that any point that can be directly seen by a light source is itself a light source for first-order indirect illumination. In other words, each texel in a shadow map can be treated as a tiny light that can illuminate the scene. For this purpose, RSMs extend shadow maps to include normals and luminous flux.

While the technique delivers on the promises made in the paper, it suffers from a few drawbacks that make it difficult to use in real applications:

  • High runtime cost, even on today's hardware
  • Correlations in output
  • No indirect occlusion (i.e., light leaking)

In this post, I will describe some techniques to improve the performance and quality of RSMs.

Ordered Dithering is Useful and Good

· 3 min read
Jodie
The Tonemap Guy

Dithering is the old trick of using patterns to fake more colors than you actually have. If you've ever noticed the crosshatch pattern in old video games, that's ordered dithering. It uses a repeating grid called a Bayer Matrix. It's carefully constructed so that adjacent values are as far apart as possible, which maximally spreads error. Modern game developers, in their infinite wisdom, have decided that this mathematical perfection is a problem to be fixed. The regular pattern is too noticeable, they say. Instead they make a fancy precomputed texture that has the same properties but with no regular pattern: Blue Noise.