Graphics Programming weekly - Issue 51 — August 12, 2018

Imperfect Environment Maps

  • using ideas from imperfect shadow map point-cloud rendering to implement reflections
  • generates a point cloud around the track
  • screen space pixels that are close to points of the point cloud transfer their color onto the points
  • the point cloud is then projected onto a sphere around the car and used as an environment map to add reflections on the cars

Musings on cross-platform graphics engine architectures – Part 2

  • breaks down the engine into two separate related concepts, Resource and Command management
  • discusses how to interact with resources
  • introduces the idea of state scopes to prevent state leaking
  • commands are recorded into engine specific command buffers that are later converted into the API specific format

High-Performance Graphics 2018

  • slides for most of the talks have already been published

DX12 Ray Tracing Tutorials

  • Nvidia tutorial on how to integrate DirectX raytracing and rasterization so that both rendering paths can be used within the same application
  • how to initialize the API, create DXR acceleration structures
  • how the ray tracing pipeline works, manage shaders, resources, and shader binding tables
  • implementation of the required raytracing shaders to produce identical results with the rasterization pipeline

Rendering the Moana Island Scene Part 1: Implementing the Disney BSDF

. short description of the different aspects of the Disney BSDF, including source code

Screen-space Water Rendering

  • a technique to render screen space water using unity
  • water particles write information into offscreen buffers to accumulate water information
  • these buffers are then resolved to form a continues water surface instead of individual blobs

A Multi-Faceted Exploration (Part 3)

  • improves upon the multiple scattering approximation from the previous part of the series
  • the result is a model that only requires a 2D LUT to be pre-calculated

Shader Graph Updates and Sample Project

  • walkthrough of two vegetation shaders created with the visual shader editor that was added in Unity 2018.1

Uniform points in sphere and capped cone

  • how to improve the generation of uniform points in a sphere, disk, and a spherically capped cone

Clipping Objects with a Plane

  • a tutorial that shows how to clip a mesh in a pixel shader against a plane using unity

Confetti Shader Translator - Alpha

  • a web tool that allows the conversion from HLSL Shaders to HLSL 6.2, GLSL 4.5 and Metal 2.1

The other pathtracer 5: Optimizing Triangle-Ray Intersections

  • choosing a different algorithm to optimize triangle-ray intersection tests and vectorizing the calculations

Tiled Blue Noise

  • a quick overview of blue noise tiled with various tile sizes from 16x16 to 256x256

A Cross-platform Evaluation of Graphics Shader Compiler Optimization

  • explores source to source optimizations techniques using the LunarGlass framework with GLSL shaders
  • comparison of different optimization techniques and the effects on runtime performance
  • results vary significantly between different shaders and target platforms

The State of GPGPU in Rust

  • overview of libraries available to write GPGPU applications using the Rust programming language

Lighting the Unlit

  • description of the “unlit” light system being used
  • it allows lights to modify tint, brightness and contrast to enable the 2D characters to match the environment better

Metal shaders: blending basics

  • a short explanation and Metal shader code for different blend modes as described in the PDF specification

Shader Showcase Saturday #4

  • overview of different fire effects that are based around animated noise textures

Shader Showcase Saturday #5

  • overview of different rain effects with links to more in-depth articles discussing the showcased effects


  • Microsoft open sourced their library to read and write GLTF model files