Graphics Programming weekly - Issue 318 - December 17th, 2023

A gentler introduction to ReSTIR

  • the blog post aims to introduce and explain the ReSTIR technique with a focus on implementation and intuition instead of the underlying theory
  • shows how to start with a first implementation and expand it to implement shadows
  • additionally shows how to take advantage of temporal and spatial data to reduce noise

Knockout City Frame Breakdown

  • the article presents a breakdown of the primary render passes of the Knockout City frame
  • provides a high-level overview of the rendering techniques used, what existing techniques they are based on, and how they modified the techniques to fit the requirements of the game

Advanced API Performance: Swap Chains

  • the blog post collects advice on how to achieve the most stable presentation results when using DXGI
  • presents what flags to set, how to size the queues, and how to make sure the results stay consistent after window/resolution resizes


  • the blog post presents an overview of the FSR3 SDK improvements
  • shows the debug display modes to help during implementation
  • additionally shows how it’s possible to run workloads on one queue to make initial implementation easier

How to programmatically check graphics driver version

  • the article discusses several ways to query the driver version and how to interpret the results
  • presents how to query the information with AMD, and Nvidia-specific API
  • and the API standard way exposed by D3D12 and Vulkan

Avatar: Frontiers of Pandora - the big developer tech interview

  • the interview between DigitialFoundry and some of the developers of the developers from Massive provides insights into the implementation of the game
  • discussing raytracing, GI, GPU rendering pipeline, and many more topics
  • also provides into the CPU side structure as well as PSO management

Introduction to micro-meshes for mesh compression

  • the article presents how to use Simplygon to generate micro-meshes (base structure + displacement information)
  • shows examples of what kind of results can be expected from different settings and how it affects memory usage and quality
  • presents how the way a model has been created can affect the base resolution vs. tesselation amount to achieve high-quality results

Simulating Fluids, Fire, and Smoke in Real-Time

  • the blog provides an introduction to fluid dynamics and rendering
  • the implementation is explained with the growing sophistication of the simulation
  • an interactive WebGL demo of each stage is provided
  • closes with how to apply temperature to color space conversion to enable a first completed fire simulation

[video] Using Textures In The Vertex Shader - Advanced Materials - Episode 34

  • the video tutorial explains how to sample textures from a vertex shader
  • explaining the quality difference and how the mesh vertex distribution and the texture content can significantly affect the quality of the result
  • additionally presents the different strategies that are available for the selection of varying texture MIP levels

Thanks to Jasper Bekkers for support of this series.

Would you like to see your name here too? Become a Patreon of this series.