Graphics Programming weekly - Issue 84 — May 12, 2019

Axis-Aligned Bounding Octahedra and The 7-Sided AABB

  • describes an alternative bounding structure that is based around axis aligned triangles
  • starts with 2D example and extends the concepts to 3D
  • comparison against other bound object representations

[video] Technical Papers Preview: SIGGRAPH 2019

  • overview video of papers that will be presented at SIGGRAPH 2019

Cross-Platform Shader Handling

  • describes the cross-platform shader pipeline
  • mix of json description files for state / constants / vertex layout / …
  • code generator used to generate the final shader for compilation
  • cross-compilation pipeline for platforms that don’t support HLSL

What’s New in Android: Q Beta 3 & More

  • Vulkan 1.1 will be a requirement on 64-bit devices starting with Android Q
  • Thermal API will be added to allow games to react to thermal status changes

Introducing TensorFlow Graphics: Computer Graphics Meets Deep Learning

  • tour of TensorFlow Graphics
  • allows to define 3D scenes and run training on them
  • system to allow bi-directional machine learning techniques

Why are 2D vector graphics so much harder than 3D?

  • presents the history of 2D printing and font formats
  • shows problems with implicit curve evaluations
  • discussion of implicit surfaces in regards to 2D rendering

How we made Neon Noir - Ray Traced Reflections in CRYENGINE and more!

  • interview describing the reflections that have been implemented in the Neon Noir Demo
  • merging voxel and ray tracing data
  • only tracing rays for mirror-like surfaces and the beginning of rays, otherwise tracing voxels instead

Hierarchical Russian Roulette for Vertex Connections

  • a method based on stochastic light culling
  • hierarchical Russian Roulette using an approximate scattering lobe
  • does not support perfectly specular surfaces

Fur Shader Tutorial

  • brief Unity example that shows how to render a basic fur look
  • combination of vertex offsets and alpha blending

Shader games with Vulkan

  • overview about how to design a game to run all logic in Vulkan shaders
  • compute shaders to run the game logic and updating the game state
  • draw management is done using a compute shader and draw indirect is used for the final draw submission

Part 3: DDGI Overview

  • Dynamic Diffuse Global Illumination
  • overview of the evolution of several indirect illumination techniques
  • how the method tries to solve the problem of Irradiance Probes
  • summary of the implementation and evaluation in different scene contexts

Reverse engineering the rendering of The Witcher 3, part 14 - cirrus clouds

  • reverse-engineering the cloud rendering of The Witcher
  • uses a texture based approach, including normal mapping the clouds
  • uses a sky gradient to lighten the clouds close to the sun


  • explains how to apply a screenspace Bayer dithering pattern in Unity

Thanks to Aras Pranckevicius for support of this series.

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