Graphics Programming Weekly - Issue 394


[video] Rendering Assassin's Creed Shadows

  • details the rendering techniques used in the latest Assassin’s Creed game
  • explores the GPU-driven rendering pipeline, micro polygon rasterization, global illumination implementation
  • presents how the weather system was implemented in a deferred pipeline fashion
  • additionally presents a brief look at how the team manages platform differences and performance tracking


[video] Quaternions - Freya Holmer | NGJ2025

  • talk from Nordic Game Jam 2025 providing an intuitive explanation of quaternion mathematics
  • breaks down quaternion concepts using visual examples and practical applications in game development
  • demonstrates techniques for visualizing rotations
  • additionally presents how rotation order/axis orders vary between different popular game engines


Fast camera space to screen space direction transform

  • presents a mathematical derivation for efficiently transforming direction vectors from camera space to screen space
  • reduces computation from 32 multiplies, 24 additions/subtractions, and four divides to just six multiplies and two subtractions


[video] Coding Adventure: Software Rasterizer

  • walks through the implementation of a CPU-based software rasterizer
  • covers techniques for triangle rasterization, projections, depth buffering, basic lighting
  • explains the underlying theory with visual explanations before presenting the implementation


BVH Quality: Beyond SBVH

  • investigates techniques to improve Bounding Volume Hierarchy (BVH) quality
  • challenges common assumptions about binned vs. full-sweep SAH building and demonstrates that bin count significantly impacts performance
  • introduces Representative Ray Sets (RRS) for BVH quality assessment and optimization, showing that significant performance improvements ( >50% ) are possible
  • opening the discussion that offline builds of optimized static geometry BVHs might be worthwhile to explore


Async compute all the things

  • explores asynchronous compute techniques to improve GPU utilization by executing compute and graphics workloads in parallel
  • explains the implementation details of scheduling work on separate command queues and synchronizing between them using fences
  • provides practical examples of work pairing that benefits from async compute and how to measure performance gains


D3D12 Shader Execution Reordering

  • introduces Shader Execution Reordering feature for Shader Model 6.9
  • explains how SER allows application developers to provide hints that will enable drivers to optimize execution patterns for DXR workloads
  • provides example code that presents the feature in shader code and how to use it from the D3D12 API
  • additionally discusses the state of driver support


D3D12 Opacity Micromaps

  • introduces Opacity Micromaps (OMMs) for DirectX 12 ray tracing to accelerate alpha-tested geometry
  • details how OMMs encode alpha mask information at different resolutions to skip unnecessary ray-triangle tests
  • provides implementation explanations, first example implementations, and performance data for foliage scenes


D3D12 Cooperative Vector

  • presents DirectX 12’s new cooperative vector instructions
  • discusses how these instructions allow developers to take advantage of additional hardware features (such as Nvidia Tensor Cores)
  • shows how to check for the availability of support and how the API allows developers to encode the data into the hardware-required formats


[video] Cloth Animation Using The Compute Shader

  • the video tutorial implements a physics-based cloth simulation on the GPU using compute shaders
  • discusses how to structure the mesh for connectivity as well as how to handle constraints solving to simulate springs
  • covers both the theory as well as the implementation


Shaders for Vulkan samples now also available in slang

  • announces the addition of Slang shader language support for the Vulkan samples repository
  • discusses the experience of using Slang for shader development


Thanks to Robert Wallis for support of this series.


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