Graphics Programming weekly - Issue 159 — November 29, 2020

Daniel Jones has made a video summary of the articles included in this article available on Youtube

[video] Painting a Selfie Girl, with Maths

  • the video presents an in-depth walkthrough that shows how to use signed distance fields (SDF) to create an animated girl
  • explains all used primitives as SDW, how they are combined, and the lighting implementation
  • implementation is done in shadertoy

Reverse engineering the rendering of The Witcher 3, part 21 - the painted world

  • the article shows how The Witcher 3 implements a fullscreen effect that gives the world a painterly look
  • presents a step-by-step walkthrough, showing all components that define the noise generation
  • author provides a shadertoy implementation of the effect

biplanar mapping - 2020

  • the post presents a bi-planar mapping as an alternative to tri-planar mapping using only two texture fetches
  • starts by giving an overview of the tri-planar mapping
  • followed by an explanation of the bi-planar mapping technique, presenting strategies to improve the quality and how the quality compares


  • a very detailed article about depth buffers
  • focusing on Unity, but most of the information is engine agnostic
  • explains the different spaces, storage formats, and precision considerations
  • additionally shows how to calculate world space positions from the depth buffer

[video] Endless Fields of Grass in URP with a Compute Shader! | Unity 2020.1

  • A Unity video tutorial that explains how to generate grass meshes using Compute shaders
  • covers the setup, mesh generation, and LOD selection

Multiple Importance Sampling in 1D

  • the article shows how Multiple Importance Sampling in 1D is used to improve the convergence of stochastic algorithms
  • presents multiple experiments and shows how different techniques can reduce the sampling error

Baking a Realistic Renderer from Scratch and other resources for Beginners in Computer Graphics

  • a collection of resources (books, talks, websites) the author recommends for beginners to get started with graphics programming

DirectX 12 Ultimate - Variable Rate Shading

  • the presentation provides an overview of Variable Rate Shading (VRS), the different features levels
  • provides insights into VRS performance, features that disable VRS, and what bottlenecks will cause VRS to not offer performance improvements
  • additionally shows how to integrate the AMD helper library to generate the VRS screenspace map

AMD FidelityFX Denoiser

  • the presentation explains the ray tracing denoising technique developed by AMD
  • shows what inputs are used, how the algorithm uses these to decide ray count, and how to use temporal reprojection to further reduce sample counts
  • the code for the technique is provided, and the website includes comparison pictures and images of the intermediate results

Vulkan Ray Tracing Final Specification Release

  • the post explains what changes have been made to the Vulkan raytracing extension since the preview specification
  • extension has been split into 3 layers (acceleration structure, raytracing shaders states, and ray queries)
  • walkthrough of each stage of the extensions
  • in contrast to DXR, Vulkan offers the ability to generate acceleration structures on the CPU

Exploring ray tracing techniques in Wolfenstein: Youngblood

  • the article presents an overview of how Vulkan raytracing has been implemented into Wolfenstein
  • provides a brief overview of the different API concepts and how they are used

In the works: HLSL Shader Model 6.6

  • the article contains an overview of the new features that will be included in shader model 6.6
  • 64-bit Integer Atomic Operations, Dynamic Resource Binding, Compute Shader Derivatives and Samples, Packed 8-Bit Operations and variable Wave Size

Thanks to atyuwen for support of this series.

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