Graphics Programming weekly - Issue 48 — July 22, 2018


Disney Animation Data Sets

  • the history behind the release of the Disney datasets of large-scale scenes
  • comparison of the scene rendered using Disney’s renderer and PBRT 3


A High-Performance Software Graphics Pipeline Architecture for the GPU

  • paper discussing the software implementation of the rasterization pipeline using compute shaders
  • using a dynamic approach that adjusts to the workload dynamically
  • comparison within environments taken from games to evaluate the pipeline overhead
  • showcase of what kind of effects are possible with a software approach
    • custom primitive rendering
    • programmable blending
    • adaptive supersampling
  • in-depth performance comparison against hardware and other software approaches


Followup to Atmospheric Scattering—Part 1

  • follow up series of 2012’s GPU Pro 3 model
  • dynamic, real-time atmospheric model without pre-calculations
  • explains aerial perspective and the Chapman approximation to optical depth


Visualizing 2D Vector Fields

  • showcase different ways to visualize a 2d flow field
  • presentation of an algorithm that allows the creation of loopable animations from vector fields


TL;DR of the paper 'Conservative Z-Prepass for Frustum-Traced Irregular Z-Buffers'

  • summary of “Conservative Z-Prepass for Frustum-Traced Irregular Z-Buffers” paper
  • explanation of irregular z-buffer and conservative shadow maps and how they are combined


Sampling Anisotropic Microfacet BRDF

  • mathematical derivations of importance sampling for GGX, Beckmann, and Blinn-Phong


Writing a Modern Metal App from Scratch: Part 2

  • part 2 of the Metal tutorial
  • adding support for depth buffers, some simple lighting with textures
  • extending the application to support multiple lights, objects, and materials with some basic animations


Vulkan input attachments and sub passes

  • explanation of Vulkan render passes example
  • how to create Render passes
  • manage shader bindings for input attachments and how to use them from within the GPU shader


Musings on cross-platform graphics engine architectures – Part 1

  • start of a series about graphics engine architecture
  • core design goals and pillars for the author’s graphics engine
    • embrace concepts introduced in modern graphics APIs
    • make job-based multi-threaded execution a first class citizen
    • define a clear, small API, but be open towards extension


Revisiting The Vertex Cache: Understanding and Optimizing Vertex Processing on the modern GPU

  • a new vertex cache optimization algorithm that is able to improve cache usage on NVidia hardware by taking advantage of vertex batch sizes


TL;DR of the paper 'Revisiting The Vertex Cache: Understanding and Optimizing Vertex Processing on the modern GPU'

  • summary of the “Revisiting The Vertex Cache: Understanding and Optimizing Vertex Processing on the modern GPU” paper


Shader Showcase Saturday #2

  • shader showcase of different waterfall effects


metal shaders: color inversion

  • explains what color inversion is and how to implement it using metal


Multipass Shaders (& inverted Hull outlines)

  • tutorial on how to use multi-pass shaders in unity to implement an outline drawing effect
  • first pass object is drawn like usual
  • in the second pass drawn with front face culling and slightly scaled up to define the outline