Graphics Programming weekly - Issue 79 — April 7, 2019

Missed the content for March? Don’t worry. Monthly summaries are availbale on my patreon:


  • provides a look at the 3DFX VOODOO1 GPU from the mid-90s
  • shows how the hardware and rendering pipeline was designed
  • comprising between the visual result of the software renderer and the GPU acceleration

Unity - Grass Shader

  • a tutorial that explains how to render grass using Unity
  • uses a mix of geometry and tesselation shaders
  • covers how to generate geometry from the geometry shader, explains tangent space, and adds vertex attributes
  • tesselation shader is used to control the density of the grass
  • wind is applied to make the grass move
  • lighting and shadows are added

2d Raymarched Smoke

  • walkthrough of a simple cloud shading setup using the Unity shader graph system

Bringing GPU acceleration to Windows containers

  • with Windows Server 2019 or Windows 10, version 1809 GPU acceleration for Direct3D based workloads is now supported in Docker
  • also enabled Windows ML hardware acceleration

Alternative Take on the Split Sum Approximation for Cubemap Pre-filtering

  • describes how cubemap pre-filtering for image-based lighting is done in Unity’s HD Render Pipeline
  • derivation of the filtering equation and comparison against the split sum approximation used in UE4

New in D3D12 – GPU-Based Validation (GBV) is now available for Shader Model 6.x

  • windows update 19H1 supports GPI based validation with shader model 6, generated by the DXC compiler

Creation Graphs

  • presents the Creation Graph
  • a graph-based system that allows the definition of functionality, which mixes GPU and CPU based work in a single graph
  • examples presented: cubemap filtering for image-based lighting and skybox rendering

Technically Art: Issue 12 (05.04.2019)

  • collection of tweets related to a variety of tech art articles
  • many great looking effects

GDC 2019 - Vault

  • videos and slides for GDC 2019 have been released on the vault

Anti-Ghosting with Temporal Anti-Aliasing

  • presents techniques used to alleviate ghosting in the TAA solution of “The Grand Tour Game”
  • uses the stencil to mark object groups and does not blend between with history buffer pixels when the stencils differ
  • uses per-pixel depth and velocity to disable TAA so as to further reduce ghosting on shadows

Keeping the Blue Side Up: Coordinate Conventions for OpenGL, Metal and Vulkan

  • presents the coordinate conventions for Metal, OpenGL and Vulkan
  • how they differ and how to deal with the difference in a mixed API scenario

Reverse engineering the rendering of The Witcher 3, part 13a - witcher senses (objects & intensity map)

  • series part 1 of the reverse engineering of The Witcher senses
  • explains how objects are selected using the stencil buffer

Reverse engineering the rendering of The Witcher 3, part 13b - witcher senses (outline map)

  • reverse engineering of The Witcher sense effect
  • show how the outline for objects is generated

Reverse engineering the rendering of The Witcher 3, part 13c - witcher senses (fisheye effect & final combining)

  • explains how the inputs from part 1 and 2 of the series are combined using a fullscreen effect

Thanks to Max R.R. Collada for support of this series.

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