Graphics Programming weekly - Issue 116 — January 26, 2020


Learning from data

  • the article presents how ordering mesh data can influence rendering performance
  • compares different algorithms developed for this purpose
  • the primary focus is on how to train these algorithms using machine learning techniques
  • analyzes the results of different approaches and presents results

Using AMD FreeSync™ Premium Pro HDR: Code Samples

  • the article shows how to enable AMD FreeSync using D3D12 and Vulkan
  • presents how to use the library to encode color information into the desired HDR display format

Khronos Group Releases Vulkan 1.2

  • Vulkan 1.2 has been released
  • this release promotes 23 extensions into core Vulkan
  • including extensions such as imageless_framebuffer, timeline semaphores, and better support for HLSL shaders

D3D12 Translation Layer and D3D11On12 are now open source

  • Microsoft open-sourced two layers to help to port to D3D12
  • D3D12 Translation Layer helps mapping from D3D11 style APIs to D3D12 style
    • Resource binding, renaming, sub-allocation, pooling, and deferred destruction
    • Batching and threading
    • Residency management
  • D3D11On12 is implemented on top of the previous layer and contains the D3D11 specific aspects


Performance Evaluation of Acceleration Structures for Cone Tracing Traversal

  • the paper examines k-d trees and bounding volume hierarchies
  • comparing the approaches with varying cone sizes


Vulkan Timeline Semaphores

  • the article discusses the new timeline semaphore synchronization API included in Vulkan 1.2
  • superset VkSemaphore and VkFence allows synchronization between CPU and GPU using a single primitive
  • additionally provides support for wait-before-signal submission and multiple waits per signal

Calculates view space 3D sphere extents on the screen


Projective Geometric Algebra Done Right

  • the article presents how Grassmann (Geometric) Algebra extends four-dimensional homogeneous coordinates into a larger algebraic structure

Stylized Lava Shader

  • the Unity tutorial explains how to achieve a stylized lava effect

Shader Graph Stylized Lava

  • the Unity tutorial shows to implement the stylized lava effect discussed in the previous article using Shader Graph

An Opinionated Post on Modern Rendering Abstraction Layers

  • the author presents his opinions about how a rendering abstraction layer should be designed
  • additionally offers his thoughts on Render Graphs, Meta Command Buffers, and meta shader languages

Accurate Normal Reconstruction from Depth Buffer

  • presents an improved precision method for normal reconstruction from depth buffers
  • the technique uses 5 depth samples in each direction

HLSL Viewport Clamping trick

  • the article presents a few approaches to skybox rendering
  • introduces how to use the min/max depth of the D3D12 viewport to force skybox to a max depth
  • the comments present other approaches

Ray Guiding for Production Lightmap Baking

  • the paper introduces a technique for improving the computation time required for lightmap baking
  • based on guided sampling and minimum variance-based estimator combination
  • the method has a fixed memory footprint and is independent of scene complexity

Real-Time Ray-Tracing in WebGPU

  • the article shows how to use Node bindings to enable RTX support when using WebGPU
  • provides a brief overview of the DXR API and presents how to use the API to set up the pipeline and render an animated mesh

UV-Based Nodes

  • the article presents the shader nodes from Unity ShaderGraph system
  • explains how to use the nodes, what options are available and how to combine them

Correct sRGB Dithering

  • the article presents code and explains the logic behind correct dithering patterns that preserve the brightness

Thanks to Jasper Bekkers for support of this series.


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