Graphics Programming weekly - Issue 32 — April 1, 2018


Triangle Visibility Buffer [wayback-archive]

  • in-depth walkthrough of the GPU triangle culling pipeline
  • render into a single render RGBA8 render target, storing drawID + triangle ID
  • memory usage comparison with deferred shading
  • at shading time
    • lookup the triangle ID from the render target
    • interpolate vertex attributes at pixel position
    • apply shading
  • advantages of the technique
    • less memory bandwidth required
    • better memory coherence during shading
    • more material variety, no need to store material data in gbuffers

Re-Testing Vulkan Transform Data Handling Strategies [wayback-archive]

  • performance comparison of constant buffer data stored in
    • push-constants
    • large UBO (device / host memory)
    • large SSBO (device / host memory)
  • on Nvidia UBO performs significantly better

Octahedral Impostors [wayback-archive]

  • better usage of texture space, workflow improvements
  • overview of billboard techniques
  • using either Hemi-Octahedron or full Octahedron
  • how to blend between the different baked directions
  • integration into UE pipeline

substance PBR guide [wayback-archive]

  • updated version of the guide in two parts 1, 2

Improving the compression of block-compressed textures Revisited [wayback-archive]

  • comparison of crunch (unity improved version) with DDS + general purpose compressors

V-EZ brings “Easy Mode” to Vulkan [wayback-archive]

  • abstraction layer on-top of vulkan
  • implements automatic render barrier management, descriptor pools/sets, memory management, render passes, etc.
  • aimed at CAD software, not games
  • not open source at this point

HLSL Basics [wayback-archive]

  • set of lessons explaining shader basics with unity
  • how shaders are integrated into the unity pipeline

Ray Tracing at GDC [wayback-archive]

  • summary of available ray tracing articles

Announcing Microsoft DirectX Raytracing! [wayback-archive]

  • overview of DirectX raytracing api
  • discussion of design decisions
  • future direction

PIX 1803.16-raytracing – DirectX Raytracing support [wayback-archive]

  • pix supports DirectX Raytracing (DXR) API calls
  • shows details about resources
  • visualization of acceleration structure
  • showcase of demos that support DXR

Introduction to NVIDIA RTX and DirectX Raytracing [wayback-archive]

  • more in-depth explanation of how the DXR API work
  • ray generation -> intersection / any hit -> closest hit / miss

An Idea: Raytracing Lookup Tables [wayback-archive]

  • instead of using textures use adaptive-meshes to represent data where required, raytrace against that mesh to get the lookup value

PIX 1803.25 – GPU Occupancy, CPU sampling, automatic shader PDB resolution, and more [wayback-archive]

  • allows to see occupancy broken down into different render pipeline stages (NVidia only for now)
  • improved CPU profiling
  • more memory usage information (command allocators, PSO, descriptor heaps)
  • geometry shader and DXR debug support

Daily Pathtracer Part 0: Intro [wayback-archive]

  • series about small path tracing experiment with C++, C# and unity C# burst

GPU Ray Tracing in One Weekend [wayback-archive]

  • unity implementation of a compute shader ray tracer
  • random points on sphere stored in texture
  • ray scheduler, store persistent ray state in gpu buffer and iterate, no recursion
  • depth of field
  • scene change handling

Hello World: OctaneRender 4 is here [wayback-archive]

  • free option for single PC available
  • Brigade Engine integration (real time path tracing engine)
  • many speed improvements

“Ray Tracing Gems” Book Call for Participation [wayback-archive]

  • new book, call for authors
  • small overview of raytracing history