Graphics Programming weekly - Issue 150 — September 20, 2020

The Last of Us Part II, material blending, the SDF of a plane.

  • the video tutorial explains how to implement a rust effect on objects that intersect with a water plane
  • describes how to calculate the distance between a point and a plane
  • implemented using the Godot engine

Rules for a Future-Proof 2D Render Order

  • the article explains the sorting, rendering layer design for a 2D game
  • implemented using Unity
  • sorting layers also interact with how the dynamic 2D lights interact with the sprites

Write-up: VHS Image Effect

  • post discusses a shader approach to implement a VHS effect using Unity

Building WebGPU with Rust

  • the talk provides an overview of WebGPU and provides an overview of the implementation using Rust
  • this implementation is used by Firefox
  • shows the design considerations for the API, how to use it, and implementation discussions

Toon Lighting Basics

  • the blog post explains how to implement a simple Toon Lighting shader using the Amplify Shader Editor inside of Unity
  • shows how to configure the effect and use the idea to archive different looks


  • the Unity tutorial shows how to generate mesh data on compute shaders and draw them from the GPU without a CPU roundtrip

Guide to Vulkan Synchronization Validation

  • this guide explains how to use the Vulkan Synchronization Validation layer
  • shows what kind of problems it can detect, how to debug these issues, and explain how to understand the messages

Capturing GPU Work

  • the blog posts explains how PIX for windows captures work
  • provides insights into how the focus has shifted from API focused recording to GPU work recording

Heat Haze Shader Graph How-To

  • the article explains how to implement a heat haze screenspace effect for a 2D game using Unity
  • implementation is done using Shader Graph
  • a video version of the tutorial is available too

Radeon™ GPU Profiler 1.8 released

  • article shows the new Instruction Timing, Theoretical occupancy, and UI improvements in the latest version

NVIDIA Announces Nsight Graphics 2020.5

  • new release adds support for NVIDIA Ampere microarchitecture
  • support for the Vulkan added to the Shader Profiler (including raytracing)

Error Reporting Improvements for Vulkan Validation Layers

  • Vulkan validation layer has been updated to include additional and improved validation messages

Procedural Physically based BRDF for Real-Time Rendering of Glints

  • the paper presents a physically-based model for the realtime rendering of sparkling materials
  • the implementation uses a pre-computed BRDF dictionary of ~390KB size
  • precomputation is independent of smoothness, so runtime variations are possible

Thanks to Michael Riegger for support of this series.

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