Graphics Programming weekly - Issue 45 — July 1, 2018

High-Performance Procedural Noise using an Histogram-Preserving Blending Operator

  • a technique that allows the generation of infinite output space from a small example texture (such a grass, snow) in a pixel shader only
    • for example tillable terrain textures
    • cheap to evaluate; 0.29ms for a fullscreen quad
  • the approach is to partition the output space into a triangle grid and to pick three random patches from the input texture to blend to create the output patch
  • this is made possible through the variance preserving blending operation, and this can also be used to improve triplanar mapping

Spectral Remapping for Image Downscaling

  • technique for downsampling images that preserves high-frequency information from the original image
  • instead of discarding high-frequency information it remaps the signal into a form that can be represented in the downsampled image

Stratified Sampling of Projected Spherical Caps

  • a technique to improve importance sampling for spherical light sources by projecting the visible spherical cap onto a 2D plane, and taking uniform samples within this plane
  • yields noise-free direct illumination for constant illumination with no occluders

TL;DR of the paper 'Stratified Sampling of Projected Spherical Caps'

  • summary of the previous paper
  • explains the spherical cap projection and the intuition how this improves the results

High-Performance Graphics 2018 - Program

  • program for the High-Performance Graphics 2018 in Vancouver has been published

Deferred Adaptive Compute Shading

  • technique changes shading rate adaptively based on the local content of the image
  • partitions the framebuffer into subdivision levels; uses these to estimate the variance between neighboring pixels to decide if new shading information needs to be calculated or if the shading result can be estimated from neighboring pixels

Cube-to-sphere projections for procedural texturing and beyond

  • overview of area-preserving approaches of cube to sphere mapping
  • summarizing ability to preserve area and GPU performance
  • how to generalize 2D grid-based poisson-disc sampling to the sphere
  • provides shadertoy implementations of the presented techniques

TL;DR of the paper 'Cube-to-sphere projections for procedural texturing and beyond'

  • summary of “cube-to-sphere projections for procedural texturing and beyond” paper

PIX 1806.20 – GPU Occupancy for AMD GPUs

  • Pix now also support GPU occupancy visualization for all shader types on AMD GPUs

Materials for Polygons on Terrain and the Evils of Inverse Trigonometry

  • polygons on terrain implemented as image-space decals
  • how to apply them when they span a large area on the surface of the earth
  • effects of implementation inaccuracies of inverse trigonometric functions between CPU and GPU

Understanding GPU context rolls

  • explains what a context on AMD hardware is and how the driver manages these
  • the Radeon GPU Profiler has a tool to analyze when context rolls are causing a performance issue

Gradient Estimation for Real-Time Adaptive Temporal Filtering

  • a technique that adjusts the temporal accumulation factor dynamically per pixel and frame
  • done by calculating per-pixel temporal gradients. These are reconstructed from sparse information that captures the change of luminance between the last and current frame

Compiling DirectXShaderCompiler on Linux/macOS

Veldrid Support for SPIR-V Shaders

  • low-level C# graphics library now supports SPIR-V shader for all supported backends
  • exposes specialization constants on the API level and emulates them at translation time for backends that don’t support them