Graphics Programming weekly - Issue 67 — December 16, 2018

Thank you everyone for the support in 2018, this is the last post of the series for this year, the next post will be released on January 14, 2019.

I wish you happy holidays and a great start into 2019.


Unified Resource State Management for Vulkan and Direct3D12

  • explains the state management system implemented for the Diligent Engine
  • resources states are exposed on D3D12 style semantic for barriers
  • allows mixing of automatic and manual explicit state management
    • the developer can choose to disable automatic transitions on a per resource basis
    • can switch on a per-resource basis at any time during the frame


Art and Technology at Pixar (SIGGRAPH Asia 2018 Course)

  • course notes for the Siggraph Asia 2019 course
  • presenting the newest developments and techniques used during The Incredibles 2
  • talking about Simulation & FX, Rendering & Compositing and Real-time Tools to allow quicker iteration time
  • overview of subdivision surface representations for use with OpenSubdiv


Game Tech Deep Dive: The fast and furious window shaders of Forza Horizon 4

  • explains the parallax mapping technique used to represent the interiors of buildings as seen through windows
  • broken into multiple layers to separate window frames, curtains and interior of the room
  • baked separate light texture to allow night time for interiors


Vulkan sparse binding - a quick overview

  • explains sparse binding and residency
  • sparse binding lifts the requirement that resource memory needs to be fully continuous in memory. Instead, memory is managed with pages that can be mapped at non-continues offsets
  • sparse residency lifts the requirement that the complete resource needs to mapped. For example, only parts of a texture atlas could be mapped


Reverse engineering the rendering of The Witcher 3, part 7a - average luminance (distribution)

  • describes how the histogram of pixel brightness is collected using a compute shader in The Witcher 3
  • the system allows a dynamic weighting of pixels that origin from the sky


Adaptive Exposure from Luminance Histograms

  • explains how to use D3D12 to calculate a histogram of pixel brightness in a compute shader
  • shows how to use a per-bin weight to calculate the luminance for the exposure step


Rasterization in One Weekend, Part II

  • part two of rasterization implementation article series with C++
  • shows how to extend the rasterizer into 3D
  • now implements the necessary pipeline to project vertices from object space into clip space for rasterizations
  • adds support for depth testing and index buffers


RenderDoc Survey 2018

  • RenderDoc survey looking to gather information about the user experience, stability, development experience, API and platform coverage
  • help to set the direction for future developments


Intel's Architecture Day 2018: The Future of Core, Intel GPUs, 10nm, and Hybrid x86

  • presenting an overview of next-generation Intel architecture
  • will support adaptive sync, tile-based rendering, coarse pixel shading


NVIDIA Announces Nsight Graphics 2018.7

  • acceleration structure visualization for DXR (DirectX Raytracing) and Vulkan
  • serialize DXR application to a C++ capture is now supported
  • added Vulkan pixel history support


Radeon GPU Profiler 1.4

  • added support for OpenCL profiling


Radeon Software Adrenalin 2019 Edition 18.12.2 Highlights

  • new AMD driver adds support for VK_EXT_inline_uniform_block, VK_KHR_swapchain_mutable_format, VK_EXT_scalar_block_layout and sparse extensions

If you are enjoying the series and getting value from it, please consider supporting this blog.

Support this blog