Graphics Programming weekly - Issue 337 - April 28th, 2024


Take a deep dive into Nanite GPU-driven materials

  • the presentation is packed with detailed information about the process of implementing shader graph support into the Nanite shading model
  • starts with an overview of the system and discusses the steps taken to reach the current support level
  • provides many details on the lower-level aspects and how GPU hardware influences decisions
  • additionally explains how the system has been optimized on PS5 and Series X with console-level access
  • also shows that work graphs for PC enable a new set of optimizations


Real-time denoising of importance sampled direct lighting

  • The Master Thesis is a collaboration with Remedy Entertainment and discusses the implementation of a denoising solution for direct lighting
  • the focus is to find a solution that balances performance and quality to allow real-time utilization of consoles
  • reviews existing solutions and provides evaluation methods to provide analysis capabilities
  • discusses the implementation and tradeoffs done
  • presents performance, memory, and image comparisons of the developed solution against existing solutions


Ray Tracing with Voxels in C++ Series – Part 1

  • the start of a series of articles covering the implementation of ray tracing for a voxel system
  • presents the initials of light and shadow calculations
  • concludes with challenges to the reader to improve their understanding of the material


How to Compact Acceleration Structures in D3D12

  • the blog post shows how to implement Acceleration Structure compaction using D3D12
  • this compaction step is run on the GPU timeline and often reduces the memory size required by 40%
  • discusses the necessary API steps, GPU synchronization, and memory management strategies


Demystifying multiple importance sampling

  • the article provides a full explanation of the derivation of multiple-importance sampling
  • explains the different components and how to combine them correctly


GPU Compute in the Browser at the Speed of Native: WebGPU Marching Cubes

  • the article explains how to implement a marching cube compute shader
  • the implementation is shown both in Vulkan and WebGPU
  • compares the performance of both implementations and finds that WebGPU performance is close to native Vulkan


The Performance Impact of C++'s final Keyword

  • a blog post covering the effect of using C++ final on a ray-tracing demo
  • the author presents the findings with several platforms, compilers, and scenes and presents the performance results


Raytracing - Articles

  • this page serves as a starting point for the articles of the author
  • covering topics such as BVH building series, Probability Theory, CPU Optimization series
  • also contains various articles on Ray Tracing, graphics techniques, and fixed point math


Radeon™ GPU Profiler 2.1 adds interoperability with Radeon™ GPU Analyzer (and more)!

  • the article introduces how shaders from GPU Profiler captures can now be opened in the GPU Analyzer for more detailed investigation
  • additionally shows UI updates and presents how instruction latency provides more information about where the latency occurs


Alan Wake 2: A Deep Dive into Path Tracing Technology

  • the video presentation (free login required) discusses the implementation details of Path Tracing within the Alan Wake 2 technology stack
  • starts with an overview of the implementation used (vertex accessing, BVH creation, dealing with dynamic geometry, etc.)
  • shows how Opacity Micromaps are used for alpha-tested geometry
  • from there, explain how Path tracing has been implemented, covering the whole pipeline from shading, shadows, reflections, and reconstruction techniques


Thanks to Aras Pranckevičius for support of this series.


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