Graphics Programming weekly - Issue 15 — November 5, 2017


2017 LLVM Developers’ Meeting: “Apple LLVM GPU Compiler: Embedded Dragons

  • explanation of GPUs
  • overview of GPU execution model
    • latency hiding
    • register usage
  • many compiler internals
    • optimizations and trade-offs that need to be considered
  • uniformity hoisting
    • compiler is able to extract constants and run as part of low frequency kernels
    • saves power and performance
    • even hoisting a single add is a win on apple hardware

Screen Space Ray-Traced Global Illumination: Toughest Challenge in Real-Time 3D [wayback-archive]

  • use technqiues from Screen Space Reflections for
    • ambient occlusion
    • secondary diffuse light bounces
    • self-illumination of emission objects
    • bent normal calculation
      • average direction of ambient light that is not occluded
  • high level overview of the implementation and results
  • demo at: SIGGRAPH 2017 Real Time Live

Lighting with Unreal Engine Masterclass (Summary) [wayback-archive]


STAR CITIZEN: CitizenCon 2947 - Graphics and Tech Development for Star Engine

  • full frame breakdown
    • dynamic environment probes, distributed across frames
    • occlusion direction + angle in GBuffer
      • vector in direction of least occlusion (“bent-normals”)
    • optics
      • anamorphic flare
      • physically based lens flare
    • 4 frame temporal AA
  • physically based glass shader

Vulkan: Descriptor Sets Management [wayback-archive]

  • resource binders of the engine mapped to resource descriptor
    • these are blueprints
    • copied into descriptor pools during rendering
  • these pools will be released when the GPU is done rendering the frame
  • reduce fragmentation and lower tracking overhead

Animating Noise For Integration Over Time [wayback-archive]

  • analysis of white noise, blue noise and Interleaved Gradient Noise for reconstruction of image
  • experimenting with golden ratio addition to create changing noise without having to regenerate it
    • which seems to be an ok approximation

Deep Illumination: Approximating Dynamic Global Illumination with Generative Adversarial Network [wayback-archive]

  • machine learning technique
  • trained with mapping from GBuffer + direct illumination to -> indirect illumination

What every systems programmer should know about lockless concurrency [wayback-archive]

  • great overview of concurrency building blocks
  • hardware level overview
  • how to use C++11 to ensure correctness

Practical applications of the dot product [wayback-archive]

  • Projecting a vector onto a vector
  • Finding the orthogonal component of a vector to another vector
  • Finding the shortest distance from a point to a segment
  • With interactive demos

CppCon 2017: Rich Geldreich & Stephanie Hurlburt “The Future of Texture Compression”

  • discussion of problem space
  • overview of GPU formats
    • ETCS1
    • DXT1
  • .basis will be an khronos standard
  • encoder takes non-uniform texture arrays and compresses these
    • mips / cubemaps / video frames / … all handled the same way

Showing the Correctness of Quaternion Rotation [wayback-archive]

  • algebraic proof for quaternion rotation

Reversible Jump Metropolis Light Transport Using Inverse Mappings