Graphics Resources

Graphics Debuggers


  • Vulkan, DX11 and OpenGL on Windows
  • Vulkan and OpenGL Capture on Linux but no UI so it is better to playback on Windows.


  • "trace OpenGL, OpenGL ES, Direct3D, and DirectDraw"
  • Android, Linux, OS X, Windows


Wikipedia entry. Vulkan debugger.


Real-Time Rendering

Real-Time Physically Based Rendering [PBR]

Panda3D RenderPipeline

Real-Time Shadows

Real-time shadows have traditionaly come down to one of three options.

  1. Projected Shadows: Real or proxy geometry such as a disk projected onto a shadow-receiving surface, most simply a ground plane.
  2. Shadow Volumes: Extruding silhouette edges of shadow casting objects from the point of view of a light source. Drawing them into stencil buffer of main camera viewpoint to count whether nearest visible surfaces are in shadow or not.
  3. Shadow Maps: Draw scene into a texture map from point of view of a light to amortize calculation of visibility of all locations in the scene from the light. During shading points in the scene from main viewpoint, project into the shadow texture map to find out whether they are directly lit from a particular light.
  • Siggraph 2004 Shadows Course

  • Convolution Shadow Maps "Abstract: We present Convolution Shadow Maps, a novel shadow representation that affords efficient arbitrary linear filtering of shadows. Traditional shadow mapping is inherently non-linear w.r.t. the stored depth values, due to the binary shadow test. We linearize the problem by approximating shadow test as a weighted summation of basis terms. We demonstrate the usefulness of this representation, and show that hardware-accelerated anti-aliasing techniques, such as tri-linear filtering, can be applied naturally to Convolution Shadow Maps. Our approach can be implemented very efficiently in current generation graphics hardware, and offers real-time frame rates."

  • Exponential Shadow Maps "Abstract: Rendering high-quality shadows in real-time is a challenging problem. Shadow mapping has proved to be an efficient solution, as it scales well for complex scenes. However, it suffers from aliasing problems. Filtering the shadow map alleviates aliasing, but unfortunately, native hardware-accelerated filtering cannot be applied, as the shadow test has to take place beforehand. We introduce a simple approach to shadow map filtering, by approximating the shadow test using an exponential function. This enables us to pre-filter the shadow map, which in turn allows for high quality hardware-accelerated filtering. Compared to previous filtering techniques, our technique is faster, consumes less memory and produces less artifacts"

  • Variance Soft Shadow Mapping "Abstract We present variance soft shadow mapping (VSSM) for rendering plausible soft shadow in real-time. VSSM is based on the theoretical framework of percentage-closer soft shadows (PCSS) and exploits recent advances in variance shadow mapping (VSM). Our new formulation allows for the efficient computation of (average) blocker distances, a common bottleneck in PCSS-based methods. Furthermore, we avoid incorrectly lit pixels commonly encountered in VSM-based methods by appropriately subdividing the filter kernel. We demonstrate that VSSM renders highquality soft shadows efficiently (usually over 100 fps) for complex scene settings. Its speed is at least one order of magnitude faster than PCSS for large penumbra."

  • SIGGRAPH 2013, Playing with Real-Time Shadows, Nikolas Kasyan Covers the composition of an overall shadowing approach for an AAA game from a number of techniques: Deferred Shadows, Cascaded shadow maps, Soft Shadows Approximation, Shadows & Transparency, Contact Shadows/SSDO, Screen Space Self-Shadowing, Volumetric shadows, Area Light Shadows.

Variance Shadow Mapping

Game Rendering

Link here. Edit this page.