Graphics Programming weekly - Issue 64 — November 25, 2018


Bringing Ray-tracing into Remedy‘s Northlight Engine

  • a brief overview of the concepts of the ray tracing extension
  • started integration with replacing screenspace AO and shadow map implementations
  • how to implement ray trace reflections, techniques to reduce noise and optimizations
  • best optimization advice is to split ray casting and shading
  • export ray hit information from raycasting shader, and shade samples later using a conventional compute shader
  • overview of the indirect diffuse voxel solution used in Quantum Break and how ray tracing can be used to improve the results


Real-Time Fluid Simulation in Shadow of the Tomb Raider

  • overview of the Navier-stokes equation, look at each step of the implementation and how it was integrated into the engine
  • scrollable grid, only run simulation near the player character, a static map for the rest of the world
  • obstacle injection uses capsule vs. water plane collision checks
  • algae implementation uses virtual particles that convert density to particles, applies simulations, and turns back to densities


Vulkan & OpenGL CAD Mesh Shader Sample

  • Nvidia sample for mesh shaders using Vulkan and OpenGL
  • presents performance comparison for different meshes and a varying number of vertex attributes


How does a GPU shader core work?

  • explains the GPU programming model, how shaders are executed
  • showcases the differences between CPU and GPU design


All about coding things

  • twitter collection of many graphics and game programming related links

Foggy Window Shader in Unity

  • explains how to implement a shader that simulates a foggy window effect applied to a plane in 3D space
  • allows the user to clean parts of the window. Foggy state returns after some time has passed


Using A Custom Toolchain In Visual Studio With MSBuild

  • explains how to integrate the DirectX shader compiler (DXC) into the Visual Studio build system (msbuild)
  • integration of dependency tracking
  • detecting headers
  • shows how to provide a regex to integrate with the Visual Studio error window


Rendering related threads

  • collection of rendering related twitter threads


Vulkan education survey

  • Khronos survey looking for feedback on Vulkan education material

Model for Real Time—Beyond Counting Polygons

  • beginner level overview about consideration for modeling techniques related to performance and minimizing z-fighting artifacts


Fast, Constant Time Sphere Indexing, Part 1

  • article with interactive and live tweakable examples
  • presents a technique that allows constant time conversion from a position on or above a sphere to the nearest triangle index using an octahedron subdivision model


If you are enjoying the series and getting value from it, please consider supporting this blog.

Support this blog


Parallel Shader Compilation for Ray Tracing Pipeline States

  • explains how to use new D3D12 API additions to precompile shaders for DirectX raytracing in parallel into a native hardware format


Dota 2 OpenGL vs. Dx9 vs. Dx11 vs. Vulkan

  • performance comparison of OpenGL, D3D9, D3D11, and Vulkan in Dota 2


Ni No Kuni 2: frame analysis

  • frame breakdown of an interior scene in Ni No Kuni 2
  • uses a light pre-pass architecture
  • the cartoon edge line is using FXAA for smoother lines, and the final render result uses SMAA

Low-Discrepancy Blue Noise Sampling

  • C++ header only implementation to generate 2D blue noise sample points

Rasterization in One Weekend, Part I

  • part 1 of the series on writing a software rasterizer in C++
  • explains the concept of barycentric coordinates, edge functions and how they are combined to rasterize a 2D triangle


Vulkan Synchronization Primer - Part I

  • overview of the synchronization primitives of the Vulkan API
  • explains concepts of barriers, access masks, semaphores, and queue transitions


Vulkan Synchronization Primer - Part II

  • the distinction between memory and execution barrier
  • explains render passes including sub-region dependencies
  • look at GPU → CPU synchronization


If you are enjoying the series and getting value from it, please consider supporting this blog.

Support this blog