Monthly Archives: February 2015

Real-Time shadows : Point Light Shadows Demo

I have uploaded a video demo for Point Light Dynamic shadows with sponza scene containing 32 point lights with dynamic shadows.


 Render Timings


Some performance results at resolution 1080p (as rendered in the above screenshot) –

  • Depth Pass – 0.410 ms
  • ShadowMap Update – 2.1 ms
  • Lighting Pass (With 32 dynamic shadows) – 5.5 ms
  • Lighting Pass (With 32 static shadows) – 4.9 ms


Real-Time shadows : Cascaded Shadow Maps

Cascaded Shadow Maps is so far the best solution to tackle Perspective and Projective aliasing in shadows. The basic idea is to use multiple shadow maps (mostly 3 or 4) to cover different areas of view camera frustum. The root cause of these shadow artifacts is lack of one to one mapping between shadow map texels and pixels on the screen (in view space). The Cascaded Shadow mapping provides higher resolution shadow maps  to objects closer to the eye solving the root cause of artifacts.

(Screenshot – JustAnotherGameEngine)

Read the rest of this entry

Making Everything Darker : Real-Time Shadows

Shadows are one of the key features for creating realistic and believable virtual scenes. Whether hard or soft or physically correct, shadows are very crucial in providing important visual cues. Shadows can be an important aspect of gameplay also. For example, it plays an important role in CounterStrike by allowing us to see enemies around corners, coming through doors, etc.

Real-Time Shadows is an active area of research. There’s still no single fool-proof technique of rendering shadows that can handle all the cases. Well, there exists a way to render high quality physically correct shadows through ray-tracing but that’s not fast enough to render in real-time on current hardware. So a better way to say this is that there’s no real-time hack of rendering high quality, flicker/ jaggies free, physically correct, etc shadows yet.

Read the rest of this entry

Progress Update

From past 7-8 weeks I have been mainly working on shadows along with some engine code refactoring, adding support for some new things to support shadows like Texture arrays, Geometry shaders, etc
Read the rest of this entry