Graphics Programming weekly - Issue 36 — April 29, 2018


Nubis: Realtime volumetric cloudscapes in a nutshell

  • summary of
    • cloud modeling and authoring system
    • lighting model
  • high level overview of the implementation


Stratified sampling

  • environment lighting is using several distributed area lights
  • distribution / strength is adapted to the environment
  • implementation of importance sampling using varying step sizes for ray marching steps


Taking a Stroll Between The Pixels

  • investigation of relation between linear interpolation and curve representations


NVIDIA SMP Assist API for VR Programming

  • D3D11 extensions to simplify use of Lens Matched Shading and Multi-Res Shading
  • short overview of the concepts and how the API works


Reducing Vulkan API call overhead

  • vulkan function calls pass through several layers until the actual function is executed
  • looks at the disassembly to evaluate the cost of this (between 1-5%)
  • and how to bypass many layers to reduce the overhead


Dissecting the Rendering of The Surge

  • 100% dynamic lights, 16 shadow maps in 4kx4k atlas
  • gbuffer breakdown
    • stores material index in gbuffer, indexing into structured buffer for material information
  • deferred decals have problems with depth discontinuities because of wrong mip selections
    • use mip0 when depth discontinues are found around the pixel
  • object decals, blending arbitrary meshes into the gbuffer
  • working on bindless decals, follow the same pattern as clustered deferred lighting


Daily Pathtracer 12: GPU Buffer-Oriented D3D11

  • implementation of a buffer based (breadth first) approach for the raytracer
  • looking at synchronization issues, performance
  • brief look at the NVidia nsight tool


GPU texture compression error metrics

  • overview of what error metric he uses when working/comparing encoders


OpenGL engine and PBR deferred pipeline with SSR/SSAO

  • shows effect of different ray marching step sizes for screen space reflections
  • diffuse reflections approximation with mip selection vs reference implementation with many samples


Comparison of backface culling efficiency for cluster cone culling

  • comparison of backface culling efficiency for cluster cone, 64-triangle clusters


Terrain Erosion On GPU

  • discusses 3 different approaches for implementing thermal erosion on a height field based terrain


New BC7 encoder open sourced

  • supports perceptual metric for compression
  • designed for opaque textures


HLSL for Vulkan: Resources

  • descriptor types in vulkan vs D3D12
  • how to specify resource bindings for vulkan in HLSL
  • memory layout rules