Graphics Programming Weekly

collection of all articles included in the series, curated by Jendrik Illner


  • Float Compression 7: More Filtering Optimization

    - the article continues the series on float compression topics

    archive / summary

  • PIX 2303.02: You asked, we listened! A bumper PIX release

    - new release of PIX contains a vast list of new developments

    archive / summary

  • Understanding Vulkan device buffer address alignment

    - the article explains the alignment requirements of buffer loads from VK_KHR_buffer_device_address

    archive / summary

  • Real-time Cluster Path Tracing for Remote Rendering

    - the presentation covers a real-time cluster-based path

    archive / summary

  • [video] Simple Lighting in Defold - Screen Space Light Maps

    - the video tutorial presents a simple lighting model that uses sprites to define light effects

    archive / summary

  • Vulkan all the way: Transitioning to a modern low-level graphics API in academia

    - the paper explains the experience of transitioning university classes to be taught using Vulkan in...

    archive / summary

  • [video] How to Improve Shader Performance by Resolving LDC Divergence

    - the video discusses the problem of non-uniform constant loads within a single wrap

    archive / summary

  • CUDA LOD Generation

    - the paper presents how to use GPU-based techniques to implement LOD construction of point clouds

    archive / summary

  • [video] Lighting // Terrain Rendering episode #5

    - the latest part of the video tutorial discusses how to apply lighting to a terrain using OpenGL

    archive / summary

  • How to render it. Ten ideas to solve Computer Graphics problems.

    - the article presents an overview of 10 aspects to consider when approaching solving a computer gra...

    archive / summary

  • Setting up a bindless rendering pipeline

    - the talk describes to setup a bindless rendering pipeline using Vulkan, D3D12, and HLSL shaders

    archive / summary

  • Reading Veach’s Thesis, Part 2

    - the article continues a series of understanding the Robust Monte Carlo Methods for Light Transport...

    archive / summary

  • Two-pass Gaussian blur coeffifients generator

    - the article provides a calculator that generates offsets and weights for a separable Gaussian blur...

    archive / summary

  • WebGPU Error Handling best practices

    - the article describes the error handling techniques that are available when using WebGPU

    archive / summary

  • Vulkanised 2023

    - the official website collects the links to the videos and slides of the talks presented at the Vul...

    archive / summary

  • An Open Letter to ARM / Mali: Please stop doing this

    - the article presents issues with the ARM/mali GPU device IDs and how they relate to GPU performanc...

    archive / summary

  • Impressions from Vulkanised 2023 Conference

    - the author presents his impression from the Vulkanied conference

    archive / summary

  • [video] Vulkanised 2023

    - the playlist of video recordings of the talks presented at the Vulkanised 2023 in Munich

    archive / summary

  • Teardown Teardown

    - the article presents a breakdown of how Teardown is being rendered

    archive / summary

  • Swapping Colours

    - the article provides an overview of different techniques to adjust object colors from objects

    archive / summary

  • [video] Calculating Ray-Sphere Intersections

    - the video tutorial explains how to implement ray-sphere intersection testing

    archive / summary

  • Fast Real-Time Shading for Polygonal Hair

    - the paper presents a technique to approximate hair lighted by an environment map, direct lighting,...

    archive / summary

  • Float Compression 6: Filtering Optimization

    - the blog post continues the series on float compression techniques

    archive / summary

  • [video] Parallax Occlusion Optimization - Advanced Materials - Episode 15

    - the video discusses the difference between Parallax Occlusion and normal mapping

    archive / summary

  • Screen Space Indirect Lighting with Visibility Bitmask

    - the paper proposes an expansion of Horizon-based indirect illumination by using visibility bitmask...

    archive / summary

  • Raymarching Clouds

    - the post provides a walkthrough of how to implement raymarching for volumetric clouds

    archive / summary

  • GM Shaders Mini: Blendmodes

    - the short tutorial shows how to recreate photoshop blend modes using GLSL shader code

    archive / summary

  • A fast and precise triangle rasterizer

    - the article presents how to implement a software triangle rasterizer

    archive / summary

  • Getting Started with Vulkan Compute Acceleration

    - the tutorial explains the basics of compute shader usage with Vulkan by implementing a compu...

    archive / summary

  • Technically Art: Issue 138 (11.02.2023)

    - a collection of tech art tweets covering topics such as procedural modeling, volumetric motion blu...

    archive / summary

  • [video] Texturing // Terrain Rendering episode #4

    - the video tutorial explains how to apply textures to a terrain system

    archive / summary

  • Float Compression 0: Intro

    - the start of a series of blog posts that explores the space of compressing floating point data

    archive / summary

  • GM Shaders Mini: Normal Maps

    - short tutorial explains the concept of normal maps and how it influences the lighting computations...

    archive / summary

  • Shader Tutorial: Subsurface Scattering

    - the article explains how to create a shader in Unity that gives an object a subsurface scattering ...

    archive / summary

  • Compute Shader thread index to 2D coordinate

    - the blog post explains how to convert a one-dimension threadIndex from compute shader into a 2D co...

    archive / summary

  • [video] Sand Shader - Advanced Materials - Episode 14

    - the video tutorial shows how to adjust Unity and Unreal Shading models to be more fitting for Sand...

    archive / summary

  • WebGL / WebGPU Jan 2023 meetup highlights

    - the article presents a summary of what was discussed at the WebGL / WebGPU meetup

    archive / summary

  • The Energy Distance as a Replacement for the Reconstruction Loss in Conditional GANs

    - the paper presents an alternative way to deal with the instability of generative adversarial netwo...

    archive / summary

  • PS2 Vector Unit Lighting on Shadowman2

    - the article presents a look back at the Shadowman game implementation for the PS2

    archive / summary

  • Teardown Frame Teardown - Rendering analysis

    - the article presents a rendering analysis of the game Teardown

    archive / summary

  • Accelerated Photon Mapping for Hardware-based Ray Tracing

    - the paper presents how to take advantage of ray tracing hardware for progressive photon mapper

    archive / summary

  • Bringing Nanite to Fortnite Battle Royale in Chapter 4

    - the article explains updates required for Chapter 4 of Battle Royale

    archive / summary

  • Introducing Compressonator v4.3

    - the new release introduces support for the Brotli

    archive / summary

  • [video] Image-based Lighting (IBL) of PBR Materials [Shaders Monthly #11]

    - the video presents how to implement image-based lighting of the Cook

    archive / summary

  • Infinite Quadtrees – Fractal Coordinates

    - the article introduces the idea of expression quadtrees in terms of a collection of square grids

    archive / summary

  • Learn WebGPU

    - the WIP guide covers how to use the WebGPU graphics API from C++

    archive / summary

  • The LookAt Matrix

    - the article presents how to implement a camera look

    archive / summary

  • Lumen brings real-time global illumination to Fortnite Battle Royale Chapter 4

    - the blog post describes what changes were required to make Lumen work in 60 FPS mode for the new s...

    archive / summary

  • Virtual Shadow Maps in Fortnite Battle Royale Chapter 4

    - the article explains the issue that needed to be solved for Virtual Shadow Maps at 60fps

    archive / summary

  • [video] SIGGRAPH 2022 - Advances in Spatial Hashing

    - the video explains how Spatial hashing applies to storing sparse spatial data

    archive / summary

  • Fast, Near Lossless ‘Compression’ of Normal Floats

    - the article explains a method to compress 32-bit floats into 24

    archive / summary

  • High-Performance Graphics 2023 - Call for Participation

    - the High-Performance Graphics 2023 conference is open for submissions

    archive / summary

  • Announcing GFXReconstruct (v0.9.17) with DirectX®12 and DirectX® Raytracing support

    - the article announces that the GFXReconstruct now supports D3D12 (previously was Vulkan only)

    archive / summary

  • [video] Midpoint Displacement // Terrain Rendering episode 3

    - the video explains a second technique to generate terrains taken from the Focus on 3D Terrain Prog...

    archive / summary

  • Rotation with three shears

    - the article shows how to rotate a 2D sprite using 3 shear operations

    archive / summary

  • AMD RDNA™ 3 Instruction Set Architecture (ISA) reference guide is now available

    - the new AMD hardware guide for RDNA3 has been released

    archive / summary

  • Approximate projected bounds

    - the article shows techniques implement conservative techniques to project bounding boxes and spher...

    archive / summary

  • Use.GPU Goes Trad

    - the article describes how the Use.GPU level of abstraction is continuing to evolve

    archive / summary

  • Tangent Spaces and Diamond Encoding

    - the article provides an overview of Tangen Space Encodings

    archive / summary

  • Optimize Your Graphics with RenderDoc Meta Fork

    - the article presents the Meta Quest exclusive features of the RenderDoc fork

    archive / summary

  • An Introduction to Vulkan: A Full Day Tutorial

    - during the Vulkanised 2023 conference in Munich, a full

    archive / summary

  • Water Wave Simulation

    - the article aims to develop an intuition for FFT (Fast Fourier Transform) and how it's underlying ...

    archive / summary

  • Random thoughts after moving from GLSL to HLSL

    - the author describes the personal experience with GLSL and HLSL gained through moving AnKi 3D betw...

    archive / summary

  • Min/Max Buffer Precision Improvement

    - the blog post explains how to improve the precision when encoding min

    archive / summary

  • How to accelerate AI applications on RDNA 3 using WMMA

    - the article covers how Wave Matrix Multiply Accumulate (WMMA)

    archive / summary

  • Practical Tips for Optimizing Ray Tracing

    - the article provides techniques to speedup raytracing workloads

    archive / summary

  • Snowglobe

    - the article presents a breakdown of how a Snowglobe can be implemented using Unity

    archive / summary

  • Let’s talk about (GPU) crashes

    - the article presents a discussion of different sources of GPU hangs

    archive / summary

  • [pptx] Deep Dive into FidelityFX Super Resolution 2

    - the presentation contains a step-by-step walkthrough of the FSR implementation

    archive / summary

  • Updates in d3dx12.h: Nuget Packaging, Header Bloat Reduction, and D3DX12GetCopyableFo...

    - a new version of the D3D Agility SDK has been released

    archive / summary

  • [video] Fault Formation // Terrain Rendering episode 2

    - the video shows how to implement a Fault Formation algorithm for a procedural terrain using OpenGL...

    archive / summary

  • [video] niagara: Culling optimization

    - another part of the Vulkan series that implement GPU culling

    archive / summary

  • Experimenting with fp16, part 2

    - the blog post continues the discussion of the effects of using 16

    archive / summary

  • Requiem for piet-gpu-hal

    - the article discusses the reasoning why Vello (a GPU compute

    archive / summary

  • Experimenting with fp16 in shaders

    - The article discusses the use of 16-bit floating point numbers (fp16) in shaders

    archive / summary

  • Improving color quantization heuristics

    - the article discusses techniques for improving color quantization algorithms

    archive / summary

  • Implement MacOS Monterey screen saver in shadertoy(less than 100 lines of code)

    - the tutorial shows how to implement an effect that recreates the color and wave pattern of the scr...

    archive / summary

  • Screen-space Variable Rate Shading in Unity with DirectX 12.

    - The article discusses screen-space variable rate shading (VRS), a technique that can improve perfo...

    archive / summary

  • Column Major and Row Major Vectors and Matrices (for games)

    - the article explains the difference between row-major and column

    archive / summary

  • [video] Hexagonal Tiling Explained!

    - The video explains how to create a hexagon using SDFs in shadertoy

    archive / summary

  • Unity Mobile Game Performance Optimization: Balance between Graphics Performance and ...

    - the article discusses strategies for optimizing the performance of mobile games in Unity

    archive / summary

  • Two-Pass Occlusion Culling

    - the blog posts describes how Hierarchical Z-Buffer (HZB) Occlusion Culling uses a depth buffer to ...

    archive / summary

  • Ghost of Tsushima SIGGRAPH Talks

    - summary of two Siggraph talks by the author covering Ghost of Tsushima

    archive / summary

  • Some News About the 4th Edition of Physically Based Rendering

    - the post announces that the new edition of PBR will be released on March 28, 2023

    archive / summary

  • [video] niagara: Triangle culling

    - the stream covers the implementation and exploration of triangle culling into a GPU culling pipeli...

    archive / summary

  • Path tracing workshop

    - Intel released a Path tracing workshop of 76 minutes of videos and ShaderToy exercises

    archive / summary

  • rust-gpu v0.4

    - a new version of rust-GPU that allows Rust code to generate SPIR

    archive / summary

  • [video] Coding a Bezier curve from scratch!

    - the video presents how to implement Bezier Interpolation

    archive / summary

  • Introduction of the Raytracing Technology Part 2

    - the article continues the series by covering an overview of raytracing techniques

    archive / summary

  • Meshlet sizing theory

    - the article presents metrics to calculate to judge the optimal size for meshlets

    archive / summary

  • [video] Compute Shaders in Bevy

    - the video presents how to integrate a compute shader into the Rust

    archive / summary

  • Deferred Shading

    - the article provides an explanation of deferred shading

    archive / summary

  • Stream compaction using wave intrinsics

    - the article presents how to use wave intrinsics to reduce the number of atomic operations required...

    archive / summary

  • Introducing AMD Render Pipeline Shaders SDK

    - This article provides an overview of the Render Pipeline SDK design and implementation

    archive / summary

  • Introduction of the Raytracing Technology Part 1

    - the article provides an overview and history of raytracing

    archive / summary

  • [video] Heightmaps // Terrain Rendering episode 1

    - the video is the start of a new video series to render a height map using OpenGL

    archive / summary

  • [video] World Normal Mix Shader in Godot

    - the video tutorial shows how to implement a shader in Godot that mixes two textures into a single ...

    archive / summary

  • [video] CUDA 12 New Features and Beyond

    - the video discusses new features in Cuda 12 and a look at future developemnts

    archive / summary

  • GM Shaders Mini: Fluids

    - the article presents a technique to improve the look of a particle based fluid system

    archive / summary

  • Bringing Nvidia® and AMD support to oneAPI

    - the article explains how the oneAPI API can be used to target intel, nvidia and AMD GPUs

    archive / summary

  • Resolving Long Standing Issues with Vulkan Windowing System Integration (WSI)

    - the blog post explains two new extensions that have been added to Vulkan to improve interaction wi...

    archive / summary

  • Understanding The Math Behind ReStir DI

    - the in-depth article explains the mathematics behind the original ReStir and an in

    archive / summary

  • UE5.1 - New shading models and changing the GBuffer

    - the article presents how to integrate a custom toon shading model into UE5.1

    archive / summary

  • [video] Live Coding: 3d Truchet Weave

    - the video presents a walkthrough of how to replicate a Truchet Weave pattern using ShaderToy

    archive / summary

  • Fast CDF generation on the GPU for light picking

    - the blog post explains how to build a cumulative distribution function (CDF) to accelerate the sam...

    archive / summary

  • [video] The Continuity of Splines

    - the detailed video explains splines and concepts derived/extended from these

    archive / summary

  • Area Lights

    - the tutorial explains how to implement area lighting using OpenGL

    archive / summary

  • [video] Shader Code and Maths to Node Graphs

    - the presentation focuses on how to approach the implementation of abstract code/math expressions t...

    archive / summary

  • ECCV 2022 Tutorial - Neural Volumetric Rendering for Computer Vision

    - slides and videos for the Neural Volumetric Rendering for Computer Vision have been released

    archive / summary

  • Behind the Pretty Frames: Death Stranding

    - the article provides a detailed look into a frame breakdown from the Decima engine

    archive / summary

  • MIPNet: Neural Normal-to-Anisotropic-Roughness MIP Mapping

    - the paper presents a new method to calculate texture MIP maps that preserves compatibility with ex...

    archive / summary

  • [video] How Big Budget AAA Games Render Clouds

    - the video provides a summary of the cloud rendering techniques covered in Horizon: Zero Dawn and t...

    archive / summary

  • Studying 'Spectral Primary Decomposition'

    - the article continues the series on spectral rendering

    archive / summary

  • [video] I Made a Game Entirely Within a Shader (almost) | Game Dev Challenge

    - the video presents how the author developed a pong game using only a pixel shader in Unity

    archive / summary

  • [video] How I Made The World with SINE

    - the video focuses on the definition of a procedural terrain from a vertex shader

    archive / summary

  • [video] [Episode 23] From Local to World Space (Model Matrix Transformation)

    - the video is the latest part of an OpenGL learning series that focuses on the explanation of verte...

    archive / summary

  • Shaders Explained: Dithering

    - the article explains how two implements two different types of dithering in metal shaders

    archive / summary

  • [video] Why Did Link's Cel Shading Disappear?

    - the video does a deep dive into deferred shading techniques to explain why a graphical artifact in...

    archive / summary

  • Announcing ComputeSharp 2.0 — run C# on the GPU with ease through DirectX 12 and D2D1...

    - the article presents the library that allows C# code to be executed via HLSL, D2D1, XAML, and more...

    archive / summary

  • VK_EXT_descriptor_buffer

    - discusses issues with the current Vulkan binding model

    archive / summary

  • How to make Sage's ice wall ability from Valorant

    - the tutorial explains how to create an ice wall VFX inspired from the game Valorant in Godot

    archive / summary

  • Technically Art: Issue 135 (25.11.2022)

    - contains a collection of tweets covering procedural texturing with MaterialX, shader VFX examples

    archive / summary

  • [video] Car Paint Shader - Advanced Materials - Episode 9

    - the video tutorial presents several techniques for creating a car paint shader

    archive / summary

  • Shader Reflection using the DirectX Shader Compiler

    - the article presents how to use the DXC library to compile and gather information from compiled D3...

    archive / summary

  • Brotli-G: An open-source compression/decompression standard for digital assets that i...

    - AMD introduces a GPU-compatible implementation of the Brotli lossless compression algorithm

    archive / summary

  • Introduction of the ASTC Texture Compression

    - the article provides an overview of the different ASTC Texture Compression formats available

    archive / summary

  • [video] But what is a convolution?

    - the video provides a great visual explanation of convolution filters

    archive / summary

  • Spherical Elevation Adjusting Arbitrary Normals

    - the article explains how to offset normals along spheres so that displacement doesn't cause self

    archive / summary

  • Radeon™ Raytracing Analyzer source code available + meet amdrdf

    - the AMD Radeon Raytracing Analyzer has been open-sourced

    archive / summary

  • Agility SDK 1.608.0: Enhanced Barriers and more

    - new agility SDK release contains Enhanced Barriers (no longer in preview SDK, removing the need fo...

    archive / summary

  • VK_EXT_descriptor_buffer

    - new Vulkan proposal outlines improvements to the management of descriptor memory

    archive / summary

  • [video] GCAP22 Highlights: Expert Level Debugging

    - the presentation provides an overview of x64 assembly

    archive / summary

  • AMD lab notes

    - the series of blog posts aimed to share the lessons learned from tuning applications for AMD GPUs

    archive / summary

  • Decompiling Nvidia shaders, and optimizing

    - the article presents how to decompile NVidia OpenGL and Vulkan shader

    archive / summary

  • Technically Art: Issue 134 (18.11.2022)

    - a collection of tweets covering a flood filling, VFX breakdowns, unit shader books

    archive / summary

  • [video] Metal Shader - Advanced Materials - Episode 7

    - the video tutorial explains how to create a metal material

    archive / summary

  • BC1 Compression Revisited

    - the article describes how to compress high-quality BC1 images efficiently

    archive / summary

  • Accelerating Load Times for DirectX Games and Apps with GDeflate for DirectStorage

    - the article presents an overview of GPU-based GDeflate compression

    archive / summary

  • Graphics API secrets: format casting

    - the article presents the API rules for casting between texture formats in both Vulkan and D3D12

    archive / summary

  • GPU submission strategies

    - the presentation shows how submitting/recording commands lists from the API to the GPU affects per...

    archive / summary

  • Implicit half edges

    - the presentation explains what Half edges data structure is

    archive / summary

  • Triplanar, Dithered Triplanar, and Biplanar Mapping in Unreal

    - the article provides an overview of the implementation of three different techniques for procedura...

    archive / summary

  • [video] Physically Based Rendering // Intermediate OpenGL Series

    - the video provides an overview of a Physically Based shading model

    archive / summary

  • Bindless rendering — validation

    - the blog post describes the design of a validation system for bindless shader resource access

    archive / summary

  • [video] SIGGRAPH 2022 Real-Time Live!

    - recording of the Siggraph showcase of original, interactive projects of the year

    archive / summary

  • Nubis, Evolved: Real-Time Volumetric Clouds for Skies, Environments, and VFX

    - the slides for the Real-Time Volumetric Clouds of Horizon Zero West from SIGGRAPH have been releas...

    archive / summary

  • [video] Deferred Lights - Pixel Renderer Devlog #1

    - the video explains the implementation of a 2D deferred shading system

    archive / summary

  • GM Shaders Mini: Noise 2

    - the article explains how to generate Worley, Voronoi, and fractal noise in a GLSLS shader

    archive / summary

  • [video] Global Lecture with Ed Catmull - The Wild, Unexpected, Exponential Ride Throu...

    - the lecture presents an overview of computer-graphics technology of the last 50 years as experienc...

    archive / summary

  • GM Shaders Mini: Noise

    - the tutorial covers how to generate different noise type in shaders

    archive / summary

  • [video] Shader Sauce: How to Use Shaders to Create Stylized VFX

    - the video talk introduces a collection of fundamental shader concepts and tricks aimed at the crea...

    archive / summary

  • Vector text rendering in Unreal Engine

    - the article covers how to extend UE4 with a custom vertex format and shading pass

    archive / summary

  • [video] Investigating and Dispelling Shader Myths... with Science!

    - the talk presents a set of common misconceptions about shader code patterns

    archive / summary

  • Write your first GPU Kernel using Metal

    - the tutorial explains the basic steps required to execute a metal compute shader kernel

    archive / summary

  • Unreal Engine Game Optimization on a Budget

    - the presentation provides an overview of essential concepts when optimizing an Unreal Engine game

    archive / summary

  • MeshTaichi: A Compiler for Efficient Mesh-based Operations (SIGGRAPH Asia 2022)

    - the paper presents a mesh computation compiler that separates mesh operations from the data partit...

    archive / summary

  • [video] ICC Colour Profiles, AdobeRGB & sRGB, and \"Colour Management\" on Windows. T...

    - the video shows the importance of color profiles

    archive / summary

  • [video] Intel’s New AI: Amazing Ray Tracing Results!

    - the video presents a new upsampling technique developed by intel (Temporally Stable Real

    archive / summary

  • Shader Tutorial: Enter The Matrix

    - the tutorial presents how to rotate a texture in 2D space

    archive / summary

  • Low Discrepancy Color Sequences

    - the article describes a possible solution to generate a color palette with neighboring colors bein...

    archive / summary

  • Performance Comparison of Bounding Volume Hierarchies for GPU Ray Tracing

    - the paper presents a comparison of a large number of methods for the construction of BVHs for ray ...

    archive / summary

  • FSR 2.1 UE plugin enhancements part 1: Intro & improving foliage appearance using the...

    - the 5 part series provides a walkthrough of common issues when using the FSR 2.0 upscaler in Unrea...

    archive / summary

  • binary search for sdfs - 2018, 2022

    - the article presents the story of how the author experimented with binary search in a shader for a...

    archive / summary

  • Godot SDFGI - Solving the accessible Global Illumination problem in Godot

    - the slides discussing the new GI solution implemented for Godot

    archive / summary

  • Opening HLSL Planning

    - the blog post announces that a new, more open model for HLSL language development

    archive / summary

  • SIGGRAPH Asia 2022 papers on the web

    - a collection of papers from SIGGRAPH Asia 2022 - the list is updated every couple of days at this ...

    archive / summary

  • Snowy Rock Shader - Advanced Materials - Episode 4

    - the video shader tutorial series covers how to create a shader that allows procedural rock shading...

    archive / summary

  • GI-1.0: A Fast Scalable Two-Level Radiance Caching Scheme for Real-Time Global Illumi...

    - the AMD paper presents the findings for a new dynamic GI solution

    archive / summary

  • stanford - Computer Science cheatsheets

    - a collection of cheatsheets on the high-level concepts of topics such as AI, machine learning, and...

    archive / summary

  • Ray Tracing: How NVIDIA Solved the Impossible!

    - the video presents a history of light transport algorithms development

    archive / summary

  • Emulating Double Precision on the GPU to Render Large Worlds

    - the article presents that the Godot engine supports compilation in double

    archive / summary

  • My mesh shaders talk at XDC 2022

    - the blog post provides the text version of the mesh shader talk presented

    archive / summary

  • Better outline rendering using surface IDs with WebGL

    - the article presents how to improve an outline rendering technique by using surface IDs instead of...

    archive / summary

  • Improve Shader Performance and In-Game Frame Rates with Shader Execution Reordering

    - the article presents how the Nvidia hardware feature Shader Execution Reordering (SER) can be leve...

    archive / summary

  • Transparent and Crystal Clear: Writing Unity URP Shaders with Code, Part 3

    - the article (and video) explains how to author and integrate shaders with transparency support for...

    archive / summary

  • DirectStorage 1.1 Coming Soon

    - the article presents that the next DirectStorage release will start to support GPU

    archive / summary

  • [video] Sparkling Snow Shader - Advanced Materials - Episode 2

    - the video tutorial series covers how to build a complex rock shader

    archive / summary

  • Intel® Arc™ Graphics Developer Guide for Real-Time Ray Tracing in Games

    - the Developer Guide provides a functional description of Intel’s hardware ray

    archive / summary

  • Upscale SDK comparison

    - the blog post provides a comparison of DLSS 2.4, FSR 2.1.1, and Intel XeSS upscaling techniques

    archive / summary

  • [video] What is NVIDIA DLSS 3? | The Performance Multiplier

    - the video provides a high-level explanation of the DLSS 3 system

    archive / summary

  • Lighting Test for Unreal Engine 5

    - a collection of simple test scenes for light conditions in UE5 and NVIDIA Falcor 5.2 Mogwai path t...

    archive / summary

  • My take on shaders: Compute shaders

    - the article presents how to implement a compute shader that can be used to paint on vertex meshes ...

    archive / summary

  • [video] How to blend skeletal animations // Intermediate OpenGL Series

    - the video explains how to implement blending between two skeletal animations

    archive / summary

  • Post-Processing – In-Depth Camera Distortion Effects

    - the article provides examples of different camera distortion effects (with code examples)

    archive / summary

  • PIX 2210.10-preview: Initial support for Preview Agility SDK v706

    - PIX adds a separate preview branch of the tool that supports the Preview Agility SDKs

    archive / summary

  • [video] How Ray Tracing (Modern CGI) Works And How To Do It 600x Faster

    - the video provides a walkthrough of ray tracing fundamentals

    archive / summary

  • Progressive Material Caching

    - the paper introduces a progressive technique to cache material evaluations at runtime

    archive / summary

  • On AlphaTensor’s new matrix multiplication algorithms

    - the article discusses recent AlphaTensor’s discovery on matrix multiplication

    archive / summary

  • Real-time distance field builder twitter thread

    - the Twitter thread summarises the real-time distance field generator used by AMD research work

    archive / summary

  • Fused BVH to Ray Trace Level of Detail Meshes

    - the paper presents a method to extend a mesh BVH with additional data so that it can be shared bet...

    archive / summary

  • Combining GPU Tracing Methods within a Single Ray Query

    - the paper presents a method that combines distance field tracing with hardware ray tracing

    archive / summary

  • Technically Art: Issue 128 (07.10.2022)

    - a collection of Twitter posts about a large variety of tech artist topics

    archive / summary

  • Notes about Nanite in UE5.1 preview

    - the article presents an overview of ongoing Nanite developments the developer noticed in the UE5.1...

    archive / summary

  • Simulating Wind on Procedural Terrain using GPU Accelerated Lattice Boltzmann Method

    - the blog post discusses a numerical method for fluid flow to simulate wind flow over terrain

    archive / summary

  • Notes on screenspace reflections with FidelityFx SSSR

    - the article provides an overview of the implementation underlying AMDs' FidelityFx screen space re...

    archive / summary

  • [video] Introduction to Raytracing with the Radeon Developer Tools Suite

    - the video provides an introduction to the AMD raytracing tool

    archive / summary

  • Screen Post-processing Effects: Gamma Space and Linear Space

    - the article provides a summary of two plots for the existence of gamma space related to CRT and hu...

    archive / summary

  • Screen Post-processing Effects: Color Models and Color Grading

    - the article discusses the RGB and HSV color spaces

    archive / summary

  • [video] An In-Depth look at Lerp, Smoothstep, and Shaping Functions

    - the video presents visual explanations of lerp (linear interpolation)

    archive / summary

  • Bindless Rendering in DirectX12 and SM6.6

    - the blog post provides an introduction level guide to using the D3D12 bindless model

    archive / summary

  • An Algorithm for Polygon Intersections

    - the article presents how to calculate the intersection between axis

    archive / summary

  • [video] Nvidia DLSS 3 on RTX 4090 - Exclusive First Look - 4K 120FPS and Beyond

    - the video explains how DLSS uses motion vectors and optical flow fields to implement AI Frame Gene...

    archive / summary

  • Vulkanised conference - call for submissions

    - the 2023 Vulkanised conference has been announced for in

    archive / summary

  • Intel(R) Xe Super Sampling (XeSS) SDK

    - Intel has released the SDK for the XeSS upscaler

    archive / summary

  • Ray Tracing of Signed Distance Function Grids

    - the paper presents a comparison of traversal and voxel intersection testing of signed distance fun...

    archive / summary

  • Color-Perception-Guided Display Power Reduction for Virtual Reality

    - the paper presents a method designed for VR applications that adjust colors to reduce display colo...

    archive / summary

  • Animation Retargeting

    - the blog post provides a method to allow the retargeting of animations between models that share a...

    archive / summary

  • [video] Post Process VHS Filter Part 3 - Shader Graph Basics - Episode 62

    - the video tutorial presents how to implement a noise that recreates the interference of unshielded...

    archive / summary

  • Advances in Real-Time Rendering in Games 2022

    - the slides for the Siggraph 2022 Advances in Real

    archive / summary

  • Quaternions: a geometrical interpretation.

    - the article presents a visual interpretation of Quaternion mathematics

    archive / summary

  • [video] Easily Remaster Classic Games with NVIDIA RTX Remix

    - the video introduces the NVIDIA RTX Remix engine

    archive / summary

  • [video] Soft Shadows - PCF & Random Sampling // OpenGL Advanced Rendering Series

    - the video tutorial explains how to improve an OpenGL shadow mapping implementation to allow softer...

    archive / summary

  • Improving raytracing performance with the Radeon Raytracing Analyzer (RRA)

    - the post provides insights into ray tracing BVH performance

    archive / summary

  • Vulkan Render-Queues and how they Sync

    - the article presents how a render graph gets updated to handle exclusive resource ownership betwee...

    archive / summary

  • [video] SIGGRAPH 2022 Talk - A Fast & Robust Solution for Cubic & Higher-Order Polyno...

    - the video presentation provides a walkthrough of methods to find the real roots of polynomials

    archive / summary

  • Defeat Banding – Part II

    - the article discusses a method to detect artifacts in video

    archive / summary

  • [video] Pixelation Filter - Shader Graph Basics - Episode 61

    - the video tutorial presents how to create a fullscreen post

    archive / summary

  • Fast Post-Processing on the Oculus Quest and Unity

    - a short article that shows an option to apply tone mapping in forward shading without wanting to u...

    archive / summary

  • Screen Post-processing Effects: Depth of Field (DOF) and Its Implementation

    - the article provides an overview of depth of field effects

    archive / summary

  • [video] Practical Skeletal Animation // Intermediate OpenGL Series

    - the video tutorial provides a walkthrough of issues in supporting animated models

    archive / summary

  • Visualizing General Relativity

    - the article explains a method to simulate and render different warped space

    archive / summary

  • Rendering my balls in a fragment shader

    - the blog post provides a walkthrough of how to render 2D billiard balls in a pixel shader

    archive / summary

  • Parallel curves of cubic Béziers

    - the article describes a method to generate a cubic Bézier curve that is parallel with a defined of...

    archive / summary

  • Improving Vulkan graphics state tracking in Mesa

    - the article discusses how API pipeline state maps onto different hardware types

    archive / summary

  • Technically Art: Issue 124 (9.09.2022)

    - a collection of tweets about tech art, VFX, and related topics

    archive / summary

  • Gradient-descent optimized recursive filters for deconvolution / deblurring

    - the post discusses infinite impulse response (IIR filter)

    archive / summary

  • [video] Post Process VHS Filter Part 2 - Shader Graph Basics - Episode 60

    - the second video of the series VHS filter series adds support for worn

    archive / summary

  • [video] Ray Marching, and making 3D Worlds with Math

    - the short video provides a great visual introduction to distance functions and ray marching

    archive / summary

  • Lighting participating media with thousands of lights

    - the article shows the Grid-Based Reservoirs sampling technique for dynamic lights in participating...

    archive / summary

  • Mesh Shading for Vulkan

    - mesh shader support has been added to Vulkan through VK_EXT_mesh_shader

    archive / summary

  • [video] Intel Arc Graphics | Intel Arc A-Series Graphics Ray Tracing Technology Deep ...

    - the video starts with a visual overview of rasterization, raytracing, and hybrid rendering techniq...

    archive / summary

  • Progressive image stippling and greedy blue noise importance sampling

    - the article presents a method to generate Progressive blue noise samples that follow the image con...

    archive / summary

  • [video] Post Process VHS Filter - Shader Graph Basics - Episode 59

    - the video presents how to implement two VHS effects, interlacing lines and YIQ color grading, in a...

    archive / summary

  • Compressing global illumination with neural networks

    - the blog presents the idea of using a simple neural network to encode diffuse indirect light for a...

    archive / summary

  • [archive] Practical Aspects of Spectral Data in Digital Content Production - SIGGRAPH...

    - second year of the spectral rendering Siggraph course

    archive / summary

  • Technically Art: Issue 123 (2.09.2022)

    - a collection of tweets about tech art, VFX, and related topics

    archive / summary

  • Barycentric Quad Rasterization

    - presents why and when a quad is being drawn as two triangles can cause discontinuities along the e...

    archive / summary

  • Practical Real-Time Hex-Tiling

    - the paper introduces an adaptation of the Heitz and Neyret texture tiling technique

    archive / summary

  • Clip control on the Apple GPU

    - the blog post provides an insight into how the apple metal driver is separated into components

    archive / summary

  • [video] Creating an Outline Effect as a Post-Process in Unity

    - the video tutorial explains how to implement an outline effect in Unity

    archive / summary

  • HPG 2022 Keynote: The Journey to Nanite - Brian Karis, Epic Games

    - the talk discusses the issues artist encounter and how Nanite goals are designed to resolve them

    archive / summary

  • CoG 2022: Automatic Testing and Validation of LoD Reductions Through Supervised Learn...

    - the paper introduces two convolutional neural networks (CNN) based techniques that can detect LOD ...

    archive / summary

  • The GPU Banana Stand

    - the article presents an overview of the composable declarative GPU authoring

    archive / summary

  • My personal hell of translating DXIL to SPIR-V – finale

    - the article continues the series of translating DXIL to SPIR

    archive / summary

  • Exploring Shaders with Compiler Explorer

    - the article presents how to integrate new compilers into the compiler explorer infrastructure (whi...

    archive / summary

  • [video] Let There Be Light (And Shadow) | Writing Unity URP Code Shaders Tutorial [2/...

    - the video tutorial presents how to write universal rendering pipeline shaders in HLSL

    archive / summary

  • Deconstructing Bézier curves

    - the article explains the underlying theory for Bézier curves and shows how the different component...

    archive / summary

  • Journey to Lumen

    - the article discusses the different approaches that were tried during the development of lumen

    archive / summary

  • [video] Resampled Importance Sampling: Foundations of ReSTIR

    - the video presents the foundation how to general ReSTIR sampling

    archive / summary

  • [video] Coding a crazy weave pattern

    - the video shows how to implement a Truchet effect using shadertoy

    archive / summary

  • Lightweight Multidimensional Adaptive Sampling for GPU Ray Tracing

    - the paper presents how to adapt multidimensional adaptive sampling for interactive real

    archive / summary

  • [video] Fog Rendering - Part 2 // 'ShaderX2 In Practice' series

    - the OpenGL fog rendering series extends the previous works and implements Layered and animated fog...

    archive / summary

  • [video] Post Process Cartoon Outlines - Shader Graph Basics - Episode 57

    - the video tutorial shows how to implement cartoon outlines in screen space

    archive / summary

  • NVIDIA Announces Full Open Source of Material Definition Language to Streamline Graph...

    - Nvidia open-sources MDL distiller and the GLSL backend

    archive / summary

  • Physically Based: a Database of PBR Values for Real-World Materials

    - A database of physically based values for CG artists (materials, Light Sources, Cameras)

    archive / summary

  • PIX 2208.10: SM 6.7 support, GPU and Timing Capture Improvements

    - new PIX release allows profiling to target different GPU clock rates (controlled by the hardware m...

    archive / summary

  • Using performance budgets in the Timing Capture metrics view

    - the post explains how to set up budgets for pix metrics

    archive / summary

  • Screen Post Processing Effects Chapter 1 – Basic Algorithm of Gaussian Blur and Its I...

    - the article explains the theory of a Gaussian blur algorithm

    archive / summary

  • Descriptors are hard

    - the article presents a description of the texture/buffer/sampler binding model supported by differ...

    archive / summary

  • Real-Time Path Tracing and Beyond

    - the presentation provides a brief overview of the implementation details for the Nvidia path trace...

    archive / summary

  • SIGGRAPH 2022 Links

    - a growing collection of content from SIGGRAPH 2022

    archive / summary

  • Beyond Linear Perspective: Art, Human Vision, and Computer Graphics

    - discusses the limitations of linear perspective and how classical artists rarely used it

    archive / summary

  • Explosion Decals

    - the article presents a technique to generate explosion decals aimed at a 3D topdown game

    archive / summary

  • [video] Bloom & Glow Post Process Effect - Shader Graph Basics - Episode 56

    - video tutorial shows how to implement a bloom effect using Unreal and Unity shader graphs

    archive / summary

  • High-Performance Graphics 2022

    - the program has been updated with links to the recording of all talks

    archive / summary

  • Vertex packing

    - the article describes the trade-offs between storing vertex information in a single buffer compare...

    archive / summary

  • Paper Digest: SIGGRAPH 2022 Highlights

    - a collection of papers presented at SIGGRAPH 2022 with a one

    archive / summary

  • Comparison of single image HDR reconstruction methods — the caveats of quality assess...

    - the paper presents that common image metrics are not a great metric to detect the subjective quali...

    archive / summary

  • [video] Microfacet BRDF: Theory and Implementation of Basic PBR Materials [Shaders Mo...

    - the video shows how to implement the Cook-Torrance microfacet BRDF

    archive / summary

  • HLSL Shader Model 6.7

    - the spec for the new features of shader model 6.7 has been released

    archive / summary

  • Shaders Explained: Gradients

    - the article presents how to write a metal shader to generate a 1D gradient

    archive / summary

  • Porting AnKi to Android… again after ~8 years

    - the article contains a small overview of steps taken to port the AnKi engine to support Android

    archive / summary

  • [video] Fog Rendering - Part 1 // ShaderX2 In Practice Series

    - the video tutorial presents how to implement 3 different methods of distance fogs from the ShaderX...

    archive / summary

  • [video] Compute Shaders || Lou Kramer || AMD

    - the presentation introduces compute-shaders, explaining the software and hardware concepts

    archive / summary

  • Introducing our brand new tool: Radeon™ Raytracing Analyzer 1.0

    - new tool from AMD to provide more insights into the performance of raytracing applications

    archive / summary

  • Synchronizing Present Calls Between Applications on Distributed Systems with DirectX ...

    - the article presents an Nvidia API extension that allows multiple buffer swaps (between windows an...

    archive / summary

  • Best Practices for Using NVIDIA RTX Ray Tracing (Updated)

    - Nvidia has updated the performance best practices for RTX usage

    archive / summary

  • GPU Memory Pools in D3D12

    - the detailed article explains the different memory pools available and how they differ between dif...

    archive / summary

  • A Rust shading language EDSL

    - the article discusses the Rust shades crate that allows writing Rust domain

    archive / summary

  • A better point light attenuation function

    - the article presents a derivation of a light attenuation function to separately control the maximu...

    archive / summary

  • UVs and You

    - the article aimed at beginners explains how images are applied to 3D objects

    archive / summary

  • GL_EXT_fragment_shader_barycentric: Wireframe

    - the article presents an overview of barycentric coordinates

    archive / summary

  • Adventures in Text Rendering: Kerning and Glyph Atlases

    - the article provides an overview of font rendering

    archive / summary

  • [video] Generation of simplified representations of the city, characters and vehicles...

    - the presentation video discusses the LOD generation used in Cyberpunk 2077 (3D models and material...

    archive / summary

  • Adventures with deferred texturing in horizon forbidden west

    - slides for the GDC presentation talking about the deferred texturing solution has been released

    archive / summary

  • zig-gamedev project

    - a growing collection of graphics samples and libraries for the zig programming language

    archive / summary

  • Efficently rendering glTF models

    - the article discusses how to load and process glTF models for efficient execution

    archive / summary

  • Behind the Pretty Frames: Resident Evil

    - a super detailed analysis of the RE Engine used by Resident Evil

    archive / summary

  • [video] Shadow Mapping Unleashed! // Intermediate OpenGL Series

    - the video tutorial explains common shadow problems and why they occur

    archive / summary

  • High Performance Graphics 2022 papers on the web

    - list of papers presented at High-Performance Graphics 2022

    archive / summary

  • [video] Rain Drips On The Lens Post-Process Effect - Shader Graph Basics - Episode 54

    - the video tutorial presents how to implement a fullscreen camera space rain effect

    archive / summary

  • [video] Spartan Engine Livestream #2: FSR 2.0 Integration

    - the stream shows a practical example of how to implement FSR 2.0 into the authors' personal engine...

    archive / summary

  • Swallowing the elephant into Blender

    - collecting of optimizations done to reduce the Moana USD scene import time into Blender from 3 hou...

    archive / summary

  • Some SIGGRAPH 2022 Info

    - a collection of advice for SIGGRAPH 2022 (virtual) attendees

    archive / summary

  • Performance Boosts and Enhanced Features in New Nsight Graphics, Nsight Aftermath Rel...

    - article presents improvements in the new Nsight and Aftermath releases

    archive / summary

  • [video] Procedural Grass in 'Ghost of Tsushima'

    - the GDC presentation covers how the grass is procedurally generated in compute shaders

    archive / summary

  • Order independent transparency: endgame

    - the article presents a couple additional order-independent transparency algorithms

    archive / summary

  • Advanced API Performance: SetStablePowerState

    - Nvidia presents best practices to achieve stable performance results on NVIDIA hardware

    archive / summary

  • [video] HPG 2022 Monday, Day 1 (enhanced)

    - the video recording of the first day of the High

    archive / summary

  • Agility SDK 1.606.3: Shader Model 6.7 is now publicly available!

    - the article focuses on the new capabilities added in shader model 6.7

    archive / summary

  • Preview Agility SDK 1.706.3-preview: SM 6.7, Enhanced Barriers and more

    - a new preview of the Agility SDK improves the enhanced barrier API support, significantly better d...

    archive / summary

  • AMD support for Shader Model 6.7 and enhanced barriers in the Agility SDK

    - a brief summary of the main features of shader model 6.7 and what is supported by the new AMD pre

    archive / summary

  • [video] How do you use shaders to dissolve a sphere?

    - the video shows how to implement a custom material into the Rust

    archive / summary

  • Creating a physically-based path tracer

    - the article presents a brief overview of techniques that can be used to upgrade a simple raytracer...

    archive / summary

  • Space Rangers with Cornrows

    - the short paper presents the Pixar technique for Modeling Braids and Curls

    archive / summary

  • EGSR 2022 Presentation – Generalized Decoupled Shading

    - the paper discusses a decoupled shading implementation that separates rasterization from shading b...

    archive / summary

  • Spatiotemporal Blue Noise Masks

    - the paper presents how to generate multiple 2D blue noise textures so that the blue noise is both ...

    archive / summary

  • [video] Vulkan 1.3 explained

    - the 4-hour video stream discusses the evolution of the Vulkan API

    archive / summary

  • Temporally Stable Real-Time Joint Neural Denoising and Supersampling

    - the paper presents a neural network architecture that allows both denoising and supersampling to b...

    archive / summary

  • GPU-Driven Real-Time Mesh Contour Vectorization

    - the paper presents a new GPU-based method to generate 2D contour strokes from 3D meshes

    archive / summary

  • Volume Rendering for Developers: Foundations

    - the lesson provides the foundations of ray marching through a volume

    archive / summary

  • Advanced Rendering Research Group at AMD

    - the new home for the AMD research team - provides a collection of publications, projects, presenta...

    archive / summary

  • Getting Started With DirectX Raytracing

    - the post provides a walkthrough of all the D3D12 elements that are involved in getting started wit...

    archive / summary

  • Planetary Shadow-Aware Distance Sampling

    - the paper introduces a visibility-aware transmittance sampling technique for rendering atmospheric...

    archive / summary

  • Order independent transparency, part 2

    - the second part of the blog series that talks about order independence transparency

    archive / summary

  • Seperation of mesh types

    - the Twitter thread discusses the terminology that applies to meshes

    archive / summary

  • [video] Creating Portals in Unreal for Psychonauts 2

    - the Xfest presentation discusses the portal implementation for Psychonauts 2

    archive / summary

  • Single-pass stratified importance resampling

    - the paper presents a new method for stratified resampling

    archive / summary

  • [video] Giving Personality to Procedural Animations using Math

    - the video presents how to use second-order systems to allow dynamic motion control in procedural a...

    archive / summary

  • Fog for Top-Down Games

    - the article presents how to combine multiple tricks to create the appearance of volumetric fog

    archive / summary

  • Advances in Real-Time Rendering in Games - 2022

    - overview of the talks that will be presented at the Advances course as part of Siggraph 2022

    archive / summary

  • Advanced API Performance: Vulkan Clearing and Presenting

    - the article presents Nvidia's best practices for clearing textures and depth buffers

    archive / summary

  • [video] Underwater Post-Process Effect - Shader Graph Basics - Episode 52

    - the video tutorial presents how to create a post-processing effect that simulates an underwater lo...

    archive / summary

  • Icosphere From Octahedron to Icosahedron

    - the article presents how to generate a procedural Icosahedron mesh

    archive / summary

  • Boosting Application Performance with GPU Memory Access Tuning

    - the article presents how to improve compute shader performance when workloads are memory limited

    archive / summary

  • Order independent transparency, Part 1

    - the article presents how to use per-pixel linked lists to implement order

    archive / summary

  • Physical Units for Lights

    - the article presents a discussion of the different physical Units used for light description

    archive / summary

  • Comparing BCn texture decoders

    - the article compares BC decompression libraries - compares the level of format support, decoding p...

    archive / summary

  • DirectML Plugin for TensorFlow 2 is here

    - the blog posts announce the release of a first preview of the DirectML backend for the TensorFlow ...

    archive / summary

  • It’s time to see the FSR 2 source code!

    - AMD released FidelityFX™ Super Resolution 2 (FSR2) to the public

    archive / summary

  • Khronos cross-vendor mesh shader extension update

    - Khronos is sharing the first details about what the cross

    archive / summary

  • [video] NVIDIA’s Ray Tracer: Wow, They Nailed It Again!

    - the paper presents an overview of the NVidia Fast Volume Rendering with Spatiotemporal Reservoir R...

    archive / summary

  • How to build a BVH – part 9b: Massive

    - the last part of the series covers how to extend the ray

    archive / summary

  • [video] What is 'Filmic' and how to fix broken digital photography. Part 1.

    - the video discusses the importance of color transformations to final images

    archive / summary

  • The Case for Use.GPU - Reinventing rendering one shader at a time

    - the article presents work done to make GPU operations reactive, declarative, and composable and re...

    archive / summary

  • [video] 16 - Simulation on the GPU

    - the video explains how to implement a positional-based cloth simulation on the GPU

    archive / summary

  • [video] Fullscreen Masks - Shader Graph Basics - Episode 50

    - the video shows to create 3 types of fullscreen masks (square

    archive / summary

  • Zero-waste single-pass packing of power-of-two textures

    - the article presents a method to pack individual power

    archive / summary

  • [video] Shadow Mapping Strikes Back // Intermediate OpenGL Series

    - the video tutorial explains how to use an orthographic projection to implement directional light s...

    archive / summary

  • The latest Vulkan SDK now ships with Vulkan Memory Allocator (VMA)

    - the Vulkan Memory Allocator is now included as an optional component in the Vulkan SDK

    archive / summary

  • Real-time rendering - past, present and a probable future.

    - the article presents an overview of the problems and solutions of real

    archive / summary

  • A Gentle Introduction to D3D12 (2022)

    - the article introduces D3D12Lite, a library that is meant to streamline the introduction to D3D12

    archive / summary

  • QMC(Magic square, Glois field, QMC)

    - the article presents a method to generate stratified samples of arbitrary dimensionality

    archive / summary

  • Discover Metal 3

    - the presentation provides a summary of new features in Metal 3

    archive / summary

  • WWDC22 - Metal sessions

    - list of all metal sessions at WWDC22 - covering new metal features, HDR/EDR handling, bindless res...

    archive / summary

  • Writing Unity URP Shaders with Code Part 1: The Graphics Pipeline and You

    - the text and video tutorial is the start of a new beginner

    archive / summary

  • [video] Basic Post-Processing Effects - Shader Graph Basics - Episode 49

    - the video tutorial shows the steps required to set up to create post

    archive / summary

  • [video] God of War PC: AMD FSR 2.0 vs Nvidia DLSS Image/ Motion Quality Face-Off

    - the Digitial Foundry video provides an in-depth comparison between FSR 2.0, native TAA as well as ...

    archive / summary

  • Bridging the synchronization gap on Linux

    - the article discusses why the explicit synchronization nature of Vulkan is a significant problem o...

    archive / summary

  • sRGB, Pre-Multiplied Alpha, and Compression

    - the article clarifies the meaning of sRGB encoded textures

    archive / summary

  • Overview of global illumination in kajiya renderer

    - the article provides a high-level description of the techniques used

    archive / summary

  • [video] SIGGRAPH 2022: Technical Papers Trailer

    - video showing an overview of some of the papers to be presented at Siggraph 2022

    archive / summary

  • How to build a BVH – part 9a: To the GPU

    - the article presents the first part on how to convert a C++ raytracing kernel to OpenCL

    archive / summary

  • [Twitter Thread] D3D12 - specialization constants

    - the Twitter thread discusses a restricted version of specialization constants for D3D12 usage

    archive / summary

  • An Idea for Visualization of Frame Times

    - a short article that discusses some ideas to represent frame time in graphs

    archive / summary

  • [video] Hex Grid Normal Tiling - Shader Graph Basics - Episode 48

    - the video tutorial shows the issue when hex-tiling (as discussed in the previous part) is applied ...

    archive / summary

  • OpenGL Introduction - GPU Computing

    - a beginner level focused article that introduces OpenGL compute shaders

    archive / summary

  • [video] NVIDIA Renders Millions of Light Sources!

    - the video paper summary presents the ReSTIR introductory paper

    archive / summary

  • [video] How to turn your 2d fractal into 3d!

    - the video shows how to extend a 2D Koch curve SDF into 3D using shadertoy

    archive / summary

  • Accelerating raytracing using software vrs

    - the article presents how to use compute-shader based Variable Rate shading techniques to reduce th...

    archive / summary

  • How to build a BVH – part 8: Whitted-Style

    - the article extends the BVH constructed over the last couple of posts to implement a more complete...

    archive / summary

  • Removing blur from images – deconvolution and using optimized simple filters

    - the detailed post presents the basis knowledge required for a single image deconvolution (remove b...

    archive / summary

  • PIX 2205.24: Unlocking Arm and Qualcomm development

    - the blog post presents that PIX is now supported on Arm devices

    archive / summary

  • Basic Shadow Mapping // Intermediate OpenGL Series

    - the video tutorial presents how to implement shadow mapping using OpenGL

    archive / summary

  • Meshlets and How to Shade Them: A Study on Texture-Space Shading

    - the paper presents the idea of the usage of a meshlet atlas for texture space shading

    archive / summary

  • WebGPU Buffer upload best practices

    - the blog post describes the different methods WebGPU offers to upload data from the CPU to the GPU...

    archive / summary

  • Behind the Pretty Frames: Elden Ring

    - the article presents a frame breakdown of the PC version of Elden Ring

    archive / summary

  • [video] The Road to Vulkan: Teaching Modern Low-Level APIs in Introductory Graphics C...

    - the video provides a summary of the findings of teaching both OpenGL and Vulkan as part of the Int...

    archive / summary

  • [video] Rust Graphics Meetup 2

    - the second edition of the Rust graphics developer meetup

    archive / summary

  • [video] Texture Tiling Without Repetition - Shader Graph Basics - Episode 47

    - the video explains how to use hexagonal texture sampling/blending to create a shader that allows l...

    archive / summary

  • DirectStorage speculations & myths

    - the article shows what the DirectStorage API enables on PC

    archive / summary

  • Permutation Coding for Vertex-Blend Attribute Compression

    - 15 min video explaining the concept has been added

    archive / summary

  • How to build a BVH – part 7: Consolidate

    - the article expands the the previous BVH implementation with the necessary logic to support UV and...

    archive / summary

  • [video] I3D 2022 Day 1 — Tuesday, May 3

    - video recording of the I3D 2022 conference, all 3 days are available

    archive / summary

  • [video] AMD's Ray Tracing Research

    - the video provides a summary of AMD rayracing research

    archive / summary

  • Advanced API Performance: Variable Rate Shading

    - the article provides a brief overview of VRS modes available

    archive / summary

  • Advanced API Performance: Clears

    - the article presents performance advice from Nvidia for clear operations

    archive / summary

  • Integrating VRS in The Riftbreaker

    - the article discusses how the AMD FidelityFX Variable Shading library was integrated into The Rift...

    archive / summary

  • Comparing .obj parse libraries

    - the article compares several .obj parsers for loading speed and memory usage

    archive / summary

  • Reading list on ReSTIR

    - the post presents a list of articles/papers that discusses Reservoir

    archive / summary

  • How to build a BVH – part 6: All Together Now

    - the article expands the capabilities of the BVH construction to support a more significant number ...

    archive / summary

  • [video] GPU Texture Compression

    - the video shows a summary of block compressed formats and why they are a good fit for GPUs

    archive / summary

  • [video] Vulkan Synchronization | Understand Fences, Semaphores, Barriers,... | Vulkan...

    - the video lecture contains a detailed description of Vulkan Synchronization topics

    archive / summary

  • Render Graph 101

    - the article describes a how a system can derive execution order from rendered resource dependencie...

    archive / summary

  • [video] Toon Shading & Rim Lighting // OpenGL Beginners Series

    - the video tutorial explains the theory of toon shading and rim lighting effects

    archive / summary

  • Derivatives in compute shader

    - the article discusses how to calculate UV derivatives in compute

    archive / summary

  • Let’s Stop Calling it GGX

    - the blog post raises the point that GGX was introduced in a 1975 paper by Trowbridge and Reitz

    archive / summary

  • How to build a BVH – part 5: TLAS & BLAS

    - the article presents how to extend the BVH structure to allow multiple objects in the same structu...

    archive / summary

  • High Performance Graphics 2022 - Student Competition

    - the High-Performance Graphics conference is running a student contest

    archive / summary

  • Various analytic expressions for collimated light scattered in fog (participating med...

    - the article presents the underlying mathematical modeling commonly used to represent volumetric ef...

    archive / summary

  • Efficiency-aware multiple importance sampling for bidirectional rendering algorithms

    - the paper presents a method to adapt the set of sampling techniques in multi importance sampling t...

    archive / summary

  • Sampling the hemisphere

    - the blog post explains the derivations of importance sampling schemes for multiple functions

    archive / summary

  • ReSTIR El-Cheapo

    - the article presents the idea of using ReSTIR for a checkerboard style pattern for shadow ray gene...

    archive / summary

  • Increasing wave coherence with ray binning

    - the article presents the implementation of a ray-binning technique

    archive / summary

  • Generalized Resampled Importance Sampling (GRIS)

    - the paper introduces a generalized approach to resampled importance sampling for correlated sample...

    archive / summary

  • [video] Sprite Batching In OpenGL // Uniform Buffer Objects

    - the video shows how to pack sprites into a 2D texture atlas to reduce the number of draw calls req...

    archive / summary

  • Faster Visibility Buffer/Deferred Material Rendering via Analytical Attribute Interpo...

    - the post presents a method for reducing the size of visibility output buffers and the effect on pe...

    archive / summary

  • How to build a BVH – part 4: Animation

    - the article presents how to update a BVH tree for an animated mesh

    archive / summary

  • Identifying Shader Limiters with the Shader Profiler in NVIDIA Nsight Graphics

    - the article presents a walkthrough of how to use GPU Trace Analysis and GPU Profiler to identify p...

    archive / summary

  • A Dataset and Explorer for 3D Signed Distance Functions

    - the paper presents a database of 63 optimized and regularized SDF functions of varying complexity

    archive / summary

  • A driver on the GPU

    - the article discusses the complexities of implementing ExecuteIndirect from a driver's perspective...

    archive / summary

  • [video] Using Ray Casting To Move 3D Objects

    - the video on how to implement ray-casting from the cursor position into a 3D world to allow the mo...

    archive / summary

  • Agility SDK 1.602.0

    - the blog post presents the new capabilities of the agility SDK

    archive / summary

  • Twitter Thread: Games for the original #PS1 had a unique visual look

    - the thread explains the history of the PS1 hardware and how it defined the look of the games of th...

    archive / summary

  • Windows Graphics News – 2022 Q1

    - a collection of news from the graphics windows development world

    archive / summary

  • Shader compiler tools

    - the article presents an overview of the shader compilation pipeline in Wicked Engine

    archive / summary

  • A remake of the famous Sponza scene for open, collaborative and reproducible research

    - the Sponza rendering scene has been updated - it now contains 4K PBR texture sets and high

    archive / summary

  • Dynamic, Noise Free, Screen Space Diffuse Global Illumination

    - the article presents the screen space solution for Global Illumination

    archive / summary

  • Compute shaders in graphics: Gaussian blur

    - the article presents the authors' first experience with writing a compute shader to implement a Ga...

    archive / summary

  • How to build a BVH – part 2: Faster Rays

    - the article presents how to use a Surface Area Heuristic (SAH) to improve the quality of the BVH g...

    archive / summary

  • Radeon™ GPU Profiler 1.13 and Radeon Developer Panel 2.6

    - the article presents improvements to the new profiler version

    archive / summary

  • How to build a BVH – part 3: Quick Builds

    - the article presents how to reduce the time required for the presented BVH build from seconds to m...

    archive / summary

  • Moving, Rotating, and Scaling UVs - Shader Graph Basics - Episode 43

    - the video tutorial explains how to modify UVs from a shader graph in both Unity and Unreal Engine ...

    archive / summary

  • Slang Shading Language Advances

    - the talk presents the Slang Shading language - presents how generics and interfaces are implemente...

    archive / summary

  • i3D 2022 - Program

    - program for the ACM SIGGRAPH Symposium on Interactive 3D Graphics and Games has been released

    archive / summary

  • Unreal Engine 5 Matrix City Sample PC Analysis: The Cost of Next-Gen Rendering

    - the Digital Foundry video analyses the performance of the UE5 Engine

    archive / summary

  • Modern OpenGL Tutorial - Tessellation Shaders

    - the video provides an overview of tessellation shader concepts

    archive / summary

  • My personal hell of translating DXIL to SPIR-V – part 5

    - the article introduces standard terms and concepts used in compiler literature

    archive / summary

  • Eurographics 2022 papers on the web

    - a collection of papers to be presented at Eurographics 2022

    archive / summary

  • Adventures with Deferred Texturing in 'Horizon Forbidden West'

    - the GDC presentations talk about the implementation of the Deferred Texturing

    archive / summary

  • Permutation Coding for Vertex-Blend Attribute Compression

    - the paper presents a new approach to compressing vertex data at a fixed bit

    archive / summary

  • My personal hell of translating DXIL to SPIR-V – part 4

    - the article presents a detailed look at how different D3D12 ConstantBuffer patterns are mapped int...

    archive / summary

  • Exponentially Better Rotations

    - the article presents a summary of different methods to express rotations

    archive / summary

  • [video] Taking the Slang Shading Language from Research to Production

    - the video presents an overview of the challenges in shader development

    archive / summary

  • Introducing HIP RT – a ray tracing library in HIP

    - AMD released a library to enable applications that use Heterogeneous

    archive / summary

  • How to build a BVH – Part 1: Basics

    - the article describes how to construct a BVH from a collection of triangles

    archive / summary

  • Bringing Linearly Transformed Cosines to Anisotropic GGX

    - the paper introduces an LTC (Linearly Transformed Cosines) approximation to anisotropic GGX using ...

    archive / summary

  • ReSTIR GI for Specular Bounces

    - the blog posts demonstrate how to implement ReSTIR (Spatiotemporal reservoir resampling)

    archive / summary

  • Realtime Fluid Simulation: Projection

    - the article provides a showcase of the importance of a projection solver for a real

    archive / summary

  • [video] Interactive Graphics 24 - Refractions, Transparency, Blending, & Alpha Testin...

    - the video explains the concept of refraction and existing techniques to implement the effect

    archive / summary

  • Graphics Pipeline, Techniques, & Algorithms in Vortice

    - the visual graph provides a visual representation of the different passes from the fluid simulatio...

    archive / summary

  • [video] Painting a Landscape using Mathematics

    - the video provides a complete walkthrough of the creation of a large outdoor environment using sha...

    archive / summary

  • Raytracing, a 4 year retrospective

    - the article presents a retrospective of raytracing experiments done using compute shader implement...

    archive / summary

  • Bindless rendering — Templates

    - the article presents an abstraction system to allow shaders to author bindings without having to b...

    archive / summary

  • Entropy decoding in Oodle Data: Huffman decoding on the Jaguar

    - the article provides an in-depth look at the core loop optimizations of the Oodle decoding step fo...

    archive / summary

  • [video] Unreal Engine 5 Guided Tour | Feature Highlight | State of Unreal 2022

    - the 30min video provides a summary and examples of the new features in Unreal Engine 5 (UE5) to bu...

    archive / summary

  • [video] 10 Shaders in 10 Minutes - Unity Shader Graph

    - the video tutorial shows how to implement ten different effects using UnityShader graphs

    archive / summary

  • [video] Tessellation and Displacement - Shader Graph Basics - Episode 41

    - the video shader tutorial shows how to use tessellation and displacement to create dynamically det...

    archive / summary

  • [video] Interactive Graphics 22 - Global Illumination

    - a high-level overview of what Global Illumination is, the importance for the rendering results

    archive / summary

  • [video] Interactive Graphics 23 - Ambient Occlusion & Soft Shadows

    - discusses what Ambient Occlusion is, provides how it fits into the rendering equation and what it ...

    archive / summary

  • [video] Procedurally Generating A Hexagon Grid in Unity

    - the video tutorial shows how to generate a procedural hexagon shape mesh

    archive / summary

  • Reducing Draw Time Hitching with VK_EXT_graphics_pipeline_library

    - the blog post describes the functionality of the new pipeline library extension and how to use it ...

    archive / summary

  • Software Rasterization of 2 Billion Points in Real Time

    - the paper presents an improvement of compute shader

    archive / summary

  • PIX 2203.30: Export to C++, UI changes and more!

    - the blog post details the changes in the new PIX version

    archive / summary

  • Authoring Efficient Shaders for Optimal Mobile Performance

    - the GDC talk presents the Mali Offline Compiler and how to use it to analyze shader performance at...

    archive / summary

  • [video] Interactive Graphics 20 - Compute & Mesh Shaders

    - the video lecture explains the concepts of compute shaders

    archive / summary

  • [video] Toon Shader Specular Highlights - Shader Graph Basics - Episode 40

    - the video tutorial shows how to implement specular highlights for a toon shader

    archive / summary

  • [video] Interactive Graphics 21 - Deferred, Variable-Rate, & Adaptive Shading

    - the video lecture presents deferred shading, discussing the problems of forward shading and how de...

    archive / summary

  • Texture sampling tips

    - the article provides a collection of performance advice to consider with texture sampling

    archive / summary

  • [video] How to Select 3D Objects With The Mouse Using OpenGL

    - the video explains how to use render-to-texture to enable object selection

    archive / summary

  • Discover 3D content optimization with Simplygon

    - the talk provides an overview of different LOD concepts

    archive / summary

  • Raytraced global illumination denoising

    - the article provides an overview of a denoising solution for raytraced global illumination based o...

    archive / summary

  • Rendering realtime caustics

    - the article discusses a method for a simple non-PBR method to implement underwater caustics

    archive / summary

  • Skybox tutorial part 1

    - the article presents a walkthrough of the implementation of a complete skybox model, including tim...

    archive / summary

  • Announcing Vulkan Memory Allocator 3.0.0 and Direct3D 12 Memory Allocator 2.0.0

    - the article describes a large number of changes and improvements made to the AMD and Vulkan Memory...

    archive / summary

  • AMD - GDC2022

    - a collection of slides and videos from AMDs talk at GDC 2020

    archive / summary

  • 1.3 Vulkan Loader Improvements

    - Vulkan loader has been improved with more debugging capabilities and improved documentation

    archive / summary

  • WebGPU and Graphics on the Web

    - podcast discussing the development and design of WebGPU

    archive / summary

  • Intel at the 2022 Game Developers Conference

    - the page contains links to the presentations (slides and video) to the talks given by Intel at GDC...

    archive / summary

  • NVIDIA Hopper Architecture In-Depth

    - the article provides in-depth details about the new Hopper GPU architecture for data center usage

    archive / summary

  • [video] Interactive Graphics 19 - Bump, Normal, Displacement, and Parallax Mapping

    - the video presents an overview of techniques to represent more geometric details without having to...

    archive / summary

  • Mach v0.1 - cross-platform Zig graphics in ~60 seconds

    - the blog explains the graphics foundations of Mach, a zig graphics foundation layer

    archive / summary

  • Fast Non-Uniform 3D Frame Representation

    - the paper presents a derivation of a representation for rotation and non

    archive / summary

  • [video] HOW TO DEBUG Your OpenGL Code

    - the video tutorial provides a starting guide to OpenGL debugging

    archive / summary

  • Transforming “noise” and random variables through non-linearities

    - the article recaps the effects of linear transformations of random variables

    archive / summary

  • [video] Live Coding an Alien Orb - God Rays & Translucency

    - video tutorial presents a walkthrough of implementing volumetric god rays and subsurface scatterin...

    archive / summary

  • PIX-2203.07: Support for DirectStorage

    - the new release of Pix supports DirectStorage visualization on the timelines

    archive / summary

  • DirectStorage API Now Available on PC

    - Microsft has released the first public version of DirectStorage

    archive / summary

  • How to add thousands of lights to your renderer and not die in the process

    - the article presents an introduction into Reservoir

    archive / summary

  • [video] Interactive Graphics 17 - Geometry Shaders

    - the video course provides an understanding of the geometry shaders' capabilities

    archive / summary

  • [video] Toon Shader Paint - Shader Graph Basics - Episode 38

    - the video tutorial explains how to implement toon shading

    archive / summary

  • [video] Interactive Graphics 18 - Tessellation Shaders

    - the video tutorial covering Tessellation shaders

    archive / summary

  • Fast, GPU friendly, antialiasing downsampling filter

    - the article present how to derive a downsampling filter that uses eight bilinear samples

    archive / summary

  • Optimizing Oklab gradients

    - the article presents an overview of sRGB, Linear, and Oklab gradient interpolation

    archive / summary

  • Abstracting the graphics api for a toy renderer

    - the article discusses the authors' decision for a home renderer abstraction layer

    archive / summary

  • Bindless rendering — Setup

    - the article presents the implementation of a bindless binding model using D3D12 and Vulkan

    archive / summary

  • A Better Approach to SDF Decomposition

    - the article presents a compiler approach that takes an SDF representation and generates shaders fo...

    archive / summary

  • Stochastic Light Culling for Single Scattering in Participating Media

    - the paper extends the ideas of Stochastic Light Culling to compute single scattering in a homogene...

    archive / summary

  • Multi-Resolution Geometric Representation using Bounding Volume Hierarchy for Ray Tra...

    - the paper introduces a technique to lower the cost of ray tracing by using approximated geometry f...

    archive / summary

  • Mali-G710: a developer overview

    - the article presents hardware and shader compiler improvements for the new Malig G710 GPU

    archive / summary

  • [RFC] Adding HLSL and DirectX support to Clang & LLVM

    - the forum post presents the proposal to integrate HLSL and DXIL support into clang/LLVM

    archive / summary

  • WebGPU — All of the cores, none of the canvas

    - the article provides an introduction to WebGPU for compute shader workloads

    archive / summary

  • AMD at GDC 2022

    - the page contains information and links to all the talks that AMD will present at GDC22

    archive / summary

  • Exposure Fusion – local tonemapping for real-time rendering

    - the article presents an explanation of common tone mapping issues, comparing multiple local tone m...

    archive / summary

  • Variable Rate Compute Shaders on Xbox Series X|S

    - the presentation talks about techniques to use VRS (Variable Rate Shading) to reduce the cost of l...

    archive / summary

  • Variable Rate Shading, Tales from the Trenches on Series X|S

    - the presentations cover the experience of implementing VRS into Doom Eternal and Gears5

    archive / summary

  • How Does Perspective Work in Pictures?

    - the article discusses the effect that human perception and images appear different

    archive / summary

  • Picking Fairly From a List of Unknown Size With Reservoir Sampling

    - the article presents a collection of code samples that allow the selection of random samples from ...

    archive / summary

  • Improved Accuracy for Prism-Based Motion Blur

    - the paper presents a method for improving the quality of motion blur on dynamic triangulated objec...

    archive / summary

  • Vulkan SC: Overview - and how it is different from the Vulkan you already know

    - the article presents Vulkan for Safety-Critical applications

    archive / summary

  • Beyond Sand & Spice: The VFX of Dune | DNEG Deep Dives

    - the video panel discussion presents a look at the VFX development for Dune

    archive / summary

  • Sampling in Floating Point (1/3): The Unit Interval

    - the article presents a method to uniformly sample floats in the [0, 1) range

    archive / summary

  • [video] Interactive Graphics 16 - Shadow Mapping

    - the video tutorial explains the concepts required for shadow mapping

    archive / summary

  • Tiling simplex noise and flow noise in two and three dimensions

    - the paper presents a tileable implementation of simplex noise for 2D and 3D cases

    archive / summary

  • Real-time Shading with Free-form Planar Area Lights using Linearly Transformed Cosine...

    - the paper proposed a real-time shading calculation for area lights defined by cubic Bezier curves

    archive / summary

  • Using Semaphore and Memory Sharing Extensions for Vulkan Interop with NVIDIA OpenCL

    - the article presents a new set of OpenCL and Vulkan extensions to allow interaction between the AP...

    archive / summary

  • [video] Clipping and viewport mapping in OpenGL

    - the video tutorial explains the process that vertices passthrough after vertex processing

    archive / summary

  • Untangling Direct3D 12 Memory Heap Types and Pools

    - the article shows how GPU memory is exposed to D3D12 application developers

    archive / summary

  • Why you can’t update Android’s GPU drivers like on your PC

    - the article presents an overview of the Graphics driver development model on Android devices

    archive / summary

  • Building a new graphics engine in Rust - Part 2

    - the article presents the authors' API decisions while developing a D3D12 based graphics engine usi...

    archive / summary

  • [video] Random Noise - Shader Graph Basics - Episode 35

    - the video tutorial explains the concept of a noise hash

    archive / summary

  • [video] Live Coding and Alien Orb - Modeling & Shadows

    - the video tutorial presents a coding session of an extraterrestrial inspired Orb object

    archive / summary

  • Ben Cloward - book recommendations

    - the author presents his list of recommended books for technical artists

    archive / summary

  • [video] Interactive Graphics 12 - The Rendering Equation

    - the video lectures cover the history and motivation of the rendering equation

    archive / summary

  • Shader translation benchmark

    - the article presents a performance benchmark of the naga shader translation system

    archive / summary

  • Cube Sphere Going from Cube to Sphere

    - the article discusses an alternative way to procedurally generate spheres from a cube base divisio...

    archive / summary

  • LunarG Releases New Vulkan 1.3.204.0 SDKs with Profiles Toolset and New Extensions

    - new Vulkan SDK updates allows application developers to create their own profiles

    archive / summary

  • Exploring the Vulkan 1.3 Software Development Kit (SDK)

    - Vulkan webinars about Vulkan 1.3 on March 10th - covering Validation Layer Performance and Vulkan ...

    archive / summary

  • A Review of Shader Languages

    - the updated article presents a comparison of HLSL, GLSL, MSL, and WGSL

    archive / summary

  • [video] Modern OpenGL - Compute Shaders

    - the video tutorial explains the necessary concepts to use compute

    archive / summary

  • Light transport matrices, SVD, spectral analysis, and matrix completion

    - the article presents light transport matrices and how they relate to light transport concepts

    archive / summary

  • Updates in Graphics and Gaming

    - the article presents a new windows insider feature that will allow DX10/DX11 games to take advanta...

    archive / summary

  • In the works: HLSL Shader Model 6.7

    - the blog post presents the new features of shader model 6.7

    archive / summary

  • Super Imposter shader: my journey to make a high quality imposter shader

    - the article provides an overview of the development process of using a texture

    archive / summary

  • [video] Real-Time Ray Tracing | RTX ON in Vulkan | Vulkan Lecture Series Ep. 6, Real-...

    - Video lecture series of the real-time rendering course at TU Wien

    archive / summary

  • A Shader Trick

    - the article discusses a problem with effects caused by loss of floating

    archive / summary

  • Technically Art: Issue 121 (11.02.2022)

    - a collection of tweets about tech art, VFX, and related topics

    archive / summary

  • [video] How Shaders Work (in OpenGL) | How to Code Minecraft Ep. 3

    - video introduction tutorial to shader programming with OpenGL

    archive / summary

  • [video] Interactive Graphics 10 - Textures on the GPU

    - the video session explains Texture set up for usage from GPU shaders

    archive / summary

  • Ray-tracing in 10ms: Ambient occlusion

    - the article provides an overview of using raytracing to generate ambient occlusion

    archive / summary

  • WebGPU January 2022 meetup — takeaways

    - a roundup of WebGPU topics discussed at the January meetup

    archive / summary

  • Speeding up Blender .obj export

    - the article presents a walkthrough of the process that leads to the blender obj exporting being sp...

    archive / summary

  • SIMD in the GPU world

    - the article provides an overview of how SIMD execution models evolved over GPU generations

    archive / summary

  • The road to 16-bit floats GPU is paved with our blood

    - the article provides an overview of the state of 16

    archive / summary

  • Two Low Discrepancy Grids: Plus Shaped Sampling LDG, and R2 LDG

    - the article discusses more noise distributions functions, presents grid

    archive / summary

  • Direct Light 2: integrating shadow rays into a path tracer

    - the article presents why direct lighting computation should be separated from emitted light

    archive / summary

  • Direct Light 3: what goes in the direct light function?

    - the article presents components are defining the direct lighting component

    archive / summary

  • 2021 Vulkan Ecosystem Survey Results are in!

    - the Vulkan survey presents a summary of the results and presents what next steps will be taken to ...

    archive / summary

  • [video] Star Citizen Live: Graphics Engineering Q&A

    - the developer interview answers a large number of user questions

    archive / summary

  • [video] Interactive Graphics 08 - Lights & Shading

    - video lecture presents an introduction explaining how surfaces are light from lights

    archive / summary

  • [video] Skeletal Animation In OpenGL using Assimp - Part 5

    - the final video of the skeletal animation series using OpenGL and Assimp

    archive / summary

  • FXAA, SSAA, MSAA, and TXAA comic summary

    - 4 slides for a brief summary of the 4 common anti

    archive / summary

  • Direct3D 12: Long Way to Access Data

    - the article presents the flow of data when a CPU generated value is accessed from an HLSL shader

    archive / summary

  • UE5 Lumen Implementation Analysis

    - the article provides a summary of the Lumen implementation found in UE5 (Unreal Engine 5)

    archive / summary

  • Vulkan 1.3 and Roadmap 2022

    - the article provides a summary of the features that are mandatory in Vulkan 1.3

    archive / summary

  • In defense of NIR

    - the article explains the history and evolution of the mesa shader compiler (internal representatio...

    archive / summary

  • Advanced Kernel Profiling with the Latest Nsight Compute

    - the new version of the Nsight Compute allows a better understanding of memory traffic and cache ev...

    archive / summary

  • What is direct lighting (next event estimation) in a ray tracer?

    - the article why randomly tracing rays leads to noisy results

    archive / summary

  • WebGPU Best Practices

    - the presentation contains a collection of best practices when working with WebGPU

    archive / summary

  • [video] Useful functions for game designers - Cosine Interpolation

    - the video explains the derivation of Cosine Interpolation

    archive / summary

  • Shader tips and tricks

    - the article contains a collection of 53 tips & tricks to consider when writing shaders

    archive / summary

  • Removing Banding in Linelight

    - the article discusses how noise can help to reduce banding in light gradients

    archive / summary

  • [video] The Unreasonable Effectiveness of JPEG: A Signal Processing Approach

    - the video provides a great introduction to image compression topics

    archive / summary

  • Behind the Pretty Frames: God of War

    - the WIP article presents a walkthrough of a frame of God of War (PC version)

    archive / summary

  • Visualizing VGPR Pressure with Radeon™ GPU Analyzer 2.6

    - the article presents the new VGPR Pressure Visualization view

    archive / summary

  • The Perlin Problem: Moving Past Square Noise

    - the article presents the shortcomings of Perlin noise and what causes these

    archive / summary

  • [video] Tech Focus: Nvidia DLDSR - What Does AI Downsampling Actually Do?

    - the video presents super sampling techniques - showing the issues introduced if super

    archive / summary

  • [video] Talk - Practical Pigment Mixing for Digital Painting

    - the paper presents the novel mixbox model for natural color mixing that matches the painting of oi...

    archive / summary

  • Radeon™ GPU Profiler 1.12 released

    - the article presents the new debug views that can visualize the wavefront execution patterns

    archive / summary

  • Viewing DirectX® 12 Named Resources with Radeon™ Memory Visualizer 1.3

    - the article presents how to show resource name usage in the AMD memory visualization

    archive / summary

  • Texture Gathers and Coordinate Precision

    - the article presents a deep dive into a gather related artifact

    archive / summary

  • Instant Neural Graphics Primitives with a Multiresolution Hash Encoding

    - the paper presents a multi-resolution hash table of trainable feature vectors

    archive / summary

  • [video] Triplanar Projection Improvements - Shader Graph Basics - Episode 29

    - the video improves the tri-planar projection shader (allows texture mapping without UVs)

    archive / summary

  • [video] Interactive Graphics 01 - Introduction

    - introduction to a university course that covers the fundamental concepts of real

    archive / summary

  • [video] Useful functions for game designers - Lagrange Interpolation

    - the video explains how to derive the Lagrange Interpolation functions

    archive / summary

  • Technically Art: Issue 119 (14.01.2022)

    - an extensive collection of a large variety of tech art tweets collected into a single post

    archive / summary

  • [video] New Weather Simulator: Almost Perfect!

    - Two Minute Papers video summary of the Weatherscapes: Nowcasting Heat Transfer and Water Continuit...

    archive / summary

  • VK_KHR_dynamic_rendering tutorial

    - the tutorial shows how to use the VK_KHR_dynamic_rendering extension in Vulkan

    archive / summary

  • [video] Shader Coding for Beginners 2022 [Part 1]

    - the first part of a shader coding course (6 hours!) focusing on textual shaders using Unity

    archive / summary

  • [video] PhD Thesis Fast Forward 2021

    - the video contains the summary and overviews of Siggraph PhD thesis

    archive / summary

  • Cache and Bandwidth Aware Real-time Subsurface Scattering

    - the PhD thesis provides an overview of Subsurface scattering techniques and proposes a taxon...

    archive / summary

  • Sphere Scene in Unity URP

    - the article explains how to set up an effect that allows meshes to appear cut at the boundaries of...

    archive / summary

  • [video] You Might Be Thinking About Shader Performance Wrong

    - the video focuses on visualizations of GPU performance considerations

    archive / summary

  • Mali GPU Training

    - a collection of video resources for GPU development

    archive / summary

  • [video] Skeletal Animation In OpenGL using Assimp - Part 2

    - the second part of the series explains the mapping between vertices and bones

    archive / summary

  • Insider guide to tech interviews

    - the article provides an in-depth discussion of the interview process for more experienced develope...

    archive / summary

  • Temporal AA and the quest for the Holy Trail

    - the article presents a very detailed look at temporal anti

    archive / summary

  • Reader Question Answered 1 - Learning D3D12

    - the article provides a high-level learning guide for getting started with D3D12

    archive / summary

  • Finding Your Home in Game Graphics Programming

    - the article presents a high-level view of the graphics programming world

    archive / summary

  • Interleaved Gradient Noise: A Different Kind of Low Discrepancy Sequence

    - the article presents the characteristics of IGN(Interleaved Gradient Noise) that make it a good fi...

    archive / summary

  • Notes on occlusion and directionality in image based lighting

    - the article presents the findings of the importance of directionality and occlusion for IBL(Image

    archive / summary

  • What is an uber shader?

    - the article presents a look back at the emergence of the term uber shader

    archive / summary

  • Not All Blue Noise is Created Equal Part 2

    - the article compares different techniques to generate blue noise

    archive / summary

  • The History of Retro Game Consoles for Programmers

    - the article provides a history of game consoles in the First Generation 1972 to modern

    archive / summary

  • Branching on a GPU

    - the article presents branching on GPUs, clearing up that the cost of a branch depends on the kind

    archive / summary

  • Stalling a GPU

    - the blog discusses dependent texture reads and the impact on GPU performance

    archive / summary

  • Mixed Precision Algorithms in Numerical Linear Algebra

    - the paper presents a look at the half/single/double and quad precision for floating

    archive / summary

  • [video] The small detail behind Breath of the Wild's Thousands of Trees - Quick Answe...

    - one-minute long video shows the impostors used for far away vegetation in Zelda Breath of the Wild...

    archive / summary

  • Global shaders in Unreal without engine modification

    - the article shows how custom shader effects can be integrated into the UE4 pipeline

    archive / summary

  • Digital Dragons 2021: Adam Sawicki - Efficient Use of GPU Memory in Modern Games

    - talk discusses the available memory types in D3D12/Vulkan

    archive / summary

  • Debugging For Graphics Programmers

    - the article provides a collection of advice to help with debugging GPU issues

    archive / summary

  • Christmas Decoration for Graphics Engineers

    - the article describes a setup to use a software rasterizer to create winter decorations for tiny p...

    archive / summary

  • Debugging Your Renderer (4/n): End-to-end tests (or, why did that image change?)

    - the post presents the importance of testing images that allow the testing of a renderer

    archive / summary

  • Debugging Your Renderer (5/n): Rendering Deterministically

    - the article discusses sources of nondeterministic rendering in PBRT

    archive / summary

  • Homegrown rendering with Rust

    - the article presents the release of the kajiya experimental renderer written in Rust

    archive / summary

  • [video] Triplanar Projection - Shader Graph Basics - Episode 28

    - The shader video tutorial shows how to create a shader that projects textures from the top, front...

    archive / summary

  • Improved Triplanar projections

    - the article presents how to use barycentric coordinates to improve triplanar projections

    archive / summary

  • [video] Digital Foundry's Best Game Graphics of 2021 - PC, Xbox, PlayStation - Anothe...

    - video discussing the best graphical releases of the year

    archive / summary

  • Vulkan: Why some GPUs expose a dozen of identical memory types?

    - the article discusses why Vulkan drivers expose a single heap with multiple memory types

    archive / summary

  • From GLSL to WGSL: the future of shaders on the Web

    - the post describes the differences between the new WebGPU Shading language and GLSL

    archive / summary

  • Triangle Grid Triangles and Hexagons

    - the article presents alternative mesh structures to generate grid structures

    archive / summary

  • Rendering in Real Time with Spatiotemporal Blue Noise Textures, Part 1

    - the article introduces a technique and generated textures that enable the use of Spatiotemporal bl...

    archive / summary

  • Rendering in Real Time with Spatiotemporal Blue Noise Textures, Part 2

    - the article discusses Spatiotemporal blue noise in more depth

    archive / summary

  • [video] Coding the Game of Life - Part II

    - the second part of the game of life shadertoy implementation focuses on the improvement of the vis...

    archive / summary

  • [video] Pipelines and Stages - Inside Graphics, Compute, Ray Tracing Pipes - Vulkan L...

    - the video of the Vulkan lecture series introduces the stages of the graphics, compute, and raytrac...

    archive / summary

  • Frickin' Shaders With Frickin' Laser Beams

    - the author presents the design for a composable GLSL system based on the idea of closure

    archive / summary

  • How to Read Research Papers: A Pragmatic Approach for ML Practitioners

    - the article discusses advice for new research on how to effectively read research papers

    archive / summary

  • Technically Art: Issue 118 (18.12.2021)

    - a collection of tweets covering a large variety of tech art topics such as

    archive / summary

  • Modern (Bindless) Sprite Batch for Vulkan (and more!)

    - the article describes how to use a Vulkan bindless setup for 2D sprite batching

    archive / summary

  • World-space spatiotemporal reservoir reuse for ray-traced global illumination

    - the paper presents a technique that performs reservoir

    archive / summary

  • AMD GPUOpen - Publications

    - list of AMD research publications - contains papers starting in 2010

    archive / summary

  • Godot Rendering Pipelines

    - the article shows how to write data into an offscreen target and process it in a full

    archive / summary

  • Enhanced Barriers

    - Microsoft released the spec for the Enhanced D3D12 barrier API

    archive / summary

  • D3D12 Enhanced Barriers Preview

    - the blog post provides an introduction to the new enhanced barrier preview for D3D12

    archive / summary

  • Experimental Analysis of Multiple Scattering BRDF Models

    - the paper presents an analysis of multiple scattering BRDF models

    archive / summary

  • Announcing HLSL 2021

    - the article presents the new features released as part of the DXC update for December

    archive / summary

  • Announcing new DirectX 12 feature – Video Encoding!

    - the blog post presents the video encoding API that has been added to d3d12

    archive / summary

  • Introduction to Tessellation in Metal

    - the article presents an overview of tesselation shaders

    archive / summary

  • How to Build a Compute Rasterizer with WebGPU

    - the article presents how to implement 3D mesh rasterization in a WebGPU compute shader

    archive / summary

  • [video] Swizzle & Channel Manipulation - Shader Graph Basics - Episode 25

    - the video tutorial introduces swizzle operations

    archive / summary

  • fma: A faster, more accurate instruction

    - the article presents the shader multiply/add operation (fma/mad)

    archive / summary

  • The Definitive Weta Digital Guide to IBL

    - the tutorial describes the capturing process for image

    archive / summary

  • Building a PS1 style retro 3D renderer

    - the article describes the hardware characteristics of the PS1 renderer

    archive / summary

  • Tiled Reservoir Sampling for Many-Light Rendering

    - the paper introduces a combination of tile-based stochastic light culling and reservoir sampling

    archive / summary

  • Gradients in linear space aren't better

    - the article shows how gradients differ with different color spaces

    archive / summary

  • Arm Best Practice warnings in the Vulkan SDK

    - the article presents the Vulkan SDK layer architectures

    archive / summary

  • Why gamers and developers should care about ray tracing

    - the article provides an overview of use cases for ray tracing

    archive / summary

  • Debugging Your Renderer (3/n): Assertions (and on not sweeping things under the rug)

    - the article discusses the importance of asserts for debugging a renderer

    archive / summary

  • Understanding Graphs in GPUView and RGP

    - the article explains what information GPUView and Radeon GPU Profiler show

    archive / summary

  • Custom Bloom Post-Process in Unreal Engine

    - the article provides an overview of the bloom technique and implementations

    archive / summary

  • Skeletal Animation In OpenGL using Assimp - Part 1

    - the video tutorial provides an overview of the skinning animation technique

    archive / summary

  • Denoising Sprite Fright

    - the article presents the noise issues encountered when rendering out animated camera tracks

    archive / summary

  • [video] Reflection and Refraction Vectors - Shader Graph Basics - Episode 24

    - the video shows a visualization of reflection and refraction vectors

    archive / summary

  • Lossless Image Compression in O(n) Time

    - the article presents the overview of a small and simple lossless image compression

    archive / summary

  • Floating-point in mobile shaders

    - the article presents an overview of fp16 (16-bit floating

    archive / summary

  • Tessellation-Free Displacement Mapping for Ray Tracing

    - the paper presents a new approach that decouples displacement from the tessellation of the base me...

    archive / summary

  • A quick breakdown of lighting in the restir-meets-surfel branch

    - provides a rundown of the different stages of a WIP experiment combing surfels and ReSTIR for rend...

    archive / summary

  • Shader Assembly and D3D12 Root Signatures

    - the article presents a look at the RDNA2 assembly generated from a simple pixel shader that output...

    archive / summary

  • Debugging Your Renderer (2/n): Unit Tests

    - the article presents a starting point for developing unit tests for rendering algorithms

    archive / summary

  • Adventures in Hybrid Rendering

    - the article presents an overview of the implementation for various techniques found to mix raytrac...

    archive / summary

  • Vulkan Pills 1: Bindless Textures

    - the article presents the quickest way to implement fully bindless shaders using Vulkan

    archive / summary

  • Advanced Shading Techniques with Pixel Local Storage

    - the article shows how Pixel Local Storage can be used on ARM GPUs to implement Translucency and Or...

    archive / summary

  • Getting started with Metal-cpp

    - the article presents the official C++ interface for Metal

    archive / summary

  • How to Level Up Your Profiling With RenderDoc for Oculus

    - the article describes the RenderDoc fork for use with Oculus devices

    archive / summary

  • Prefix sum on portable compute shaders

    - the author presents his experience trying to run a prefix sum sorting algorithms portably using We...

    archive / summary

  • From NVIDIA DLSS 2.3 To NVIDIA Image Scaling: NVIDIA’s Full Stack Of Scaling Solution...

    - update on Nvidia scaling solutions - the NVIDIA Image Scaling SDK now provides an open

    archive / summary

  • Jump flooding with bgfx

    - the article shows an example of implementing a flood filling algorithm using the BGFX abstraction ...

    archive / summary

  • Strange Attractors on the GPU, Part 1: Implementation

    - the article presents how to implement GPU particles with movement tails without CPU interaction

    archive / summary

  • How to draw styled rectangles using the GPU and Metal

    - the article presents how to render rectangles with rounded edges

    archive / summary

  • The Repackaged Windows Vulkan SDK

    - the Vulkan SDK has been repackaged and now separates between core and optional components

    archive / summary

  • NVIDIA GTC: A Complete Overview of Nsight Developer Tools

    - provides an overview of the available Nvidia developer tools

    archive / summary

  • Streamlining Render Passes

    - the post summarizes the new VK_KHR_dynamic_rendering extension

    archive / summary

  • [video] Intro to Graphics 22 - Signal Processing

    - the video tutorial provides a beginner introduction to signal processing

    archive / summary

  • [video] Jonathan Ragan Kelley: Organizing Computation for High-Performance Visual Com...

    - the talk presents a discussion of performance tradeoffs

    archive / summary

  • [video] (Ab)using RTX for Element Point Location

    - provides an explanation of point queries and why point queries on unstructured data is a lot more ...

    archive / summary

  • Rendering text

    - the article provides a history of text rendering techniques

    archive / summary

  • [video] Rendering Lines in a Game Engine // Game Engine series

    - the video tutorial explains how to render lines using OpenGL

    archive / summary

  • Shaded vertex reuse on modern gpus

    - the article presents results comparing the vertex post

    archive / summary

  • New Quest Rendering Tech Promises Massive Gains in App Performance

    - summary of Occlulus Quest 2 Application SpaceWarp technology

    archive / summary

  • Shadow outlines tutorial

    - the Unity tutorial shows how to sample shadow maps and implement an edge detection filter

    archive / summary

  • Stencil Portal in Unity — VFX Breakdown

    - the article explains how to implement a portal look into a separate world using stencil buffers fo...

    archive / summary

  • Technically Art: Issue 115 (05.11.2021)

    - weekly round-up of tweets from a large variety of technical art and VFX topics

    archive / summary

  • My personal hell of translating DXIL to SPIR-V – part 3

    - the article presents the details of the D3D12 binding model and discusses the differences to Vulka...

    archive / summary

  • Working Around Constructors in HLSL (or lack thereof)

    - the article presents how constructor like functionality can be implemented in DXC HLSL

    archive / summary

  • [video] Intro to Graphics 20 - Shadows & Reflections

    - class in introduction to computer graphic series focusing on shadows

    archive / summary

  • [video] How Computers Draw Weird Shapes

    - the video tutorial explains how to implement metaball rendering

    archive / summary

  • [video] A Deep Dive into Nanite Virtualized Geometry

    - the video for the SIGGRAPH 2021 presentation about UE5 Nanite has been released

    archive / summary

  • VK_KHR_dynamic_rendering

    - Vulkan extension that allows the use of render passes in Vulkan using a D3D12 style objectless mod...

    archive / summary

  • [video] Spot lights in OpenGL

    - video tutorial explains the concepts of spotlights and develops a mathematical model to describe t...

    archive / summary

  • [video] SIGGRAPH 2021 Rendering Engine Architecture course

    - the videos for the excellent SIGGRAPH 2021 Rendering Engine Architecture course have been released...

    archive / summary

  • The curious case of slow raytracing on a high end gpu

    - the article shows that out of bounds access reduced rendering performance by 25x

    archive / summary

  • Practical Gaussian filtering: Binomial filter and small sigma Gaussians

    - the article discusses the Binomial and Gaussians filter

    archive / summary

  • Advanced API Performance: Command Buffers

    - the article covers a few high-level points on how command buffers allow parallelization of CPU ren...

    archive / summary

  • Advanced API Performance: Memory and Resources

    - the blog post provides recommendations for memory management using D3D12 on

    archive / summary

  • Advanced API Performance: Mesh Shaders

    - the article provides information about what practices are recommended for getting good mesh shader...

    archive / summary

  • [video] How Link's eyebrows go over his hair - Quick Answer #shorts

    - short 1-minute video that explains how masking with disabled depth testing allows the eyebrows to ...

    archive / summary

  • Scalable global illumination for O3DE

    - the presentation presents an overview of different Global illumination techniques

    archive / summary

  • In­ter­ac­tive Ex­plo­ration of Ho­mo­ge­neous Co­or­di­nates and Ra­tio­nal Splines

    - the article provides an explanation of Ho­mo­ge­neous Co­or­di­nates

    archive / summary

  • Vulkanised 2021 - Fall

    - the slides and video recordings from the Vulkanised 2021 conference have been released

    archive / summary

  • [video] HLSL shaders compilation pipeline in BG3

    - discussing how the mapping from D3D to Vulkan binding semantics was implemented using SPIR

    archive / summary

  • Interactive Volumetric Fog With Fluid Dynamics and Arbitrary Boundaries

    - the article presents a method to generate and simulate real

    archive / summary

  • Swapchains and frame pacing

    - the article presents an in-depth overview of the pipeline required to display a image on screen

    archive / summary

  • Advanced API Performance: Barriers

    - collection of best practices for NVidia hardware regarding buffer management

    archive / summary

  • Advanced API Performance: Async Copy

    - the article discusses considerations when to use async copy queue, async compute, or serial copy e...

    archive / summary

  • Advanced API Performance: Async Compute and Overlap

    - the article presents a collection of Nvidia advice for getting good performance from async compute...

    archive / summary

  • Recovering Real-World Reflectance Properties and Shading From HDR Imagery

    - the paper presents how using HDR and 3D scan data, it's possible to reconstruct the material BRDF ...

    archive / summary

  • Creating a Foliage Shader in Unity URP Shader Graph

    - the tutorial covers a walkthrough of a foliage shader in Unity

    archive / summary

  • [video] How To Render CIRCLES (OpenGL/Vulkan/DirectX/Metal)

    - the in-depth video tutorial explains how to render a circle using shadertoy

    archive / summary

  • The Shader Permutation Problem - Part 1: How Did We Get Here?

    - the blog introduces the topic of shader permutations and why they end up being common issues

    archive / summary

  • The Shader Permutation Problem - Part 2: How Do We Fix It?

    - the article dives deeper into the issues related to shader permutations

    archive / summary

  • NeRF at ICCV 2021

    - collection of Neural Radiance Field papers that will be presented at Intl. Conf. on Computer Visio...

    archive / summary

  • Frame Analysis - Control

    - frame breakdown of a single frame from the game control (as video and text)

    archive / summary

  • Graphics Twitter - send me links for stuff explaining modern GPU architecture (PS5,RT...

    - Twitter thread asking for GPU architecture information

    archive / summary

  • Linking DXIL Binaries Using DXC

    - the article shows how recent versions of DXC can link DXIL shaders for all shader stages

    archive / summary

  • AMD FidelityFX Super Resolution: the Digital Foundry interview

    - interview with Nick Thibieroz, Director of Game Engineering at AMD

    archive / summary

  • Gentle Introduction to Realtime Fluid Simulation for Programmers and Technical Artist...

    - the articles provides a beginner friendly introduction into fluid simulation

    archive / summary

  • GPU BCn decoding

    - the article explains how BC format encodind differs between hardware vendors

    archive / summary

  • Improving GPU Memory Oversubscription Performance

    - the post presents an overview of the performance characteristics for nvida applications related to...

    archive / summary

  • [video] Specular Lighting in OpenGL

    - the video tutorial extends the Phong lighting model with the addition of specular lighting

    archive / summary

  • Instanced Line Rendering Part II: Alpha blending

    - the article demonstrates how to implement line segment rendering so that the segments are not over...

    archive / summary

  • Ray Tracing versus Animation

    - the blog presents performance number for Bottom-level acceleration structure when using D3D12 rayt...

    archive / summary

  • New Graphics Books, Fall 2021

    - collection of 5 new graphics programming books - fundamentals, Vulkan, OpenGL and a history of com...

    archive / summary

  • Fast temporal reprojection without motion vectors

    - the paper proposes a new technique to enable the temporal reuse of samples in scenarios where moti...

    archive / summary

  • An OpenEXR Layout for Spectral Images

    - the paper provides an overview of Spectral Image Representation and Bi

    archive / summary

  • [video] Blub - Interactive GPU fluid solver

    - the video provides an overview of a GPU based fluid solver

    archive / summary

  • Dynamic flowing foam in Unity

    - the Unity tutorial shows how to implement a basic flow system in Unity

    archive / summary

  • Shader Tutorial: Self-Drawing Lines

    - the Unity tutorial explains how to implement a 2D effect where a mask controls the visibility of a...

    archive / summary

  • [video] How to think about 3D rotations

    - the video explains how to develop a mental model of 3D rotations

    archive / summary

  • Khronos KTX 2.0 Textures Enable Compact, Visually Rich, glTF 3D Assets

    - Khronos released the texture format 2.0, which now supports Basis Universal compression

    archive / summary

  • My personal hell of translating DXIL to SPIR-V – part 2

    - the blog post describes the details about parsing DXIL (the output from the Microsoft Shader Compi...

    archive / summary

  • Creative Use of GPU Fixed-Function Hardware

    - the article presents a few examples of how GPU fixed function hardware is used for other purposes ...

    archive / summary

  • Gentle introduction to GPUs inner workings

    - the article provides an introduction to more hardware level information about GPU execution

    archive / summary

  • Understanding Metal Enhancements in the A15 Bionic GPU

    - the article provides a summary of the new hardware features in Apple GPUs

    archive / summary

  • [video] NVIDIA’s New Technique: Beautiful Models For Less!

    - the video provides a paper summary from NVidia that uses differentiable rendering to simplify geom...

    archive / summary

  • CodeGen Performant Convolution Kernels for Mobile GPUs

    - the article presents how to use MLIR (Multi-Level IR Compiler Framework) for efficient SPIR

    archive / summary

  • GPU Dashboards in Jupyter Lab

    - NVidia provides an open-source dashboard for Jupyter and a standalone Boker server

    archive / summary

  • [video] Diffuse Lighting in OpenGL

    - video tutorial that explains lambert diffuse lighting function

    archive / summary

  • Discover advances in Metal for A15 Bionic

    - the video presents what is new with the A15 GPU - added support for lossy compression

    archive / summary

  • Compute versus Hardware

    - the article presents a comparison of triangle throughput for indexed buffer rendering, mesh shader...

    archive / summary

  • Creating Portable Vulkan Applications Using DevSim

    - the whitepaper explains how to use DevSim to simulate lower spec devices on higher

    archive / summary

  • Digital combat simulator: frame analysis

    - the frame breakdown covers the flight simulator scenes

    archive / summary

  • Developing Ray tracing content for mobile games

    - the article discusses lessons learned by ARM's approach for developing raytracing support for Mali...

    archive / summary

  • [video] Smoothstep - Shader Graph Basics - Episode 15

    - the video shows the smoothstep node in UE5 and Unity3D

    archive / summary

  • [video] The FUTURE Of Graphics | Mesh Shaders, Ray Tracing & Vulkan with Neil Trevett...

    - video in-depth interview with VP of developer ecosystems at Nvidia

    archive / summary

  • Custom Lens-Flare Post-Process in Unreal Engine

    - the in-depth article shows how to implement a custom physically based lens flare effect as post

    archive / summary

  • Fast Volume Rendering with Spatiotemporal Reservoir Resampling

    - the paper presents how to extend spatiotemporal reservoir resampling to multi

    archive / summary

  • A Token Based Approach To Ordering Transitions

    - the author suggests a method D3D12 state transition system for multithreaded command recording

    archive / summary

  • Physical Light-Matter Interaction in Hermite-Gauss Space

    - the paper proposes a formal model to describe how surfaces/media respond to incident radiation

    archive / summary

  • ray_tracing_motionblur

    - the Vulkan tutorial shows how to use the Vulkan VK_NV_ray_tracing_motion_blur extension (exposed b...

    archive / summary

  • Okhsv and Okhsl

    - the article presents a derivation of new color spaces designed for more uniform color picker behav...

    archive / summary

  • SDF Decomposition

    - the article presents a method for the rendering of static Constructive solid geometry SDFs

    archive / summary

  • Say hello to shadergarden

    - article introduces a prototyping system aimed at making multi

    archive / summary

  • Vulkanised 2021

    - signup and schedule for the Vulkanised conference has been published

    archive / summary

  • The Fog of Random

    - the article presents a look at the making of the fog lost in random

    archive / summary

  • Perceptual Model for Adaptive Local Shading and Refresh Rate

    - the paper introduces a new metric, CaMoJAB - this considers how the judder, aliasing, and blur art...

    archive / summary

  • My personal hell of translating DXIL to SPIR-V – part 1

    - start of an article series discussing DXIL with the intended usage of conversion to SPIR

    archive / summary

  • Vulkan’s Best Practice layer now has AMD-specific checks

    - AMD published a Vulkan layer that analyzes the API usage

    archive / summary

  • Vulkan Layer Symbiosis within the Vulkan Ecosystem

    - the whitepaper provides an overview of the Vulkan layer validation tool

    archive / summary

  • Access modern GPU features with WebGPU

    - WebGPU is slowly rolled out into mainstream Chrome versions

    archive / summary

  • Technically Art: Issue 108 (03.09.2021)

    - collection of Tech Art tweets - covering procedural animation, waterfall simulations, particles, a...

    archive / summary

  • The Rendering of Mafia: Definitive Edition

    - in-depth frame analysis of a nighttime scene in Mafia, a d3d11 based deferred rendering engine

    archive / summary

  • Optimizing AMD FSR for Mobiles

    - the article presents optimizations to the FidelityFX Super

    archive / summary

  • Compressed GPU texture formats – a review and compute shader decoders – part 3/3

    - the article presents how to implement a shader-based ASTC decoder

    archive / summary

  • My Takeaways from WebGPU July 2021 Meetup

    - the article contains a brief summary of the content presented at the WebGPU meetup

    archive / summary

  • Stylised Grass with Shaders in URP

    - the shader tutorial presents how to implement a grass shader using the Universal Render Pipeline i...

    archive / summary

  • Technically Art: Issue 107 (27.08.2021)

    - collection of tweets covering an extensive range of technical art topics

    archive / summary

  • Linux in a Pixel Shader - A RISC-V Emulator for VRChat

    - article presents a project that emulates a Linux in a pixel shader running in VRChat

    archive / summary

  • Temporal Antialiasing Starter Pack

    - the article presents a collection of TAA resources

    archive / summary

  • [video] The Beauty of Bézier Curves

    - the video shows how bezier curves are defined, how they are used

    archive / summary

  • Writing Portable Rendering Code with NVRHI

    - Nvidia open-sourced their internal abstraction layer on top of D3D11, D3D12, and Vulkan

    archive / summary

  • SIGGRAPH 2021 Links

    - collection of links to Siggraph 2021 content - Courses, papers, posters, ...

    archive / summary

  • Better GPU Hash Tables

    - the paper presents three different variations of static hash tables for GPU usage

    archive / summary

  • 5 ways to draw an outline

    - the articles shows Rim Effects, Vertex Extrusion, Blurred Buffer, Jump Flood Algorithm, and Edge D...

    archive / summary

  • PIX 2108.18: New programmatic capture APIs and much more

    - new PIX for windows APIs that allow applications to take a capture programmatically without having...

    archive / summary

  • Read My Chapter in Ray Tracing Gems II!

    - the article provides a summary of the Using Bindless Resources With DirectX Raytracing chapter fro...

    archive / summary

  • [pptx] Geometry Rendering Pipeline Architecture at Activision

    - the talk presents how Activision had to rethink the geometry pipeline when moving from tightly con...

    archive / summary

  • [video] Anti-Racist Graphics Research (SIGGRAPH 2021)

    - the video discusses biases and assumptions that are baked into the graphics research

    archive / summary

  • Optimizing DX12 Resource Uploads to the GPU Using CPU-Visible VRAM

    - the article presents a new D3D12 Nvidia extension that enables a developer to allocate CPU

    archive / summary

  • SIGGRAPH 2021 Talk- Unbiased Emission and Scattering Importance Sampling for Heteroge...

    - the paper presents a new distance sampling method

    archive / summary

  • 2D Lighting with Hard Shadows

    - the article presents a polygon extension-based method for the generation of 2D shadows

    archive / summary

  • 2D Lighting with Soft Shadows

    - the blog post extends the previously discussed hard shadow method to support penumbra based soft s...

    archive / summary

  • Introducing a New API for Checking Feature Support in Direct3D 12

    - the blog post presents a new helper class (CD3DX12FeatureSupport) that unifies the D3D12 feature c...

    archive / summary

  • Introduction to Caching Shading Information in World Space using Implicit Progressive...

    - the article presents an overview of a master thesis about caching shading information in world spa...

    archive / summary

  • Advances in Real-Time Rendering in 3D Graphics and Games - Siggraph 2021

    - course page for the content of Siggraph 2021 - covering Spatial Upscaling through FidelityFX, Conc...

    archive / summary

  • Rendering Engine Architecture Course - Siggraph 2021

    - a new course happening for the first time in 2021

    archive / summary

  • Graphics Showcase: Using Vulkan Subpasses in UE4 for Performant Tone Mapping on Quest

    - article presents how tone mapping can be implemented into UE 4 using Vulkan sub passes

    archive / summary

  • Ray Tracing Gems II Available Today as Free Digital Download

    - free 800+ pages on raytracing - a large number of topics is covered, including the following

    archive / summary

  • Paper Digest: SIGGRAPH 2021 Highlights

    - list of 149 accepted SIGGRAPH-2021 papers - containing a machine

    archive / summary

  • EXR: Lossless Compression

    - short blog post that tests EXR compression/decompression speed for the different available options...

    archive / summary

  • A call to brute force

    - author shows that path tracers are fundamentally simple if relying on pure brute force approaches

    archive / summary

  • Swallowing the Elephant (Part 12): A Postscript On Disk Bandwidth

    - discussion of loading performance in pbrt-v4 - showing how IO and CPU performance bottleneck chang...

    archive / summary

  • A Little Bit About PRNG Stuff

    - article presents an in-depth discussion of Pseudorandom Number Generators

    archive / summary

  • Unity at SIGGRAPH 2021

    - overview of Unity at Siggraph - Unity is providing access to a basic level SIGGRAPH pass

    archive / summary

  • Some Books

    - author suggested 3 books for computer graphics - covering raytracing, introduction to computer gra...

    archive / summary

  • Free Ray Tracing Gems II Chapter Covers Ray Tracing in Remedy’s Control

    - presents how all ray-tracing based effects were implemented in the game Control

    archive / summary

  • Visibility TAA and Upsampling with Subsample History

    - extension of the previously presented Decoupled Visibility Multisampling technique

    archive / summary

  • Swallowing the Elephant (Part 10): Rendering on the GPU—Finally

    - part of the series that discusses how GPU support for the Moana Island scene was added to pbrt

    archive / summary

  • GPGPU, ML Inference, and Vulkan Compute

    - the blog discusses Vulkan usage for GPGPU workloads, in particular for machine learning

    archive / summary

  • Real-Time Shading with Polyhedral Lights using Silhouette Detection

    - a Bachelor thesis that presents a method for GPU based silhouette generation from Polyhedral light...

    archive / summary

  • [video] The Making of “Alpha Point”—UE5 Technical Demo | GDC 2021

    - GDC talk presents a walkthrough of the technical creation aspects of the demo

    archive / summary

  • Color Matching Function Comparison

    - the post compares different Color Matching Function (CMF) for use with spectral rendering techniqu...

    archive / summary

  • 2D Lighting Techniques

    - the article presents an overview of numerous techniques that can be used to implement lighting for...

    archive / summary

  • Vulkan Hardware Database updates

    - the Vulkan hardware database has been updated - texture format view now has a breakdown of what ti...

    archive / summary

  • Software VRS with Visibility Buffer Rendering

    - the article discusses how Visibility Buffer can be combined with Variable Rate Shading (VRS) Techn...

    archive / summary

  • There is no S in SDF without the Distance Fields!

    - the article explains how to express SDFs in Unity and Unreal

    archive / summary

  • Real-time ray traced caustics

    - the preprint from Ray Tracing Gems 2 covers two techniques for caustics

    archive / summary

  • Processing aware image filtering: compensating for the upsampling

    - the article presents the idea of compensating for shortcomings of an upsample technique in the dow...

    archive / summary

  • Reducing Acceleration Structure Memory with NVIDIA RTXMU

    - the NVIDIA RTX Memory Utility is an open-source (MIT License) SDK designed for reducing the comple...

    archive / summary

  • [video] Arm Mali GPU Training Series Ep 1.2 : The rendering pipeline

    - the video discusses the rendering pipeline - presents the geometry and pixel processing pipeline

    archive / summary

  • [video] Arm Mali GPU Training Series Ep 1.3 : GPU architecture

    - explains how the rendering pipeline translates into GPU hardware

    archive / summary

  • [video] Arm Mali GPU Training Series Ep 1.4 : Hardware shader cores

    - the video discusses the hardware essentials - presents how CPUs are designed

    archive / summary

  • GPU architecture types explained

    - the article discusses tile-based and immediate-mode rendering GPUs in detail

    archive / summary

  • Using Debug Printf

    - whitepaper that discusses how to use printf in Vulkan shaders

    archive / summary

  • 3D SDF Primitives in WGSL

    - a collection of Signed-distance field primitives (Cylinder, cubes, ...) expressed in WebGPU Shadin...

    archive / summary

  • [video] Tech Focus: Global Illumination - What It Is, How Does It Work And Why Do We ...

    - the video provides an overview explanation of Global Illumination

    archive / summary

  • My toy renderer, part 4: Ray tracing

    - the article goes into detail on how to implement physically correct and affordable ray traced soft...

    archive / summary

  • Decoupled Visibility Multisampling

    - presents a method that decouples geometry samples from shading samples

    archive / summary

  • Slope Space in BRDF Theory

    - the article presents a refresher on the concept of slope

    archive / summary

  • Dynamic destruction in Radio Viscera

    - the article explains how the destruction system was implemented

    archive / summary

  • FBM detail in SDFs

    - the article presents a natural SDF based detail mapping / Fractal Noise displacement mapping

    archive / summary

  • Technically Art: Issue 106 (16.07.2021)

    - collection of tweets about technical art - covering particles, stylized shading, portfolios, and g...

    archive / summary

  • Signed Distance field (SDF)

    - a collection of resources, links, papers, discussions about SDFs

    archive / summary

  • My toy renderer, part 3: Rendering basics

    - the article explains how a visibility buffer approach is used

    archive / summary

  • [video] Arm Mali GPU Training Series Ep 1.1 : Introduction to mobile systems

    - the first part of the series discusses where mobile GPUs are used

    archive / summary

  • Weighted reservoir sampling: randomly sampling streams

    - pre-release chapter from ray tracing gems 2 - presents weighted reservoir sampling, a technique fo...

    archive / summary

  • AMD FidelityFX Super Resolution (FSR) source code is now available here on GPUOpen

    - the source code for the technique has been published on Github

    archive / summary

  • Visibility Buffer Rendering with Material Graphs

    - the article presents an overview of The Visibility Buffer approach

    archive / summary

  • HPG 2021 Keynote: Alex Evans (NVIDIA), Optimising for Artist Happiness

    - Alex covers many ideas and algorithms - classical tools require the artist to deal with technical ...

    archive / summary

  • Raytracing tidbits

    - collection of ray tracing experiments and presentation of results

    archive / summary

  • The reference path tracer

    - first free chapter from ray tracing gems 2 has been released

    archive / summary

  • Automated Testing of a Ray Tracer

    - author presents an introduction to automated visual testing

    archive / summary

  • Comparing images in frequency domain. “Spectral loss” – does it make sense?

    - the blog post discusses if it makes sense to compare images in the frequency domain

    archive / summary

  • HPG 2021 Papers Preview

    - preview video if a view of the papers presented at HPG 2021

    archive / summary

  • WebGPU for Metal Developers, Part Two

    - second part of the series explaining the WebGPU basics by presenting the equivalent concepts from ...

    archive / summary

  • Relighting and Material Editing with Implicit Representations

    - the article presents a brief overview of NeRF (neural radiance fields)

    archive / summary

  • NVIDIA Research: NeRF-Tex: Neural Reflectance Field Textures

    - the presents the use of neural fields to model materials such as fur, fabric, and grass

    archive / summary

  • What is Vulkan Compute?

    - author presents the subset of Vulkan API related to compute workloads

    archive / summary

  • An Initial Inspection of FidelityFX Super Resolution

    - blog post presents a comparison of AMDs FSR, CAS against other upscale techniques

    archive / summary

  • MMPX Style-Preserving Pixel Art Magnification

    - the paper presents a filter for magnifying pixel art (such as 8

    archive / summary

  • Basic Shader Math - Shader Graph Basics - Episode 4

    - the video tutorial explains how to use the add, subtract, multiply, and divide nodes in UE5 and Un...

    archive / summary

  • MatMorpher: A Morphing Operator for SVBRDFs

    - the paper presents a new operator for blending BRDF texture maps

    archive / summary

  • [video] EGSR 2021 Day 1

    - stream of the first day of Eurographics Symposium on Rendering 2021

    archive / summary

  • Moving Basis Decomposition for Precomputed Light Transport

    - paper presents the Moving Basis Decomposition framework

    archive / summary

  • My toy renderer, part 2: Scene management

    - the article discusses the scene structure of the authors' renderer

    archive / summary

  • ReSTIR GI: Path Resampling for Real-Time Path Tracing

    - paper presents a new path sampling algorithm for indirect lighting

    archive / summary

  • The Missing Guide to Modern Graphics APIs – 2. PSOs

    - the article presents an overview of why Pipeline State Object was introduced to allow predictable ...

    archive / summary

  • [video] Live Coding: Making the American flag with math!

    - the video tutorial shows a walkthrough to render the USA flag using shader toy

    archive / summary

  • An Unbiased Ray-Marching Transmittance Estimator

    - in-depth analysis of the sources of variance in state

    archive / summary

  • NVIDIA Research: An Analytic BRDF for Materials with Spherical Lambertian Scatterers

    - the paper presents a new BRDF for porous/dusty materials

    archive / summary

  • Implementing Gamut Mapping

    - the article discusses how to implement gamut clipping into a render pipeline

    archive / summary

  • i3D 2021 Keynote: Trace All The Rays!

    - describes the state of raytracing in games - presents a high

    archive / summary

  • Real-time Neural Radiance Caching for Path Tracing

    - the paper introduces a neural radiance caching method for path

    archive / summary

  • [video] Drawing Boxes and Rectangles in URP Shader Graph with 2D SDFs!

    - the video tutorial explains how to draw Squares, boxes, and rounded rectangles as SDFs

    archive / summary

  • [video] Advanced Graphics Tutorial: Wakes, Explosions and Lighting: Interactive Water...

    - discusses how to generate ocean displacement, buoyancy,

    archive / summary

  • Deferred shading on mobile: An API overview

    - the article discusses local tile memory and mobile GPUs

    archive / summary

  • VK_EXT_multi_draw released for Vulkan

    - a new Vulkan extension that adds vkCmdDrawMultiEXT vkCmdDrawMultiIndexedEXT

    archive / summary

  • BRDF Importance Sampling for Linear Lights

    - the paper presents a method for importance sampling linear lights such as fluorescent tubes

    archive / summary

  • How to get the most out of Smart Access Memory (SAM)

    - article describes how AMD Smart Access Memory allows applications full access to GPU local memory

    archive / summary

  • Supporting Native HDR Monitors

    - the article provides an introductory overview of HDR concepts

    archive / summary

  • A Polarizing Filter Function for Real-Time Rendering

    - the paper presents a polarizing filter function for specularly reflected light

    archive / summary

  • What’s new in Metal at WWDC21

    - the article shows an overview of new features and changes presented at WWDC21

    archive / summary

  • Using asynchronous compute on Arm Mali GPUs: A practical sample

    - the post shows how the Mali hardware operates and exposes multiple graphics queues

    archive / summary

  • Perceptual Lightness for Game Graphics

    - the blog presents a comparison between color's luminance and lightness

    archive / summary

  • [video] All Blend Modes! Looking at the Shader Graph Blend Mode Filters

    - the video presents an overview of all blend modes supported from the shader graph node

    archive / summary

  • Stable Geometric Specular Antialiasing with Projected-Space NDF Filtering

    - the paper introduces an improvement for specular antialiasing

    archive / summary

  • [video] Lumen | Inside Unreal

    - Lumen presentations starts at [10:00 minutes](https://youtu.be/QdV_e

    archive / summary

  • Future geometry pipeline

    - article discusses alternative approaches for geometry pipeline design

    archive / summary

  • VFX Notes: Ep 1 – Actor replacement, UE5 and what exactly is gamma?

    - new podcast about VFX in film, TV, and games - discussing Resident Evil Village and UE5

    archive / summary

  • [video] Drawing a Line Segment in the URP Shader Graph with 2D SDFs!

    - the video tutorial explains how to draw a line segment in pixel shaders

    archive / summary

  • Brief Analysis of Nanite GPU Culling

    - the article presents a look at the implementation details of nanite GPU culling

    archive / summary

  • BRDF Importance Sampling for Polygonal Lights

    - the paper presents how to sample polygonal area lights proportional to linearly transformed cosine...

    archive / summary

  • [video] Explore bindless rendering in Metal

    - the video explains the motivation for the bindless model and explains the concept

    archive / summary

  • [video] Nanite | Inside Unreal

    - interview discussing the demo project, lessons learned, discussions about future directions, and m...

    archive / summary

  • WebGPU for Metal Developers, Part One

    - the article presents the fundamentals of the WebGPU API required to draw a colored triangle

    archive / summary

  • [video] Compute shader 101

    - the talk provides an overview of compute shaders

    archive / summary

  • Bringing Vulkan Raytracing to older AMD hardware (Vega and below)

    - the article discusses the implementation of ray-tracing support into the open

    archive / summary

  • Fewer Samples per Pixel per Frame

    - the blog post presents a history of sampling techniques, how it was used and how it changed over t...

    archive / summary

  • How to use debugPrintf in Vulkan

    - the article presents how printf is supported in Vulkan Shaders

    archive / summary

  • Compute shader glossary

    - the article provides an overview of compute shader terminology and how they differ between APIs

    archive / summary

  • Neural material (de)compression – data-driven nonlinear dimensionality reduction

    - the article discusses continues exploration in compressing a set of textures

    archive / summary

  • [video] Live Coding:Bending Light

    - the video tutorial shows how to implement refraction into a shadertoy

    archive / summary

  • Data-Driven Analysis and Design of Vulkan Ray-Tracing Applications using Automatic In...

    - the master thesis presents a SPIR-V based instrumentation framework

    archive / summary

  • Brief Analysis of Nanite

    - the article provides an analysis of the Nanite cluster algorithm

    archive / summary

  • A Macro View of Nanite

    - the article presents an overview of the Nanite Rendering pipeline using RenderDoc

    archive / summary

  • Unbiased VNDF Sampling for Backfacing Shading Normals

    - the paper presents an improved normalization for the Smith–GGX BRDF visible normal distribution fu...

    archive / summary

  • [video] Basics of Mipmaps in Unity Part 2! Shaders, Bias, and Texture2DLOD!

    - the video tutorial shows how to implement the MIP selection algorithm using shader code

    archive / summary

  • Reliable Feature-Line Driven Quad-Remeshing

    - the paper presents a new algorithm for the semi-regular quadrangulation of arbitrary input surface...

    archive / summary

  • Infinite Grassland: Ray Traced Rare Semi-Uniform Entity Manifolds for Rendering Count...

    - the article presents a proof of concept stage technique to render grass using a screen

    archive / summary

  • [video] Introduction to Ray Tracing - Class 1

    - introductory Siggraph class about ray tracing - including an opening interview with Peter Shirley...

    archive / summary

  • Triangle Grids

    - the article presents triangle grids - discussing what a triangle grid is, why to use them an...

    archive / summary

  • Writing Shader Code in Universal RP (v2)

    - the article provides an overview of authoring shaders in HLSL

    archive / summary

  • Tech Art Chronicles: What Are SDFs Anwyay?

    - the article explains what Signed Distance Fields (SDFs) are

    archive / summary

  • The technical art of sea of thieves

    - the video recording from the Siggraph 2018 has been released

    archive / summary

  • A VR Frame’s Life

    - the blog post presents the setup of a frame for VR rendering (Oculus Quest)

    archive / summary

  • Distributing Monte Carlo errors as Blue Noise in Screen Space, Part 2 - Retargeting P...

    - the article presents how to distribute Monte Carlo errors as blue noise in screen space

    archive / summary

  • Graphics Pipelines for Young Bloods

    - the post presents an overview of different rendering pipeline architectures (Forward, deferred, vi...

    archive / summary

  • Hash Functions for GPU Rendering

    - suggests using a PCG hash function as default for GPU based hash/random functionality

    archive / summary

  • [video] Basics of Partial Derivative Shader Funcs in Unity! DDX, DDY, FWidth

    - the video explains how partial derivatives are calculated in pixel shaders

    archive / summary

  • Inherited Viewport Scissor Sample

    - the article presents an overview of Vulkan secondary command buffers

    archive / summary

  • [video] Beautiful Glitter Simulation…Faster Than Real Time

    - Two Minute Paper presenting an overview of Procedural Physically

    archive / summary

  • Studying Gamut Clipping

    - the author presents his learning about Gamut Clipping

    archive / summary

  • Fast Divergence-Free Noise Generation in Shaders

    - the post presents a divergence-free noise generation technique (such as curl noise)

    archive / summary

  • Tips: Acceleration Structure Compaction

    - the article shows how to compact DXR acceleration structures

    archive / summary

  • In-depth technical dive into metro exodus pc enhanced edition

    - the article provides an overview of raytracing in rendering pipelines, how it has developed over t...

    archive / summary

  • Experiments in hybrid raytraced shadows

    - the blog post discusses how to combine raytraced and shadows from shadow maps

    archive / summary

  • Shader translation benchmark on Dota2/Metal

    - the blog post presents a performance comparison of Naga (rust based shader translation libra...

    archive / summary

  • Radeon Rays v4.1 is now available – with open source!

    - Radeon Rays v4.1 (ray intersection library for D3D12 and Vulkan) is now open source

    archive / summary

  • The stack monoid revisited

    - the article discusses a technique for parallel processing of stack

    archive / summary

  • [video] Basics of Mipmaps in Unity Part 1! Import Settings and Custom Mipmaps!

    - the video presents an explanation on mipmaps, presenting what effects it has on the visual appeara...

    archive / summary

  • [video] Raymarched Reflections

    - part 3 of the newton cradle tutorial series - shows how to implement reflections using raymarching...

    archive / summary

  • [video] SIGGRAPH 2021: Technical Papers Preview Trailer

    - 4-minute trailer presenting a brief look at many papers that will be presented as part of SIGGRAPH...

    archive / summary

  • Temporally Adaptive Shading Reuse for Real-Time Rendering and Virtual Reality

    - the paper investigates how shading reuse is perceived when visibility and shading rate is decouple...

    archive / summary

  • Scaling Probe-Based Real-Time Dynamic Global Illumination for Production

    - the paper presents extensions and improvements to the probe

    archive / summary

  • [video] Basics of White Noise! Random Numbers for Shaders and ProcGen in Unity

    - the video explains how to generate 2D Perlin noise and how to use it in Unity

    archive / summary

  • [video] It Just Works: Ray-Traced Reflections in Battlefield V

    - presents how D3D12 Raytracing support was implemented in Battlefield V

    archive / summary

  • Graphics API abstraction

    - the article presents a walkthrough of the API abstractions on top of D3D11, D3D12, and Vulkan used...

    archive / summary

  • A Debugging Story

    - an interactive article about debugging a C++ crash

    archive / summary

  • Generating Primitive Shapes in C++

    - the article shows how to generate planes, cones, cylinders, and a torus

    archive / summary

  • Direct Delta Mush Skinning Compression with Continuous Examples

    - the paper presents a novel model that splits a Direct Delta Mush into two layers

    archive / summary

  • Antithetic Sampling for Monte Carlo Differentiable Rendering

    - the paper presents antithetic variance reduction technique used to estimate the interior integrals...

    archive / summary

  • [video] Burning Down Virtual Trees... In Real Time!

    - Two Minute Paper provides an overview of the Interactive Wood Combustion for Botanical Tree Models...

    archive / summary

  • [video] Newton's Cradle: Setting up Materials

    - part 2 of the video tutorial that adds material support to the SDF based Newton Cradle implemented...

    archive / summary

  • The case of the curiously slow shader

    - the article presents a walkthrough how the author analyzed the slow shader performance on the GPU ...

    archive / summary

  • Projective Geometric Algebra - Wiki

    - WIP wiki about Projective Geometric Algebra, specifically the four

    archive / summary

  • How to Obtain Stable GPU Measurements on Quest

    - the article presents how to setup UE and Unity to disable dynamic motions, user specific parts fro...

    archive / summary

  • Technically Art: Issue 96 (30.04.2021)

    - collection of tech art tweets - covering UE4 weather systems, GPU instancing with Unity shader gra...

    archive / summary

  • Creating a Card Shader with 3D content

    - the article presents a walkthrough how to create a card shader

    archive / summary

  • [video] NEW – Video: Radeon GPU Profiler v1.10

    - the video provides a summary of the new features in the radeon GPU profiler

    archive / summary

  • Graphics technique names

    - twitter thread author provides summaries of 3 common technques

    archive / summary

  • Hashing Space Hashing in an Arbitrary Grid

    - the tutorial explains how to generate consistent hashes based on integer positions

    archive / summary

  • Announcing HLSL Shader Model 6.6

    - 64-bit integer atomics are now supported - some new capability bits got introduced as not all view...

    archive / summary

  • Supermassive black hole tutorial

    - the tutorial provides a walkthrough of a raymarching supermassive black hole shader

    archive / summary

  • [video] RTXDI: Details on Achieving Real Time Performance

    - Talk discusses how the performance of the ray-traced direct illumination was greatly improved

    archive / summary

  • [video] Denoising Raytraced Soft Shadows on Xbox Series X|S and Windows with Fidelity...

    - explains shadow denoising process - broken down into 5 blocks that are explained individually

    archive / summary

  • [video] Tier 2 Variable Rate Shading in Gears

    - overview of Variable Rate Shading (VRS), what is supported with Tier 1 and 2

    archive / summary

  • Inverse Z-Buffer

    - visual representation that shows why inverted depth buffer range with floating

    archive / summary

  • i3D 2021 - Posters

    - list of posters presented at I3D - covering Linearly Transformed Spherical Harmonics, Style

    archive / summary

  • ShaderQuest Part 5: Shader code syntax & Colors

    - part 5 of beginner-focused shader tutorial series

    archive / summary

  • The Graphics Codex

    - the Graphics Codex online textbox is now a free - covering an extensive range of topics, model of ...

    archive / summary

  • Rendering Decals and Many Lights with Ray Tracing Acceleration Structures

    - the paper presents a method that uses the AABS from hardware raytracing shaders to apply decals an...

    archive / summary

  • A Survey on Bounding Volume Hierarchies for Ray Tracing

    - the paper presents comprehensive coverage of BVH hierarchies, especially focused on ray tracing

    archive / summary

  • [video] Newton's Cradle: Modeling & Animation

    - the video tutorial presents how to render and animate a newton's cradle with SDFs

    archive / summary

  • Distinctive Derivative Differences

    - the article presents the difference between ddx/y ddx/y_fine

    archive / summary

  • An Introduction to Vulkan Video

    - Vulkan API now exposes video support - extended the concept of the queue to support decode/encode ...

    archive / summary

  • Pixel Art Filtering

    - the article presents an overview of why filtering for pixel art at non

    archive / summary

  • Appearance-Driven Automatic 3D Model Simplification

    - the paper presents a machine learning-based approach that uses differential rendering to approxima...

    archive / summary

  • How to read shader assembly

    - the article provides an overview of shader assembly reading

    archive / summary

  • Optimizing Triangles for a Full-screen Pass

    - the article presents two common approaches to fullscreen passes

    archive / summary

  • Bindless Descriptors

    - the blog post provides a walkthrough of the bindless implementation in Wicked Engine for both Vulk...

    archive / summary

  • Skyboxes in UE4

    - the article shows how to integrate skyboxes into UE4

    archive / summary

  • Rendering large 3D tilemaps with a single draw call at 3000 FPS

    - the articles describes the evolution of a multiple layered tilemap renderer

    archive / summary

  • [video] The Basics of SmoothStep, a Useful Shader Function in Unity URP

    - the video explains the smoothstep curve visually

    archive / summary

  • how do you calculate correct normals when doing vertex displacement shaders?

    - the Twitter thread provides a detailed explanation on how to correctly calculate normal vectors fr...

    archive / summary

  • Game Stack Live

    - registration for Microsoft's online conference on April 20

    archive / summary

  • [video] rendering numbers single quad

    - the video provides an in-depth walkthrough of a debugging vertex ID shader

    archive / summary

  • NeuMIP: Multi-Resolution Neural Materials

    - the paper presents a neural-network-based approach that is aimed at encoding detailed patterns int...

    archive / summary

  • Countering Racial Bias in Computer Graphics Research

    - the paper presents racial bias that can be found in the technical language and numerical measures ...

    archive / summary

  • [video] Create a Sand Dune Shader Graph in Unity URP! No Textures Needed!

    - the Tutorial presents how to generate sand dunes in pixel shaders using Unity

    archive / summary

  • Radeon™ GPU Profiler v1.10 introduces GPU cache counters, Vulkan® ray tracing, and mo...

    - updated version supports reporting of memory, instruction, and scalar cache usage on RDNA hardware...

    archive / summary

  • Managing Shader Code Complexity in NVIDIA Omniverse

    - the article provides an overview of the Slang Shading language and its use inside of NVIDIA Omnive...

    archive / summary

  • Mean Squared Error is Variance

    - the article shows how to calculate the variance of a stream of values

    archive / summary

  • Baking Neural Radiance Fields for Real-Time View Synthesis

    - the paper presents a novel sparse Neural Radiance Grid representation

    archive / summary

  • Generating Meshes of a Sphere

    - the article presents 4 different ways to generate a sphere mesh

    archive / summary

  • Ray Tracing Lossy Compressed Grid Primitives

    - the paper presents a method that allows a 5−7× reduction in memory footprint compared to indexed t...

    archive / summary

  • Understanding Vulkan Synchronization

    - the blog posts provides an easy to understand summary of the Vulkan Synchronization

    archive / summary

  • Importance sampling visible wavelength

    - the article presents experiments with spectral rendering to find an importance sampled wavel...

    archive / summary

  • Interactive Path Tracing and Reconstruction of Sparse Volumes

    - the paper presents a technique to allow path tracing through sparse volumes

    archive / summary

  • [video] Compositional Neural Scene Representations for Shading Inference - SIGGRAPH 2...

    - video recording of the SIGGRAPH 2020 was released

    archive / summary

  • Meshlete

    - open-source release of a tool to generate meshlets (for use with mesh shaders, GPU based cul...

    archive / summary

  • NVIDIA Vulkan Ray Tracing Tutorials

    - Vulkan Ray tracing tutorials have been updated

    archive / summary

  • Guided Visibility Sampling++

    - the paper presents a technique to discover a potentially visible set (PVS) of triangles visible fr...

    archive / summary

  • [video] Sparkling Grass Lawn in Shader Graph! Unity URP Procedural Material

    - the video tutorial explains how to generate a procedural stylized lawn shader

    archive / summary

  • Twitter Thread - Valheim rendering performance

    - the Twitter thread presents a breakdown of the Valheim rendering pipeline (implemented using...

    archive / summary

  • Technically Art: Issue 91 (26.03.2021)

    - collection of tech art tweets - covering art style demonstration, material creation, destruc...

    archive / summary

  • Wall Cutout in Shader Graph and URP

    - the tutorial explains an approach how to implement cutting walls into 3D walls

    archive / summary

  • Real-Time Geometric Glint Anti-Aliasing with Normal Map Filtering

    - the paper presents a Geometric glint anti-aliasing method that is compatible with LEAN mapping

    archive / summary

  • Screen-Space Reflections Explained

    - the article provides an overview of the first steps required to implement screen space reflection ...

    archive / summary

  • How to reconstruct an image if you see only a few pixels

    - the article provides an introduction to Compressive Sensing

    archive / summary

  • Auto HDR Preview for PC Available Today

    - the article describes provides a brief overview of AutoHDR

    archive / summary

  • [video] Adding Shadow Casting to Grass Baked with Compute Shaders

    - the video tutorial shows how to change grass to cast shadows using Unity

    archive / summary

  • Distributing Monte Carlo errors as Blue Noise in Screen Space, Part 1 - Theory and So...

    - the blog post describes how blue noise can help to improve converge of ray tracing results

    archive / summary

  • ShaderQuest Part 4: Shader Environment Architecture

    - the tutorial aimed at Unity beginners explained how shaders are set up and structured

    archive / summary

  • Which color scale to use when visualizing data

    - the article series provides information about the role of color in data visualization

    archive / summary

  • i3D 2021 - Papers Program

    - list of all papers that will be presented as part of I3D 2021 in April

    archive / summary

  • Soft Foliage Shader Breakdown

    - the article presents how soft shading for foliage was implemented

    archive / summary

  • Stochastic-Depth Ambient Occlusion

    - the paper presents a novel approach to screen space ambient occlusion that accounts for occluded g...

    archive / summary

  • [video] Shading the World of Anthem

    - the video for the GDC 2019 talk has been released

    archive / summary

  • Fitting cubic Bézier curves

    - the blog posts discusses an approach for efficiently fitting bezier curves to an existing techniqu...

    archive / summary

  • [video] Unity Basics: Triangle Winding, Culling Modes & Double Sided Materials

    - the Unity video tutorial explains triangle winding order, how it connects to culling

    archive / summary

  • The Rendering of Jurassic World: Evolution

    - the article presents a frame breakdown of Jurassic World, a forward D3D11 based tiled forward ren...

    archive / summary

  • Visual debugging and profiling

    - the article presents an overview of the new debugging features in SHADERed

    archive / summary

  • OpenGL on DirectX: Conformance & upstreaming of the D3D12 driver

    - the article provides an overview of the state of OpenGL on D3D12; it's now used to run OpenGL appl...

    archive / summary

  • Making a Shading Language for my Offline Renderer

    - the blog post presents an overview of the custom shading language design for an offline renderer

    archive / summary

  • shadertoy - Advanced tricks

    - the blog post shows a number of tricks for shadertoy development

    archive / summary

  • 3D Math Primer for Graphics and Game Development - Free Online

    - introductory math book released for free in updated form from the original release

    archive / summary

  • Crash Course in BRDF Implementation

    - the extensive article provides an overview explaining BRDFs

    archive / summary

  • NAUGHTY DOG AT SIGGRAPH 2020

    - videos and slides from SIGGRAPH 2020 presentations by Naughty Dog

    archive / summary

  • Vulkan SDK Offers Developers a Smooth Transition Path to Synchronization2

    - the blog post presents an overview of improvements of Synchronization2

    archive / summary

  • New game changing Vulkan extensions for mobile: Timeline Semaphores

    - the article presents an overview of Vulkan timeline semaphores

    archive / summary

  • Ray Traversal of OpenVDB Frustum Grids

    - the paper presents an incremental approach for the traversal OpenVDB frustum grids

    archive / summary

  • [video] Differentiable Material Synthesis Is Amazing!

    - the video provides a high-level overview of differential rendering papers

    archive / summary

  • [video] Nioh 2 DLSS Analysis: AI Upscaling's Toughest Test Yet?

    - video comparison of DLSS 2.0 against a native 4k rendering

    archive / summary

  • Computing gradients on grids of pixels and voxels – forward, central, and… diagonal d...

    - the post presents an overview of what gradients are, what they are used for

    archive / summary

  • FXAA Fast approXimate Anti-Aliasing

    - the tutorial shows how to implement FXAA into a Unity custom scriptable render pipeline

    archive / summary

  • [video] The CRYENGINE Rendering Pipeline

    - the Video provides a 90-minute in-depth look at the rendering architecture used in CryEngine

    archive / summary

  • Tech Breakdown: Hiding Water in Boat Interiors

    - the article presents two methods to hide water from the inside of boats

    archive / summary

  • Experimenting with Shader Graph: Doing more with less

    - the article presents an alternative way to pack PBR textures into a single 4 channel texture

    archive / summary

  • New game changing Vulkan extensions for mobile: Descriptor Indexing

    - the article shows how the Vulkan extensions enable bindless indexing on Android

    archive / summary

  • Moving The Machinery to Bindless

    - the article presents how the bindless binding model has been integrated into The Machinery

    archive / summary

  • [video] Shaders For Game Devs

    - 10h Video online class about shader development - whole series covers an entire spectrum from basi...

    archive / summary

  • New game changing Vulkan extensions for mobile: Buffer Device Address

    - the article presents the buffer_device_address (BDA) extension for Vulkan

    archive / summary

  • Per-Texel Deferred Lighting

    - provides an idea on how to maintain a pixel art style with dynamic lighting in a 3D environment

    archive / summary

  • [video] Blade Grass! Generate and Bake a Field Mesh Using a Compute Shader

    - the video tutorial shows how to generate a grass mesh using a compute shader

    archive / summary

  • [video] GODOT 2D Dissolve Effect : Visual Shader

    - the video tutorial shows how to implement a dissolve shader for 2D sprites using the Visual Shader...

    archive / summary

  • Bilinear down/upsampling, aligning pixel grids, and that infamous GPU half pixel offs...

    - the article shows a few ways of doing bilinear upsampling and downsampling

    archive / summary

  • second tech art thread on the stylized rendering of “Dungeons of #Hinterberg”

    - the Twitter thread presents details about how the outline rendering has been implemented

    archive / summary

  • Temporally Reliable Motion Vectors for Real-time Ray Tracing

    - the paper presents a new technique to generate more accurate motion vectors for shadows, glossy re...

    archive / summary

  • More (Robust) Frustum Culling

    - the article presents Separating Axis Theorem for OBB (oriented bounding box) against the view Frus...

    archive / summary

  • New Vulkan extensions for mobile: Maintenance Extensions

    - the blog post presents an overview of Vulkan extensions added as part of Android R

    archive / summary

  • OpenCL: Hide data transfer behind GPU Kernels runtime

    - the article presents how to use 3 parallel work queues in OpenCL to read, write and process a GPU ...

    archive / summary

  • Minnaert For People Who Don't Know How To Minnaert

    - article presents how to integrate a custom shading model into the Unity rendering pipeline

    archive / summary

  • Vulkan Memory Types on PC and How to Use Them

    - the blog post discusses the different memory types and how applications should use them

    archive / summary

  • VK_KHR_synchronization2 extension support in our latest developer driver

    - the AMD driver now supports the new Vulkan synchronization extension

    archive / summary

  • Real-Time Physically Based Rendering and BRDFs

    - the blog posts provides a walkthrough of the Cook

    archive / summary

  • Using Radeon™ GPU Analyzer v2.4.1 with DirectX® Raytracing

    - the Radeon GPU Analyzer now supports DXR shader disassembly, live VGPR analysis as well as control

    archive / summary

  • Visual Exploration Of Light Transport In Path Tracing

    - master thesis that covers a tool for interactive exploration of all contributing paths from a path...

    archive / summary

  • RDO texture encoding notes

    - the author provides a list of lessons learned and advice that should be considered when working on...

    archive / summary

  • Unity SDF Generator – Part 2

    - second particle in articles series about SDF (signed distance field) generation with Unity

    archive / summary

  • [video] Generate a Mesh Asset Using Compute Shaders in the Unity Editor!

    - the Unity tutorial explains how to generate meshes from a compute shader

    archive / summary

  • Linear Interpolation

    - the article provides a geometric interpretation of linear interpolation, range mapping, and how it...

    archive / summary

  • Implementing Bitonic Merge Sort in Vulkan Compute

    - Shows how to sort data on the GPU using Bitonic Merge Sort networks using GLSL/Vulkan compute

    archive / summary

  • Ice Refraction in Shader Graph and URP

    - the article presents how to implement ice shading

    archive / summary

  • Coding a fireworks effect

    - the video shows how to implement fireworks using fullscreen shader using Shadertoy

    archive / summary

  • Fast Radius Search Exploiting Ray Tracing Frameworks

    - the paper presents a method that maps spacial search in a fixed radius into a ray tracing paradigm...

    archive / summary

  • Crystal Shader Breakdown

    - the article presents a walkthrough of a stylized crystal shader implemented using Unity Shader Gra...

    archive / summary

  • A Voxel Renderer for Learning C/C++

    - the article provides an overview of a GPU voxel renderer using raytracing

    archive / summary

  • Exploring DLSS 2.0 in Unreal Engine 4.26

    - the article presents a comparison of DLSS 2.0 and the default TAA implementation of UE 4.26

    archive / summary

  • Stylized rendering for Dungeons of Hinterberg

    - the Twitter thread presents an overview of the stylized g

    archive / summary

  • Godot 4.0 optimization progress report

    - the post presents an overview of optimizations done for Godot 4.0

    archive / summary

  • A simple path tracer on the GPU

    - the article presents an overview of a simple GPU based path tracer written in Zig

    archive / summary

  • Improved Shader and Texture Level of Detail Using Ray Cones

    - the paper introduces a new method for Mip level selection, including anisotropic filtering in a ra...

    archive / summary

  • sRGB gamut clipping

    - the article presents an introduction to Gamut Clipping (mapping colors outside of the target colo...

    archive / summary

  • Analysis-Driven Optimization: Preparing for Analysis with NVIDIA Nsight Compute, Part...

    - first part of a three-part series that focuses on optimizing a CUDA workload

    archive / summary

  • Managing Memory for Acceleration Structures in DirectX Raytracing

    - the article presents how to reduce memory usage of bottom level acceleration structure (BLAS)

    archive / summary

  • Rim Light Shader Graph in Unity URP! Moody and Atmospheric Lighting!

    - the Unity video tutorial shows how to implement rim lighting (an effect that only applies to the e...

    archive / summary

  • Introduction to Computer Graphics

    - Video lectures for the Introduction to Computer Graphics Course at the University of Utah

    archive / summary

  • Neural Geometric Level of Detail Real-time Rendering with Implicit 3D Surfaces

    - the paper presents a deep neural network to generate signed distance functions using a fixed netwo...

    archive / summary

  • Wrapping around the uv map in 80 frames

    - the article presents an overview of UV mapping - showing different mapping techniques, problems, a...

    archive / summary

  • NVIDIA Announces Nsight Graphics 2021.1

    - updated tools adds support for inline raytracing and capturing applications that are not frame

    archive / summary

  • A Failed Adventure in Avoiding Temporal Anti-Aliasing

    - the author provides an overview of anti-aliasing solutions

    archive / summary

  • Dissecting the Apple M1 GPU, part II

    - the article discusses the progress on an open-source graphics stack for Apple M1

    archive / summary

  • [video] Beyond Emitters: Shader and Surface Driven GPU Particle FX Techniques

    - the video from GDC 2018 was released - the talk presents different iterations of a system to allow...

    archive / summary

  • All the Pipelines - Journey through the GPU

    - the presentation provides an overview of the rendering pipeline from mesh creation to screen outpu...

    archive / summary

  • [video] Neon Noir – Raytracing on Mobile

    - talk provides an overview of the Crytek rendering pipeline

    archive / summary

  • OpenGL to Vulkan

    - the article explains the process of porting the NAP creative coding Framework to Vulkan

    archive / summary

  • Organic Variety Making the Artificial Look Natural

    - the tutorial shows how to create procedural fractals

    archive / summary

  • Rendering dunes terrain in WebGL

    - the article presents how a sand dune wallpaper was implemented using WebGL

    archive / summary

  • [video] How to calculate Normal Vectors in Shader Graph

    - shows why normals need to be recalculated if a mesh shape is changed in a vertex shader

    archive / summary

  • RenderDoc ‘Ref All Resources’ + Vulkan + Memory Aliasing = Beware

    - the post shows how aliased resources can cause problems when doing render doc captures

    archive / summary

  • John Carmack - Essays

    - collection of articles/ blog post written by John Carmack on a variety of topics

    archive / summary

  • [video] Unity: Frosty Icicle Shader with Amplify [URP]

    - the video tutorial shows how to implement a shader for freezing objects

    archive / summary

  • How stunning visual effects bring Ghost of Tsushima to life

    - the blog post shows the interactive particle implementation used in Ghost of Tsushima

    archive / summary

  • Step by step recipe for Temporal Anti-Aliasing

    - the tutorial shows how to implement Temporal Anti

    archive / summary

  • Loading OpenGL With Win32

    - the Rust tutorial provides an extensive walkthrough of the steps required to use OpenGL usin...

    archive / summary

  • Moving Gears to Tier 2 Variable Rate Shading

    - the article presents how VRS tier 2 shading was integrated into Gears

    archive / summary

  • Gamedev Pronunciation Guide

    - the article contains a list of common graphics programming terms and how to pronounce them

    archive / summary

  • Transition guide from VK_NV_raytracing to (final) VK_KHR_raytracing!

    - the article provides a guide for porting from the original VK_NV_raytracing extension to off...

    archive / summary

  • Summer Fun with Creation Graphs

    - the article presents an overview of Creation Graphs and what it enables the user to create in The ...

    archive / summary

  • [video] Stylized grass Tutorial || Houdini and Unreal Engine

    - the video tutorial explains how to create stylized grass in the Unreal engine

    archive / summary

  • Rendering a Sphere on a Quad

    - the article explains in detail how to render a raytraced sphere that interacts with other parts of...

    archive / summary

  • Intro to Shaders

    - beginner-focused tutorial that explains how 3D data is structured in computer graphics

    archive / summary

  • [video] Christmas special, making it snow.

    - the video tutorial explains how to create interactive snow on terrain and objects using Godo...

    archive / summary

  • A Diligent Approach to Ray Tracing

    - the article presents a walkthrough of a RayTracing abstraction layer that was implemented fo...

    archive / summary

  • Radeon™ GPU Profiler 1.9 introduces support for Radeon™ RX 6000 Series

    - the updated tool allows an in-depth view into the raytracing details on AMD hardware

    archive / summary

  • [video] CUDA Memory Model

    - the video explains the CUDA memory model - covering the rules of how memory operations on sh...

    archive / summary

  • ShaderQuest Part 0: Series Introduction

    - Overview for the start of a new shader tutorial series for beginners

    archive / summary

  • Ditherpunk — The article I wish I had about monochrome image dithering

    - the article focuses on providing a walkthrough of dithering techniques

    archive / summary

  • CVTT Texture Compressor Technical Breakdown

    - the article provides an overview of the CVTT compression techniques used (DirecXTex fork aims to b...

    archive / summary

  • [video] How to texture a procedural object

    - the video tutorial explains the fundamentals of texture mapping in ShaderToy

    archive / summary

  • [video] Getting Started with Compute Shaders in Unity

    - this Unity tutorial aimed at beginners presents a starter guide for compute shaders

    archive / summary

  • Unorganized Unit Vectors Sets Quantization

    - the paper presents a new technique of on-the-fly quantization for unorganized sets of unit vectors...

    archive / summary

  • Render Scale - Scaling Up and Down

    - tutorial series about creating a custom scriptable render pipeline in Unity

    archive / summary

  • Basic Tessellation setup in URP

    - the Unity tutorial provides a starting point for how to use tessellation shaders

    archive / summary

  • Graphics Studies Compilation

    - collection of articles that provide a breakdown of various games

    archive / summary

  • Rendering Astronomic Stars

    - the article shows the steps required to use star databases to enable the correct rendering of star...

    archive / summary

  • Best shots from 2020

    - Collection of impressive screenshots from Games (mostly PC, a few from PS4 Pro)

    archive / summary

  • Practical Hash-based Owen Scrambling

    - the paper presents an implementation of a hash-based Owen scrambling for Sobol sampling with neste...

    archive / summary

  • Why are video games graphics (still) a challenge? Productionizing rendering algorithm...

    - the article provides an overview of considerations when developing a graphics technique for video ...

    archive / summary

  • Frustum Culling

    - the article presents how to implement frustum culling and the effects on CPU and GPU performance

    archive / summary

  • Why Raytracing won't simplify AAA real-time rendering.

    - the blog post provides a look back at the evolution of graphics technology and how they affect gam...

    archive / summary

  • RDNA 2 hardware raytracing

    - the blog posts takes a look at the RNDA ISA and presents how ray tracing has been implemented in A...

    archive / summary

  • A perceptual color space for image processing

    - the article presents a new perceptual color space

    archive / summary

  • States and Barriers of Aliasing Render Targets

    - the article presents an overview of D3D12 aliasing barriers, Discard/Clear semantics, and how they...

    archive / summary

  • Hallucinations re: the rendering of Cyberpunk 2077

    - the article presents a breakdown of a Cyberpunk 2077 frame

    archive / summary

  • vk_mini_path_tracer

    - Vulkan tutorial that shows how to implement a Path Tracer in 300 lines of C++ using Vulkan compute...

    archive / summary

  • SuperRT

    - the project that presents the implementation of a custom external raytracing card for use with the...

    archive / summary

  • Grass Geometry Shader with Interactivity (Part 1, the shader)

    - the Unity tutorial explains how interactivity between player and grass can be implemented for geom...

    archive / summary

  • How To Create A Coiled Cable Shader In UE4

    - the article explains how to generate cables from cylinders

    archive / summary

  • to z-prepass or not to z-prepass

    - the article presents an overview of what a Z-pre-pass is

    archive / summary

  • [video] Cyberpunk 2077 PC: What Does Ray Tracing Deliver... And Is It Worth It?

    - in-depth Digital Foundry comparison between Raytracing and classical rendering features on PC

    archive / summary

  • Cameras and Lenses

    - the article gives an understanding of how different types of camera and lenses work

    archive / summary

  • [video] Glyphs, shapes, fonts, signed distance fields.

    - the video tutorial provides an overview of signed distance fields

    archive / summary

  • [video] Moving Mobile Graphics - SIGGRAPH 2020 Course

    - video recording from all talks in the Siggraph 2020 course in a single video

    archive / summary

  • Physically Based Rendering - Phong BRDF

    - introductory slides for physically based rendering course

    archive / summary

  • [video] Grass Fields in Unity URP! Procedurally Generate Blades with Compute Shaders ...

    - the video tutorial shows how to generate grass blades that swing in the wind

    archive / summary

  • Shockwave Shader Graph

    - the video tutorial explains how to implement a ripple effect

    archive / summary

  • Debugging refraction in a ray tracer

    - short blog post that provides advice on how to debug refraction in a raytracer

    archive / summary

  • Texture Compression in 2020

    - the article presents an overview of different compression formats and libraries

    archive / summary

  • Generating Ray-Traced Caustic Effects in Unreal Engine 4, Part 1

    - the article explains the implementation of Caustics using a photon mapping technique that takes ad...

    archive / summary

  • Using Mesh Shaders for Professional Graphics

    - the article shows examples of how to use mesh shaders (code examples in GLSL)

    archive / summary

  • AMD RDNA™ 2 Instruction Set Architecture

    - the RDNA 2 Instruction Set has been released - shows that RDNA 2 supports dedicated instructions f...

    archive / summary

  • Radeon™ Memory Visualizer is now Open Source

    - AMD released the source code for the Memory Visualizer

    archive / summary

  • Softening polygon intersections in Blightbound

    - the article shows how fading our transparent objects when getting close to an intersection helps t...

    archive / summary

  • Accelerating Unstructured Mesh Point Location with RT Cores

    - the paper presents the results of research into using the RTX raytracing hardware for unstructured...

    archive / summary

  • [video] SIGGRAPH 2020 — High Quality, High Performance Rendering in Filament

    - video for the talk has been released, was covered in the week [147](https://www.jendrikillner.com/...

    archive / summary

  • [video] SIGGRAPH 2020 - Large Voxel Landscapes On Mobile

    - the talk explains the Voxel-based terrain system used in Roblox

    archive / summary

  • Black skin in your stylized dimly-lit video game

    - The article presents how important reflectivity of Black skin is for believable results

    archive / summary

  • Open Problems in Real-Time Rendering

    - the talk from Digital Dragons looks at open questions in rendering

    archive / summary

  • Angelo Pesce - Rendering the Metaverse across Space and Time

    - the talk provides an overview of Roblox and how the philosophy creates an environment with very di...

    archive / summary

  • Particles Color and Depth Textures

    - part of tutorial series about the Unity scriptable rendering pipeline (SRP)

    archive / summary

  • Robin Taillandier & Jon Valdes - Every Strand Counts: Physics and Rendering Behind Fr...

    - presentation shows the in-progress state of the new Frostbite hair rendering system in the context...

    archive / summary

  • The Spraycan

    - the articles discusses how the voxel rendering in teardown uses an 8

    archive / summary

  • Linearly Transformed Spherical Harmonics

    - the Bachelor thesis introduces Linearly Transformed Spherical Harmonics

    archive / summary

  • Memory types of discrete GPUs

    - the article explains a different kind of memory that exists

    archive / summary

  • Intel View in Mafia III

    - the article presents how the effect was implemented that allows objects to be colorized/silhouette...

    archive / summary

  • Michał Olejnik - Raytraced Shadows in Call of Duty: Modern Warfare

    - video recording of the talk covered in [week 154](https://www.jendrikillner.com/post/graphics

    archive / summary

  • [video] Painting a Selfie Girl, with Maths

    - the video presents an in-depth walkthrough that shows how to use signed distance fields (SDF) to c...

    archive / summary

  • Reverse engineering the rendering of The Witcher 3, part 21 - the painted world

    - the article shows how The Witcher 3 implements a fullscreen effect that gives the world a painterl...

    archive / summary

  • biplanar mapping - 2020

    - the post presents a bi-planar mapping as an alternative to tri

    archive / summary

  • Depth

    - a very detailed article about depth buffers - focusing on Unity, but most of the information is en...

    archive / summary

  • [video] Endless Fields of Grass in URP with a Compute Shader! | Unity 2020.1

    - A Unity video tutorial that explains how to generate grass meshes using Compute shaders

    archive / summary

  • Multiple Importance Sampling in 1D

    - the article shows how Multiple Importance Sampling in 1D is used to improve the convergence of sto...

    archive / summary

  • Baking a Realistic Renderer from Scratch and other resources for Beginners in Compute...

    - a collection of resources (books, talks, websites) the author recommends for beginners to get star...

    archive / summary

  • DirectX 12 Ultimate - Variable Rate Shading

    - the presentation provides an overview of Variable Rate Shading (VRS), the different features level...

    archive / summary

  • AMD FidelityFX Denoiser

    - the presentation explains the ray tracing denoising technique developed by AMD

    archive / summary

  • Vulkan Ray Tracing Final Specification Release

    - the post explains what changes have been made to the Vulkan raytracing extension since the preview...

    archive / summary

  • Exploring ray tracing techniques in Wolfenstein: Youngblood

    - the article presents an overview of how Vulkan raytracing has been implemented into Wolfenstein

    archive / summary

  • In the works: HLSL Shader Model 6.6

    - the article contains an overview of the new features that will be included in shader model 6.6

    archive / summary

  • D3D12 APITrace - Capture and Replay

    - the blog posts describes how APITrace can intercept D3D12 applications (even complex AAA games suc...

    archive / summary

  • [video] Realistic Clouds - Sapiens Devlog 54

    - the dev vlog explains how the 2D billboard based clouds are implemented

    archive / summary

  • [video] Devlog 1: How we built the toon shading | Open Projects

    - the devlog presents a walkthrough of the implementation of a toon shader

    archive / summary

  • [video] Introduction to Compute Shaders in Unity URP! Replace Geometry Shaders | Game...

    - the video tutorial explains how to take an input mesh and use a compute shader to generate additio...

    archive / summary

  • Top Fire Shader Graphs

    - the article presents three different approaches to archive a fire effect using Unity

    archive / summary

  • d3d12 - Vulkan

    - unrolled Twitter thread presenting an overview of differences between D3D12 and Vulkan

    archive / summary

  • Technically Art: Issue 76 (20.11.2020)

    - collection of tweets related to VFX, shaders, and game art

    archive / summary

  • CasCmdLine - Few Technical Details

    - brief article that shows how to create a D3D11 device without a window

    archive / summary

  • Practical Tips for Implementing Subsurface Scattering in a Ray Tracer

    - the article presents techniques to improve Subsurface Scattering (SSS) implementation based on the...

    archive / summary

  • Frostpunk Heatmap

    - the Unity explains how to implement a heat map view to visualize the temperatures in Buildings

    archive / summary

  • Resource uniformity & bindless access in Vulkan

    - the article provides a brief overview of different kinds of array indexing types in shaders

    archive / summary

  • What is shader occupancy and why do we care about it?

    - the blog post explains what shader occupancy is and how it connects to vector registers usage

    archive / summary

  • Retro CRT Shader — A post processing effect study

    - the article explains how to implement a CRT rendering effect using GLSL

    archive / summary

  • Combining 2D and 3D in Blightbound's VFX

    - the article explains how the 2D VFX effect has been integrated int the 3D world of Blightbound

    archive / summary

  • Introducing OWL: A Node Graph Abstraction Layer on top of OptiX 7

    - article introduces OWL, an abstraction build on OptiX 7

    archive / summary

  • The Bright Side of Ray-Traced Global Illumination in Unity

    - the article presents the difference between baked, screen

    archive / summary

  • Generating meshes procedurally in Unity

    - the post explains how to generate a procedural mesh

    archive / summary

  • Vulkan Ecosystem & SDK Survey - 2020

    - Vulkan survey to gather information about user experience, platform support, and future developmen...

    archive / summary

  • [video] Procedural Water Ripples in Unity using Shader Graph Only

    - a Unity video tutorial that shows how to implement a water ripple effect

    archive / summary

  • Linear Algebra Shenanigans: Gizmo Repair

    - the article presents how to resolve issues with movement widget logic

    archive / summary

  • [video] SIGGRAPH Asia 2020 – Technical Papers Trailer

    - overview of technical papers that will be presented at SIGGRAPH Asia 2020

    archive / summary

  • Normalizing the Phong Specular BRDFs

    - the paper presents an energy normalization derivation of the Phong lighting model

    archive / summary

  • Projective Geometric Algebra

    - collection of resources by Eric Lengyel covering geometric algebra (this includes Grassmann algebr...

    archive / summary

  • Compute Shaders Rendering One Million Cubes

    - the article explains how to use a compute shader to render moving cubes

    archive / summary

  • A summer sprint: bringing near-native performance to Zink

    - the blog post presents an overview of the development progress of Zink(OpenGL on Vulkan layer)

    archive / summary

  • Adding support for two-level acceleration for raytracing

    - the second part of the blog post series covering raytracing implementation with compute shaders pr...

    archive / summary

  • Khronos Vulkan Working Group Releases Shading Rate Extension to Increase Rendering Pe...

    - Vulkan extension for Variable Rate Shading (VRS) has been released as [VK_KHR_fragment_shading_rat...

    archive / summary

  • PIX 2010.26 – Updated Command List Execution View & Descriptor Heap Viewer

    - latest PIX update adds support for visualizing the GPU execution of command list from a single Exe...

    archive / summary

  • Technically Art: Issue 74 (30.10.2020)

    - collection of tweets related to VFX, shaders, and game art

    archive / summary

  • The Elephant on RTX – First Light. (or: Ray Tracing Disney’s Moana Island using RTX, ...

    - the author presents an overview of his raytracer setup

    archive / summary

  • Multiple Cameras Camera Blending and Rendering Layers

    - the Unity article explains how to integrate multiple cameras into a scriptable render pipeline

    archive / summary

  • Shader Graph - Stylized Glass

    - the shader tutorial explains how to stylized toon glass shader

    archive / summary

  • Screen Space Reflections in Blightbound

    - the articles explains the pitfalls encountered when implementing Screen Space reflections

    archive / summary

  • The Dark Side Of Ray-Traced Ambient Occlusion (RTAO)

    - the blog post provides an overview of ambient occlusion and what it approximates

    archive / summary

  • Technically Art: Issue 73 (23.10.2020)

    - collection of tweets related to VFX, shaders, and game art

    archive / summary

  • Raytraced Shadows in Call of Duty: Modern Warfare

    - the presentation explains how the raytracing for shadows has been implemented into Call of Duty

    archive / summary

  • Surface Gradient–Based Bump Mapping Framework

    - the paper presents a new framework for layering and compositing of bump maps from different source...

    archive / summary

  • A Tip for HiZ SSR - Parametric 't' Tracing

    - the article presents how the precision HiZ tracing logic (used for screen space reflection) can be...

    archive / summary

  • The future of RLSL

    - the blog post explains the history of RLSL (Rust Like Shading Language)

    archive / summary

  • Introducing rust-gpu v0.1

    - First public release of Rust-gpu, a new SPIR-V backend for the Rust

    archive / summary

  • A Better Way to Scalarize a Shader

    - the article provides a brief overview of scalarization and suggests an alternative approach

    archive / summary

  • GPU-Motunui

    - the post explains the implementation of a path tracer that enables the rendering of the Disney Moa...

    archive / summary

  • Watercolour Shader Experiments

    - the Unity-based effect presents how to create a watercolor rendering style

    archive / summary

  • Fast Eulerian Fluid Simulation In Games Using Poisson Filters

    - the research presents a 2D fluid simulation in a 3D scene used to generate fire effects

    archive / summary

  • Geometry Shaders in URP

    - the Unity tutorial provides a brief overview of the rendering pipeline

    archive / summary

  • HSV Shader Graph – Hue Saturation Value

    - the tutorial explains HSV color space and presents how to implement conversion

    archive / summary

  • Blowing bubbles with Shader Graph

    - the article presents how to implement the rendering of a soap bubble in Unity

    archive / summary

  • [Video] Vertex animation textures, beanbags and boneless animations

    - The video tutorial explains how vertex animations can be stored and played back from textures

    archive / summary

  • Does subgroup/wave size matter?

    - the articles presents an overview of the GPU execution model, how divergent control flow is handle...

    archive / summary

  • Framebuffers, WGPU and Rust

    - the article explains the terms required to understand the initialization of a webGPU application

    archive / summary

  • Hash Functions for GPU Rendering

    - the paper presents an evaluation of deterministic hash functions

    archive / summary

  • [video] Beautiful Results From 30 Years Of Light Transport Simulation!

    - the video shows the history of light transport techniques and presents how they perform in complex...

    archive / summary

  • I3D 2020

    - links to the papers from I3D 2020 - the winners for best

    archive / summary

  • [video] Variance-Aware Path Guiding (SIGGRAPH 2020 presentation)

    - SIGGRAPH 2020 presentation that provides an overview of Variance

    archive / summary

  • Grass Shader

    - the blog post discusses the development of a GPU based grass rendering system

    archive / summary

  • [video] Marvel's Spider-Man PS5 Ray Tracing Analysis - The Challenge of RT in First-G...

    - the video shows the Ray Tracing implementation and uses it to explain the considerations when desi...

    archive / summary

  • Yet Another Stylised Water Shader

    - breakdown shows how a Stylised Water Shader was implemented in Unity

    archive / summary

  • Scaling Probe-Based Real-Time Dynamic Global Illumination for Production

    - the paper presents extensions to the [probe based irradiance

    archive / summary

  • sRGB/ACEScg Luminance Comparison

    - the blog post presents a comparison between the usage of different color spaces on the results of...

    archive / summary

  • Color Grading Playing with Colors

    - the 13ths part of the scriptable render pipeline tutorial explains how to add color grading to the...

    archive / summary

  • System Value Semantics in Compute Shaders - Cheat Sheet

    - the article presents a table of HLSL and GLSL compute shader semantics and how they the meanings m...

    archive / summary

  • New Tutorial – Unified Radeon™ GPU Profiler and Radeon™ Memory Visualizer usage with ...

    - tutorial explains the new unified AMD interface for the GPU Profiler Memory Visualizer

    archive / summary

  • Porting detroit: become human from playstation® 4 to pc – part 1

    - the post explains the experiences on porting the game from PS4 to PC using Vulkan

    archive / summary

  • Porting detroit: become human from playstation® 4 to pc – part 2

    - part two of the series provides on porting Detroit: become human offers an overview of indexing co...

    archive / summary

  • Porting detroit: become human from playstation® 4 to pc – part 3

    - the last part of the series briefly explains how they used scalarization to optimize shader, split...

    archive / summary

  • Making a Real Time Stylized Sword Aura Effect with Shaders

    - the author explains his approach for the design of an aurora shader challenge

    archive / summary

  • Borderland between Rendering and Editor — Part 3: Selection Highlighting

    - the articles explains how The Machinery implementing for rendering the outline of selected objects...

    archive / summary

  • Fighting Fragmentation: Vulkan Portability Extension Released and Implementations Shi...

    - the blog post provides an overview of the different API layering implementations (Vulkan on Metal,...

    archive / summary

  • Math in Art

    - beginner-focused tutorial explains how to store normals, noise, and positional data in textures

    archive / summary

  • Vulkan Will Soon Have A Vendor-Neutral Cross-Platform Ray-Tracing API

    - video presentation from the X.Org Developer Conference provides an overview of the Vulkan vendor

    archive / summary

  • Technically Speaking Challenge 1: Retro Shaders

    - collection all entries for a tech art challenge with the theme Retro shaders

    archive / summary

  • Five years of GPU DB

    - the author presents a look back at the last 5 years of the [GpuDB](https://db.thegpu.guru)

    archive / summary

  • Loads, Stores, Passes, and Advanced GPU Pipelines

    - the article explains the basic of the tiled GPU architectures used on mobile

    archive / summary

  • The Last of Us Part II, material blending, the SDF of a plane.

    - the video tutorial explains how to implement a rust effect on objects that intersect with a water ...

    archive / summary

  • Rules for a Future-Proof 2D Render Order

    - the article explains the sorting, rendering layer design for a 2D game

    archive / summary

  • Write-up: VHS Image Effect

    - post discusses a shader approach to implement a VHS effect using Unity

    archive / summary

  • Building WebGPU with Rust

    - the talk provides an overview of WebGPU and provides an overview of the implementation using Rust

    archive / summary

  • Toon Lighting Basics

    - the blog post explains how to implement a simple Toon Lighting shader using the Amplify Shader Edi...

    archive / summary

  • Graphics.DrawProcedural

    - the Unity tutorial shows how to generate mesh data on compute shaders and draw them from the GPU w...

    archive / summary

  • Guide to Vulkan Synchronization Validation

    - this guide explains how to use the Vulkan Synchronization Validation layer

    archive / summary

  • Capturing GPU Work

    - the blog posts explains how PIX for windows captures work

    archive / summary

  • Heat Haze Shader Graph How-To

    - the article explains how to implement a heat haze screenspace effect for a 2D game using Unity

    archive / summary

  • Radeon™ GPU Profiler 1.8 released

    - article shows the new Instruction Timing, Theoretical occupancy, and UI improvements in the latest...

    archive / summary

  • NVIDIA Announces Nsight Graphics 2020.5

    - new release adds support for NVIDIA Ampere microarchitecture

    archive / summary

  • Error Reporting Improvements for Vulkan Validation Layers

    - Vulkan validation layer has been updated to include additional and improved validation messages

    archive / summary

  • Procedural Physically based BRDF for Real-Time Rendering of Glints

    - the paper presents a physically-based model for the realtime rendering of sparkling materials

    archive / summary

  • Continuous Multiple Importance Sampling (SIGGRAPH 2020 Presentation)

    - the video provides a great explanation of Monte Carlo integration importance sampling

    archive / summary

  • I3D 2020 starts this Monday

    - summary on how to take part and find the content of I3D 2020

    archive / summary

  • Debugging D3D11 apps using D3D11On12

    - overview of debugging D3D11 applications using Pix for Windows

    archive / summary

  • Topics in Quantization for Games

    - the post discusses a variety of quantization topis to ensure conversion of precision

    archive / summary

  • Technically Art: Issue 67 (11.09.2020)

    - collection of tweets related to VFX, shaders, and game art

    archive / summary

  • VHS Video Material Tutorial

    - the Unreal tutorial explains how to apply a shader effect that converts a video into a VHS s...

    archive / summary

  • Stormscapes: Simulating Cloud Dynamics in the Now

    - the SIGGRAPH Asia 2020 paper presents a cloud simulation with high

    archive / summary

  • DOOM Eternal - Graphics Study

    - in-depth breakdown of the the frame strutcure in Doom eternal

    archive / summary

  • Variable Rate Shading: first impressions

    - the blog post provides an overview of VRS modes, presents some possible use cases and perfor...

    archive / summary

  • Compressing PBR material texture sets with sparsity and k-SVD dictionary learning

    - the article provides an introduction to sparse and dictionary learning methods and applies t...

    archive / summary

  • Compressed GPU texture formats – a review and compute shader decoders – part 2

    - this part of the series presents a discussion of how the BC6 and BC7 format is implemented

    archive / summary

  • GPU Captures: How we support placed and reserved resources

    - the blog post explains how PIX for Windows tracks placed and reserved resources

    archive / summary

  • Nsight: The Most Important Ampere Tools In Your Utility Belt

    - the article provides an overview of the Nvidia tools available and how they can be combined t...

    archive / summary

  • Porting Falcon Age to the Oculus Quest

    - the article provides a post-mortem view about the kind of changes, optimizations, and qualit...

    archive / summary

  • Shader Studies: Matrix Effect

    - the article provides a detailed breakdown of a shader that implements a matrix style effect ...

    archive / summary

  • Technically Art: Issue 66 (04.09.2020)

    - collection of tweets related to VFX, shaders, and game art

    archive / summary

  • RenderDoc for Oculus

    - the blog post describes the custom Occulus fork of RenderDoc that adds support for a profiling mod...

    archive / summary

  • SIGGRAPH 2020 Course: Physically Based Shading in Theory and Practice

    - slides and videos for all course talks are available

    archive / summary

  • Samurai Shading in Ghost of Tsushima

    - the talk discusses the anisotropic specular techniques

    archive / summary

  • Godot - OPTIMIZING A 3D SCENE

    - a guide aimed at beginners with Godot engine that presents an overview of the available counters

    archive / summary

  • New in DirectX— Feature Level 12_2

    - the post lists the minimum requirements and optional features for D3D feature level 12_2

    archive / summary

  • Real-time rendering of water caustics

    - the article presents a WebGL based technique for caustics rendering

    archive / summary

  • PIX Release 2008.26 – Our biggest update to GPU captures since 2017

    - blog post provides an overview the PIX for Windows changes

    archive / summary

  • Introducing the new Vulkan Configurator (vkconfig)

    - the blog post contains an overview of the Vulkan Configurator

    archive / summary

  • Seven Things for August 27, 2020

    - collection of resources including a link to open Access Siggraph, interactive article on photogram...

    archive / summary

  • High Quality, High Performance Graphics in Filament

    - how to take advantage of tiling GPU architecture and enable the use of fp16 math

    archive / summary

  • Quantitative Analysis of Z-Buffer Precision

    - the blog posts present an analysis of depth buffer precision

    archive / summary

  • Physics-Based Differentiable Rendering: A Comprehensive Introduction

    - SIGGRAPH 2020 course that presents an overview of inverse

    archive / summary

  • Bringing an Accurate Fresnel to Real-Time Rendering: a Preintegrable Decomposition

    - presents a new model for Fresnel reflectance that provides a unification of Schlick and Gulbrandse...

    archive / summary

  • Fresnel model #12

    - Continued discussion on fresnel shading sparked by the talks of Siggraph 2020

    archive / summary

  • How I turned my side project into a paper at a top graphics conference

    - the article presents a walkthrough and experiences of getting a paper included in Siggraph 2020

    archive / summary

  • Vulkan - Robustness

    - the guide explains how optional robustness features allow Vulkan applications to treat out

    archive / summary

  • An early release of pbrt-v4 and some notes about pbrt-gpu

    - the first release of pbrt-v4, adds new rendering techniques but also adds support for GPU renderin...

    archive / summary

  • Introduction to the Vulkan Computer Graphics API

    - Siggraph 2020 course that provides an API overview for basic drawing in Vulkan

    archive / summary

  • Single Pass Stereo: a study

    - Single Pass Stereo is a technique that can be used to simultaneously project geometry for the left...

    archive / summary

  • SIGGRAPH 2020 Links

    - growing link collection to resources from Siggraph 2020

    archive / summary

  • Advances in Monte Carlo Rendering: The Legacy of Jaroslav Křivánek

    - SIGGRAPH 2020 course that reviews and discusses insights of techniques introduced Jaroslav Křiváne...

    archive / summary

  • Zero-Variance Theory for Efficient Subsurface Scattering

    - the Siggraph 2020 course presents guided sampling techniques that reduce variance to allow faster ...

    archive / summary

  • Path Trace Visualization - Part 1

    - the article presents how to implement a path visualization system for a GPU path tracer

    archive / summary

  • HDR Scattering and Tone Mapping

    - The Unity tutorial explains how to add HDR rendering support to a custom scriptable render pipelin...

    archive / summary

  • A Primer on sokol_gfx.h

    - the article provides an overview of the scope of the sokol_gfx 3D API wrapper

    archive / summary

  • Best Practices: Using NVIDIA RTX Ray Tracing

    - the article provides an extensive list of best practices for DXR usage

    archive / summary

  • Binding Bindlessly

    - the blog post explains what the bindless model is

    archive / summary

  • Jet Set Vulkan : Reflecting on the move to Vulkan

    - the article provides a basic overview of how the OpenGL ES based engine was ported to Vulkan

    archive / summary

  • Procedural Paintings with Genetic Evolution Algorithm

    - the blog post explains how the author implemented a precural painting logic using compute shaders

    archive / summary

  • Compressed GPU texture formats – a review and compute shader decoders – part 1

    - the article presents an overview of the DXT and ETC compression formats

    archive / summary

  • Writing Shaders in VS Code: GLSL Setup

    - short post presenting how to setup VSCode to allow GLSL shader iteration

    archive / summary

  • Rendering Perfect Reflections and Refractions in Path-Traced Games

    - the article explains primary surface replacement (PSR) and checkerboarded split frame rendering (...

    archive / summary

  • [video] Torus Knots explained!

    - A video tutorial that explains how to implement a shader to render a torus knot using ShaderToy

    archive / summary

  • Render Target Abstraction

    - the article discusses the different render target requirements for D3D12 and Vulkan and presents 4...

    archive / summary

  • LunarG Releases Enhanced Vulkan Configurator in new SDKs

    - Vulkan SDK release contains a graphics vkconfig tool to allow users to configure layer settings

    archive / summary

  • Fire Shader Breakdown

    - the Unity tutorials show how to implement a fire effect using a camera facing quad with shader bas...

    archive / summary

  • Nonsingular Point Light Attenuation

    - the Siggraph 2020 talk presents the derivation of a point light attenuation that eliminates the si...

    archive / summary

  • Case Study: Vector Displacement Mapping in Real-Time

    - the article shows an overview of what vertex displacement mapping techniques are and how to genera...

    archive / summary

  • A little clarification on modern shader compile times

    - the article an overview of the complexities with Pipeline management in D3D12 and Vulkan applicati...

    archive / summary

  • Perspective! 1: theory side

    - the article shows the theory of perspective projects and discuses perspective distortion

    archive / summary

  • Full Screen Shaders in HDRP, URP, and Built In Renderer

    - the Unity tutorial shows how to write a simple fullscreen heat haze shader an apply in the differe...

    archive / summary

  • Eight years at Roblox

    - the article provides at the authors work of the last 8 years

    archive / summary

  • Technically Art: Issue 63 (07.08.2020)

    - collection of tweets related to VFX, shaders, and game art

    archive / summary

  • [UNITY VFX TUTORIAL] Creating a Stylized Magical Barrier in Unity

    - this video tutorial shows how to implement an Overwatch magical shield effect

    archive / summary

  • Reverse engineering the rendering of The Witcher 3, part 20 - light shafts

    - the in-depth article presents how the light shafts in The Witcher 3 have been implemented

    archive / summary

  • SIGGRAPH 2020 Course: Physically Based Shading in Theory and Practice

    - overview of the SIGGRAPH 2020 PBR course - contains the titles, speakers and abstracts of this yea...

    archive / summary

  • Systematic Evaluation of the Quality Benefits of Spatiotemporal Sample Reprojection i...

    - the paper presents an evaluation of what kind of gains can be achieved with temporal reprojection ...

    archive / summary

  • Technically Art: Issue 62 (31.07.2020)

    - collection of tweets related to VFX, shaders, and game art

    archive / summary

  • Efficiency Tips on Switching Spaces and Transformation Matrices in Unity

    - part 2 of an article series discussing the mathematical foundation of matrix/vector operations

    archive / summary

  • Custom SRP - Post Processing Bloom

    - next part in a Unity SRP (scriptable render pipeline) tutorial series covering the implementation ...

    archive / summary

  • Oceans with Unity Shader Graph

    - A video tutorial that shows how to implement a stylized ocean shader using Shader Graph in Unity

    archive / summary

  • Seven things for July 30, 2020

    - collection of 7 compelling links to compute graphics/programming related topics

    archive / summary

  • Retro Renderman: shading on Finding Nemo’

    - the article presents how the corals in finding Nemo have been shaded

    archive / summary

  • Engine Work: DDGI Light Probe Depth Data Compression

    - the article presents a few techniques to compress Dynamic Diffuse Global Illumination probe inform...

    archive / summary

  • Render graphs

    - brief article showing an overview of a render graph API

    archive / summary

  • Vulkan synchronisation and graphics-compute-graphics hazards: Part I

    - the article presents an overview of Vulkan barriers and shows how different barriers influence a P...

    archive / summary

  • Vulkan synchronisation and graphics-compute-graphics hazards: Part 2

    - the second part of the series presents how to overlap work from two consecutive frames by submitti...

    archive / summary

  • using embree generated BVH trees for GPU raytracing

    - the blog post presents how to use the Intel Embree library to generate a BVH tree for use with a G...

    archive / summary

  • Retro Renderman: shading food for ‘ratatouille’

    - the article present how the food in ‘Ratatouille’ was shaded based on the skin model

    archive / summary

  • Sprite Outlines

    - the Unity tutorial explains how to add an outline to a 2D sprite

    archive / summary

  • Technically Art: Issue 61 (24.07.2020)

    - collection of tweets related to VFX, shaders, and game art

    archive / summary

  • Compute Shader

    - the Unity tutorial explains how to create basic compute shaders

    archive / summary

  • Passing Particle System Data into Shadergraph (Custom Vertex Streams)

    - This Unity tutorial shows how to pass data from the Shuriken Particle System to the particle shade...

    archive / summary

  • Fundamentals of the Vulkan Graphics API: Why Rendering a Triangle is Complicated

    - the article provides a high-level explanation of the Vulkan API concepts required to render a sing...

    archive / summary

  • Unreal Engine Sky Atmosphere Rendering Technique

    - open source D3D11 implementation of the paper presented at EGSR 2020 ["A Scalable and Production R...

    archive / summary

  • Why Not Use Heterogeneous Multi-GPU?

    - the blog posts list a few possible drawbacks that need to be considered if a mix of dedicated GPU ...

    archive / summary

  • Quick Game Art Tip - Sprite/UI Color Mask

    - a small shader example that shows that texture channels can be reserved to allow objects to change...

    archive / summary

  • Optimizing Compute Shaders for L2 Locality using Thread-Group ID Swizzling

    - the article shows how to improve performance of fullscreen compute shader passes by tiling thread ...

    archive / summary

  • Art Tips from a Graphics Programmer 1, FRESNEL!

    - a twitter thread that visually explains what the Fresnel effect is and how it affects the appearan...

    archive / summary

  • Shadow Move Rendering in Killer Instinct: Season 3

    - the blog post presents how the shadow move technique was implemented in Killer Instinct: Season 3

    archive / summary

  • Three key techniques for improving mobile game graphics using PVRTexTool

    - the blog post provides an overview of mipmapping, Colour Bleeding, and pre

    archive / summary

  • Indexed Material Mapping Tecnique

    - the short blogpost shows an artists material setup that uses a small 16x16 LUT as indirection tabl...

    archive / summary

  • Technically Art: Issue 60 (17.07.2020)

    - collection of tweets related to VFX, shaders, and game art

    archive / summary

  • GPU Memory Aliasing

    - the article discusses what memory aliasing exposed from Vulkan and D3D12 is and how it can be used...

    archive / summary

  • [video] HPG 2020 - High-Performance Graphics (Day 1)

    - Towards Fully Ray-Traced Games: Addressing System

    archive / summary

  • [video] HPG 2020 - High-Performance Graphics (Day 2)

    - Neural Denoising for Path Tracing of Medical Volumetric Data

    archive / summary

  • [video] HPG 2020 - High-Performance Graphics (Day 3)

    - Porting PBRT to the GPU While Preserving its Soul

    archive / summary

  • NVIDIA Research: Warp Drive Gaming – Eliminate More than 80% of the Latency Performan...

    - the paper presents a technique that uses late input latching and wrapping wrap render results to m...

    archive / summary

  • Now You Can Choose High-Performing Unity Shaders

    - the article provides an overview of the performance that can be expected from several Unity Engine...

    archive / summary

  • An Exploration of GPU Silhouette Rendering

    - the article presents many techniques for rendering broad outlines for 3D objects

    archive / summary

  • [video] Unity: Make It Rain with Amplify Shader Editor

    - this Unity tutorial explains how to implement a rain effect on the surface of objects using a tech...

    archive / summary

  • WWDC20 - What's new in Metal and the Apple GPU

    - the article summaries the changes announced at WWDC

    archive / summary

  • Retro RenderMan: reflections in ‘ratatouille’

    - a look back at how RenderMan handled blurry glossy surface reflection in 2007 for Ratatouille

    archive / summary

  • A trip through ZOOBA’s bush rendering

    - the blog post explains a CSG algorithm implementation based on using the depth and stencil buffer

    archive / summary

  • Drinking from the Firehose: Learning Computer Graphics Techniques and Programming

    - the author provides an overview of the mindset, technique, and requirements for learning graphics ...

    archive / summary

  • Graphical glitch detection in video games using convolutional neural networks

    - the master thesis looks at Machine Learning techniques to discover visual issues, such as stretche...

    archive / summary

  • PIX 2006.26 – Fence Signal/Wait Arrows in GPU Captures

    - this PIX upgrade adds support for signal wait visualizations and improved buffer visualization

    archive / summary

  • Shader Graph : Stylized Skybox

    - the Unity tutorial explains how to implement a stylized skybox with sun, moon, and clouds using th...

    archive / summary

  • Using Radeon™ GPU Analyzer with Direct3D®12 Compute

    - the article presents how to use the AMD GPU Analyzer for compute shaders

    archive / summary

  • Using Radeon™ GPU analyzer with DirectX®12 Graphics

    - the article explains got to use the AMD GPU ANALYZER to get low

    archive / summary

  • Resolving Metal GPU timers

    - the article explains how to collect GPU timestamps and synchronize the CPU and GPU timestamps

    archive / summary

  • Barebones WebGL in 75 lines of code

    - the article explains the basics required to render a triangle with WebGL

    archive / summary

  • Deep dive into OpenGL over DirectX layering

    - explanation of the architecture of executing OpenGL on D3D12 using a Mesa

    archive / summary

  • Spectral Path Tracer

    - the article explains how spectral rendering can be implemented in a DXR based path trace

    archive / summary

  • Technically Art: Issue 59 (10.07.2020)

    - collection of tech art and VFX twitter posts, including a look at facial animation tech of the Las...

    archive / summary

  • [video] two minute papers - This is Geometry Processing Made Easy

    - a brief summary video of the "Monte Carlo Geometry Processing: A Grid

    archive / summary

  • Practical Product Sampling by Fitting and Composing Warps

    - the paper presents an importance sampling method that is based on wrap functions that approximate ...

    archive / summary

  • Warping samples paper at rendering symposium

    - an additional explanation for the previously discussed paper containing the implementation for a r...

    archive / summary

  • Graphics on the web and beyond with WebGPU

    - the article provides an overview of the WebGPU API and shows the steps necessary to render a textu...

    archive / summary

  • Lights and Shadows

    - the great in-depth article explains the concepts of light with many interactive examples

    archive / summary

  • Specular Manifold Sampling for Rendering High-Frequency Caustics and Glints

    - the paper presents a new technique that combines techniques caustics and glint into a single frame...

    archive / summary

  • Introducing neural supersampling for real-time rendering

    - the paper presents a neural network upsampling technique that is aimed at 16x upsampling for real

    archive / summary

  • Cancel your SIGGRAPH hotel; attend EGSR, HPG, and I3D 2020 virtually, free

    - list of computer graphics conferences, dates and links to the stream as they are all virtual this ...

    archive / summary

  • Point and Spot Shadows Perspective Shadows

    - Unity tutorial that shows how to implement realtime shadows for point and spotlights using a custo...

    archive / summary

  • A Taxonomy of Bidirectional Scattering Distribution Function Lobes for Rendering Engi...

    - the paper presents a taxonomy of the lobes that are composed to create a BSDF

    archive / summary

  • Fast Render Target Rendering in Unreal Engine 4

    - the article presents how to efficiently implement render

    archive / summary

  • Screen space shadows

    - the articles show what screenspace shadows can add to the scene, provide an example of implementat...

    archive / summary

  • Intersection of a ray and a plane

    - the article shows how to derive the intersection between a ray and a plane

    archive / summary

  • Get to know Metal function pointers

    - the Metal shader API now supports function pointers

    archive / summary

  • Scanline Effect

    - the Unity tutorial explains how to implement a moving scanline post

    archive / summary

  • [video] NVIDIA Nsight Feature Spotlight: GPU Trace

    - the video provides an overview of the D3D12 frame

    archive / summary

  • Constant data in Vulkan

    - the article explains several different methods that can be used to manage shader constant data

    archive / summary

  • SHAD2: shaders, but more difficult

    - the article explains a method that stores shader instructions encoded into a texture and uses a ru...

    archive / summary

  • The 31st Eurographics Symposium on Rendering

    - the program for the online conference taking place this week

    archive / summary

  • Features that are coming to iOS and MacOS

    - a twitter thread that lists new features Metal API features and provides links to documentation fo...

    archive / summary

  • [video] Rendering Roblox: Vulkan Optimisations on Imagination PowerVR GPUs (Presented...

    - the GDC talk discusses the voxel-based lighting and shadow system

    archive / summary

  • Graphics Study: Red Dead Redemption 2

    - the article presents a frame breakdown of the PC version of Red Dead Redemption 2

    archive / summary

  • NVIDIA Posts First DirectX 12 Ultimate Driver Set, Enables GPU Hardware Scheduling

    - NVidia driver update adds support for DXR 1.1, VRS Tier 2, mesh shaders and sampler feedback

    archive / summary

  • Optimize Metal apps and games with GPU counters

    - a video from WWDC 20 provides an overview of the GPU pipeline, what hardware counters are availabl...

    archive / summary

  • Discover ray tracing with Metal

    - video from WWDC explains the basic building blocks of the Metal ray tracing API and how to support...

    archive / summary

  • Creating Optimal Meshes for Ray Tracing

    - the article provides an overview of several problematic mesh characteristics that cause an issue f...

    archive / summary

  • Rendering Layered Materials with Anisotropic Interfaces

    - a lightweight and efficient method to render layered materials with anisotropic interfaces

    archive / summary

  • Technically Art: Issue 57 (19.06.2020)

    - collection of tweets related to VFX, shaders, and game art

    archive / summary

  • Improving GPU Profiling on Oculus Quest

    - overview of two new libraries developed by Oculus and Qualcomm to expose low

    archive / summary

  • Implementing Stochastic Levels of Detail with Microsoft DirectX Raytracing

    - the article presents how to use stochastic LOD selection for a DXR based ray

    archive / summary

  • Oodle Texture slashes game sizes

    - the article explains how Oodle Texture can prepare BC textures in such a way that secondary ...

    archive / summary

  • Announcing CUDA on Windows Subsystem for Linux 2

    - the article presents CUDA for WSL 2, how to use it and additionally shows how it cooperates ...

    archive / summary

  • Detecting Bias in Monte Carlo Renderers using Welch’s t-test

    - the paper presents to Welch’s statistical t-test can be used to detect bias even with low sample c...

    archive / summary

  • Top Nine Questions About the ‘Ray Tracing Essentials’ series from Developers

    - the article contains the answers to some common question viewers of the Ray Tracing Essentia...

    archive / summary

  • GPU Optimization for GameDev

    - an extensive collection resource covering various aspects of GPU optimizations

    archive / summary

  • Creating shader animation in Unity

    - the article presents how to create a running rat animation using a vertex shader

    archive / summary

  • From 0 to glTF with WebGPU: The First Triangle

    - the first part of a WebGPU series shows the necessary steps required to render the first tri...

    archive / summary

  • From 0 to glTF with WebGPU: Bind Groups

    - this tutorial explains how to bind resources and uses this to add basic camera movement support

    archive / summary

  • Can’t Invert the CDF? The Triangle-Cut Parameterization of the Region under the Curve

    - the paper presents a technique that allows Cumulative Distribution Functions that cannot be ...

    archive / summary

  • The Forge - Raytracing Benchmarks

    - overview of cross-platform raytracing abstraction in "The Forge" and a summary of performanc...

    archive / summary

  • A Scalable and Production Ready Sky and Atmosphere Rendering Technique

    - the paper presents the sky and atmosphere model developed by Epic Games that support dynamic...

    archive / summary

  • [video] Flowmaps, gradient maps, gas giants

    - the video tutorial explains UV animation, extending this to support varying animations betwe...

    archive / summary

  • Followup tidbits on RGBE

    - the author presents considerations for designing conversations explained with the example of RGBE ...

    archive / summary

  • The Center of the Pixel is (0.5,0.5)

    - the article explains how to deal with pixel coordinates correctly

    archive / summary

  • Real-Time Ray Tracing Summit

    - an online summit with talks about ray tracing topics

    archive / summary

  • Preliminary HPG 2020 Program

    - program for talks that will be presented as part of high

    archive / summary

  • Fast 2D rendering on GPU

    - the article provides an overview of an algorithm for GPU based rendering of 2D vector graphics

    archive / summary

  • High Fidelity Graphics for games with HDRP

    - the talk from Unit presents techniques required for best results with Unity High definition render...

    archive / summary

  • Parallel CSG Operations on GPU

    - the article presents how a CSG Operation implementation based around point clouds has been designe...

    archive / summary

  • Animated Light Cookie Shader (Cloud & Tree Shadows)

    - the Unity tutorial shows how to dynamically generate light blocker textures to simulate clouds and...

    archive / summary

  • [Video] EG / STARs 5 / Neural Rendering / Wednesday

    - the collection of talks for the field of neural rendering methods

    archive / summary

  • Fake vs True Displacement - Part 1/2

    - the two-part article series shows the difference between Bump

    archive / summary

  • Perceptually Smooth Multi-Color Linear Gradients

    - the notebook shows how to interpolate gradients in a perceptually smooth way using Catmull Rom spl...

    archive / summary

  • [Video] Optimizing Roblox: Vulkan Best Practices for Mobile Developers

    - Vulkan talks that cover the Vulkan sample framework, load/store operations, sub

    archive / summary

  • Quadrant-Sizing for Efficient UI Rendering

    - the author presents his implementation of a UI element system that allows arbitrary object scaling...

    archive / summary

  • Distance Field Ray Tracing Part 1: Volume Textures and Ray Marching Primer

    - the UE4 tutorial is a primer on how to build distance field shapes and use raymarching from volume...

    archive / summary

  • Casual Shadertoy Path Tracing 3: Fresnel, Rough Refraction & Absorption, Orbit Camera

    - path 3 of path tracing shows how to extend the materials to support fresnel as well as reflection ...

    archive / summary

  • Work-Efficiency vs. Step-Efficiency

    - the article discusses how to classify GPGPU work into the critical sequential work and the total a...

    archive / summary

  • Widespread error in Radiance HDR RGBE conversions

    - the article presents how RGBE 8888 should be encoded and decoded correctly

    archive / summary

  • Casual Shadertoy Path Tracing 2: Image Improvement and Glossy Reflections

    - part 2 of path tracing implementation series, adding Glossy reflection Anti

    archive / summary

  • SIGGRAPH Spotlight: Episode 35 – Real-Time, Ray Tracing, and Realism

    - Podcast episode with Arisa Scott (Unity), Eric Haines (NVIDIA), Mike Hardison (Blizzard Entertainm...

    archive / summary

  • How to evenly distribute points on a sphere more effectively than the canonical Fibon...

    - the article explains how to use to distribute points onto the surface of a sphere

    archive / summary

  • LunarG releases GFXReconstruct, a new Vulkan Capture/Replay Tool, with SDK 1.2.141

    - new Vulkan SDK now contains the Microsoft Shader Compiler

    archive / summary

  • SPIR-V Guide

    - this guide is designed to explain SPIR-V, what to use it for and present an overview of the intern...

    archive / summary

  • Writing Shader Code for the Universal RP

    - Shader guide that explains how to write Unity shaders that are compatible with the Universal Rend...

    archive / summary

  • Messed up 3D Meshes: A case study in the limits of integer floating point

    - the article shows problems of floating-point precision in the model export pipeline

    archive / summary

  • Ambient Occlusion

    - the presentation explains what Ambient Occlusion is, and provides an overview of different algorit...

    archive / summary

  • Real-time Cubism Shader

    - presents a method to implement a Cubism effect, similar to what can be seen in "Spider

    archive / summary

  • Sharpening the renderer

    - the article presents Contrast Adaptive Sharpening and how it's used in EVE to make details on ship...

    archive / summary

  • Texture Generation Part 2: Normal Swizzling

    - Unity tutorial that shows to mix Normal map correctly

    archive / summary

  • Casual Shadertoy Path Tracing 1: Basic Camera, Diffuse, Emissive

    - A tutorial that shows a practical walkthrough on how to implement a path tracer in shadertoy

    archive / summary

  • Curving Corner Texture UVs

    - the article shows how to generate UVs for curved corners using Unity

    archive / summary

  • Iterating on Variable Rate Shading in Gears Tactics

    - the articles present how the VRS (Variable Rate Shading) implementation was approached

    archive / summary

  • Civilization VI Fog of War

    - This Unity tutorial explains how to implement a Civilization VI style fog of war system

    archive / summary

  • New geometry pipeline in Magnum

    - the articles describe the design of the new geometry (import) pipeline of the Magnum engine

    archive / summary

  • The design and evolution of the UberBake light baking system

    - A global illumination system developed by Activision

    archive / summary

  • Progressing in Circles

    - the articles presents different approaches on how to implement a ring progression effect

    archive / summary

  • Technically Art: Issue 56 (29.05.2020)

    - collection of tweets related to VFX, shaders, and game art

    archive / summary

  • A survey of temporal antialiasing techniques: presentation notes

    - authors notes on the Survey of Temporal Antialiasing Techniques talk from the Eurographics 2020 vi...

    archive / summary

  • Point and Spot Lights Lights with Limited Influence

    - the next part in a Unity tutorial series on the scriptable render pipeline

    archive / summary

  • Borderland between Rendering and Editor — Part 2: Picking

    - the article explains how the GPU based picking system in "Our Machinery" has been implemented

    archive / summary

  • Reverse engineering the rendering of The Witcher 3, part 19 - portals

    - the article shows how the portal rendering effect in The Witcher 3 has been implemented

    archive / summary

  • Stochastic Substitute Trees for Real-Time Global Illumination

    - a GI algorithm based around tracing Virtual point lights (VPLs), converting clusters of VPLs into ...

    archive / summary

  • Dimensionality reduction for image and texture set compression

    - detailed post presents the idea of “decorrelating” color channels to maximize information in textu...

    archive / summary

  • DirectX is coming to the Windows Subsystem for Linux

    - Version 2 of Windows Subsystem for Linux adds full support for D3D12 (not allows rendering to the...

    archive / summary

  • Video: Gears 5 – High-Gear Visuals On Multiple Platforms

    - relaxed cone step mapping for relief mapping to add more details

    archive / summary

  • From Built-in to URP

    - collection of concepts, macros, shader logics, that exists in unity build

    archive / summary

  • Vulkan Helper Libraries Survey

    - Khronos questionary that presents a list of suggestion for possible vulkan helper libraries

    archive / summary

  • Making a clean (mini)map using Navmesh and a Shader

    - Unity tutorial that shows how to use a navmesh as a base for minimap rendering

    archive / summary

  • Accelerating Ray Tracing with Origin Offsets

    - the paper proposed a new method that aims to improve ray tracing by offsetting ray starting point ...

    archive / summary

  • Texture Generation

    - A unity tutorial that shows how to blend multiple textures together and save them to disk using Un...

    archive / summary

  • Technically Art: Issue 55 (22.05.2020)

    - collection of tweets related to VFX, shaders, and game art

    archive / summary

  • Welcome to the joint conferences, Eurographics & Eurovis 2020

    - Eurographics & Eurovis 2020 conference will be virtual and streamed starting May 25

    archive / summary

  • Quick Introduction to Mesh Shaders (OpenGL and Vulkan)

    - brief overview and introduction into Mesh Shaders using OpenGL and Vulkan

    archive / summary

  • Optimizing for the RDNA architecture: presentation notes

    - collection of notes about the content of the AMD talk presenting the AMD RDNA architecture and GPU...

    archive / summary

  • Rendered #1

    - A new newsletter with news and insight on volumetric filmmaking, virtual production, 3D rendering,...

    archive / summary

  • Spatiotemporal reservoir resampling for real-time ray tracing with dynamic direct lig...

    - the paper presents a new technique that allows a massive number of dynamic lights to be rendered i...

    archive / summary

  • Let's build ... 2020

    - AMD virtual event that contains talks about - Ryzen™ Processor Software Optimization

    archive / summary

  • Technically Art: Issue 54 (15.05.2020)

    - collection of tweets related to VFX, shaders, and game art

    archive / summary

  • I haz a GDC talk - Real-Time CSG

    - overview of what Constructive Solid Geometry (CSG) is and workflows

    archive / summary

  • Getting started with Radeon Memory Visualizer (RMV)

    - the post provides an overview of the new AMD memory profiler for Vulkan and D3D12

    archive / summary

  • Using Blue Noise For Raytraced Soft Shadows

    - the article shows how to calculate the shadows from the sun

    archive / summary

  • Ray Marching Fog With Blue Noise

    - the article presents how using blue noise can improve ray marching results

    archive / summary

  • Frame Analysis - Minecraft RTX Beta

    - presents a breakdown of the RTX implementation for Minecraft

    archive / summary

  • Some brief thoughts on how Nanite in UE5 possibly works....

    - the author presents his ideas about how the Nanite technology in the UE5 tech demo might be implem...

    archive / summary

  • Some thoughts on Unreal 5's Nanite - in way too many words

    - the article that discusses possible ideas on how the UE5 nanite technology might be implemented

    archive / summary

  • NVIDIA Ampere Architecture In-Depth

    - an overview of the new Nvidia Ampere Architecture aimed at compute workloads

    archive / summary

  • CUDA 11 Features Revealed

    - overview of new features in CUDA 11 and how the NVIDIA Ampere GPU hardware features are exposed

    archive / summary

  • Ray Tracing Essentials Part 7: Denoising for Ray Tracing

    - the final part of raytracing series - presents what denoising techniques are and why they are requ...

    archive / summary

  • a history of nvidia stream multiprocessor

    - the article presents an overview of the Nvidia GPU architecture and how they developed over time

    archive / summary

  • Rendering volumetric clouds using signed distance fields

    - presents a technique that combines singed distance fields and ray marching to render static volume...

    archive / summary

  • Monte Carlo Geometry Processing: A Grid-Free Approach to PDE-Based Methods on Volumet...

    - the paper presents how to apply the monte-carle methods to geometry processing

    archive / summary

  • On Ray Reordering Techniques for Faster GPU Ray Tracing

    - the paper presents an overview of ray sorting techniques and introduces a new method for ray sorti...

    archive / summary

  • A perceptual model of motion quality for rendering with adaptive refresh-rate and res...

    - this paper presents the results of testing done into human perception, comparing test

    archive / summary

  • [video] Animal Crossing, wobbly leaves, pivot caching.

    - the Video presents an overview of a shader technique implementing the behavior of leaves in Animal...

    archive / summary

  • Point of WebGPU on native

    - the author presents his view on WebGPU for use in native applications

    archive / summary

  • GPU architecture resources

    - collection of resource links to presentations, papers and articles focusing on the details of GPU ...

    archive / summary

  • CUDA Refresher: Getting started with CUDA

    - a brief overview on how to get started with CUDA

    archive / summary

  • Meshlete - Chop 3D objects to meshlets

    - a tool to generate meshlets for use with compute based culling algorithms or mesh shaders

    archive / summary

  • Real-time Shadows

    - the presentation provides an in-depth overview of shadow techniques for real

    archive / summary

  • Physically-Based Materials – Energy Conservation and Reciprocity

    - the article presents the definition of a physically

    archive / summary

  • Prefix sum on Vulkan

    - the article presents how to implement a prefix sum using Vulkan compute shaders

    archive / summary

  • Depth-Based Post Effects

    - the Unity tutorial explains how to use the depth texture to apply a localized toon shading effect

    archive / summary

  • Profiling DXR Shaders with Timer Instrumentation

    - new Nvidia extension for D3D12 that provides shaders the possibility to query timestamps from with...

    archive / summary

  • Complex Maps Masks, Details, and Normals

    - next part in the Unity Tutorial series about implementing a custom scriptable rendering pipeline

    archive / summary

  • [video] Tech Focus: What Is VRS And Is It A Next-Gen Game-Changer? Variable Rate Shad...

    - the video provides an overview of Variable Rate Shading (VRS)

    archive / summary

  • Frame Analysis - Mortal Kombat 11

    - breakdown of the rendering techniques used in Mortal Kombat 11

    archive / summary

  • It’s time we talk about TDR

    - the article presents an alternative execution model that would be able to improve upon Timeout Det...

    archive / summary

  • A Taste of WebGPU in Firefox

    - the article provides an overview of the WebGPU API

    archive / summary

  • Fast Subsurface Scattering for the Unity URP

    - the article presents the Wrapped lighting technique to emulate subsurface scattering

    archive / summary

  • Volumetric Rendering Part 1

    - this part of the article on volumetric rendering shows how to model a volume using an SDF inside o...

    archive / summary

  • Volumetric Rendering Part 2

    - the second part of the article presents how to render the volumetrics

    archive / summary

  • UE4 - Physical light unit - Twitter Thread

    - Twitter thread about the complexities of different light measuring units

    archive / summary

  • flowchart for descriptor set setup in Vulkan

    - a flowchart that provides an overview of the descriptor set binding logic of the Vulkan API

    archive / summary

  • CUSTOM GAME ENGINES: A Small Study

    - list of games studios and which custom engines they are using

    archive / summary

  • Twitter thread - using quaternions

    - the thread provides an overview of what are use cases for quaternions

    archive / summary

  • Improving the quality of the alpha test (cutout) materials

    - the article explains problems with alpha testing materials and why they tend to shrink in the dist...

    archive / summary

  • Debugging refraction in a sphere

    - presents a test setup that explains how to validate ray refraction within a sphere

    archive / summary

  • From WebGL to WebGPU in Construct

    - the article presents how WebGPU compares with WebGL

    archive / summary

  • Ray Tracing Essentials Part 6: The Rendering Equation

    - part of the ray tracing series covering the rendering equation

    archive / summary

  • Vulkan - Debug Printf

    - the Vulkan validation layer now can send printf style information from a shader to the debug callb...

    archive / summary

  • [video] Ratchet & Clank Pixelizer FX in Unity

    - the Unity video tutorial explains how to implement an effect that converts a 3D mesh into a voxeli...

    archive / summary

  • Blurred rounded rectangles

    - the article presents how to calculate a blurred version of a rounded rectangle using a distance fi...

    archive / summary

  • UE4 Texture/Material/Cascade optimization tips

    - a long document containing many tips and tricks to optimize UE4 performance

    archive / summary

  • Floating World Shader Part 5 – Ocean Material

    - the last part of a series of UE4 based posts that recreate an environment artists scene

    archive / summary

  • The Technical Interview [LEAKED]

    - the guide presents an overview of the structure and content of technical interviews

    archive / summary

  • Bilinear texture filtering – artifacts, alternatives, and frequency domain analysis

    - provides an introducing into linear blending - explaining that pixels are no signal but rather sam...

    archive / summary

  • validating physical light units

    - the article presents how to use the Mitsuba renderer to validate the results from a PBR renderer

    archive / summary

  • godot 4.0 gets global and per-instance shader uniforms

    - the article presents that Godot has now 3 update frequencies for shader parameters global, per

    archive / summary

  • Symposium on Interactive 3D Graphics and Games 2020 papers on the web

    - collection of papers from the I3D 2020 conference

    archive / summary

  • Ray Tracing Essentials Part 5: Ray Tracing Effects

    - part 5 of Nvidia ray tracing series - focuses on the presentation of different visual effects that...

    archive / summary

  • nvidia webinar - ray tracing essentials

    - Eric Haines will be giving a webinar on May 12 - explains concepts related to ray tracing, compari...

    archive / summary

  • Intro to gfx-hal • Part 3: Vertex buffers

    - part 3 of Rust gfx-hal intro series - shows all the steps required including binary serialization ...

    archive / summary

  • Implementing a Physically Based Shading without locking yourself in

    - presentation from revision - focuses on the physics of light interaction with matters

    archive / summary

  • Introducing Low-Level GPU Virtual Memory Management

    - Cuda introduces new memory management functionality

    archive / summary

  • Secrets of Direct3D 12: Resource Alignment

    - the article shows that the D3D12 alignment requirement rules have an exception for small textures ...

    archive / summary

  • 3 Techniques for Dynamically Colored UI Graphics

    - the article presents 3 different techniques for Unity that allow the color of UI elements to be dy...

    archive / summary

  • [video] A Taste of GPU Compute

    - talks aimed at computer science students starting to get started with GPU technology

    archive / summary

  • Frame Analysis - Overwatch

    - the article and video and present a high-level overview of the rendering passes of Overwatch

    archive / summary

  • Life stories: the Glimpse Renderer – part 1

    - Part 1, [2](https://maxliani.wordpress.com/2020/04/16/life

    archive / summary

  • Evolving Path of Exile's Renderer

    - the talk presents an overview of rendering features developed for Path of Exile

    archive / summary

  • Virtual machine for executing SPIR-V

    - A virtual machine that is written in C enables executing of a subset of SPIR

    archive / summary

  • Speeding Up Lighthouse 2

    - presents operations that reduced the shading time required from 21.58ms to 13.52ms

    archive / summary

  • Artists’ best practices for mobile game development

    - A guide aimed at technical artists to preset best practices for geometry, texture, material and sh...

    archive / summary

  • Optimizing Trilinear Interpolation

    - the article presents implementations optimizations to speedup trilinear filtering

    archive / summary

  • Updated Article Database Design

    - The database of articles included in this series has been updated with a new look

    archive / summary

  • NVIDIA Vulkan Ray Tracing Tutorials

    - collection of Vulkan tutorials for the VK_KHR_ray_tracing extension

    archive / summary

  • Using Nsight Systems for Fixing Stutters in Games

    - the article shows how Nsight was used for debugging a frame stutter bug in the Vulkan raytracing i...

    archive / summary

  • Optimizing VK/VKR and DX12/DXR Applications Using Nsight Graphics: GPU Trace Advanced...

    - the post presents how to use Nsight to apply the Peak

    archive / summary

  • Paper Burn Shader in Unity

    - this Unity tutorial explains how to implement a burning effect for paper

    archive / summary

  • Intro to gfx-hal • Part 1: Drawing a triangle

    - part 1 of rust graphics programming series using the rust gfx hal

    archive / summary

  • Intro to gfx-hal • Part 2: Push constants

    - the second part of the tutorial series extends the example so that Vulkan push constants can be us...

    archive / summary

  • physical lighting quantities: tying both ends

    - the article presents a method that allows validation of a physical camera model against ground tru...

    archive / summary

  • Seven Things for March 31, 2020

    - collection of links and graphics community news such as ACM Digitial library being free, I3D pospo...

    archive / summary

  • Biquadratic interpolation with independent sample weights

    - the article shows how to use quadratic interpolation for depth aware upsampling

    archive / summary

  • GTC 2020: DLSS - Image Reconstruction for Real-time Rendering with Deep Learning

    - the GTC talks provide an overview of Deep Learning Super Sampling

    archive / summary

  • Terrain and Mesh Blending in Unity

    - his Unity tutorial shows one way of blending meshes that are close to the terrain with the terrain...

    archive / summary

  • Unmasking the Arkham Knight

    - the article presents a breakdown of the rendering stages found in the PC version of Batman: Arkham...

    archive / summary

  • GTC 2020: RTXGI: Scalable Ray Traced Global Illumination in Real Time

    - the GTC presentation explains how the technique aims to replace existing indirect lighting techniq...

    archive / summary

  • ACM TechTalk - Ed Catmull & Richard Chuang

    - ACM tech talk with Ed Catmull & Richard Chuang happening on Tuesday, April 14

    archive / summary

  • An Efficient Transport Estimator for Complex Layered Materials

    - the paper presents a new technique to speed up the rendering of complex, layered materials

    archive / summary

  • A new method to construct isotropic blue-noise point sets with uniform projections

    - the article presents a method for direct construction of tileable isotropic blue noise

    archive / summary

  • a little thread on a neat way to interpolate across a triangle!

    - A twitter thread that explains what barycentric coordinates are and how they are commonly used in ...

    archive / summary

  • Hierarchical Depth Buffers

    - the article presents what Hierarchical depth buffers are, what they are used for and how to genera...

    archive / summary

  • [Video] Commandos Cone of Sight FX in Unity | GPUMAN

    - the Unity tutorial explains how to implement a cone of sight that is occluded by objects

    archive / summary

  • Links to GDC 2020 Talks and More

    - collection of link resources from GDC, GTC - additional resources from Google, Intel, Ubisoft and ...

    archive / summary

  • PIX 2003.26 – DirectX 12 Ultimate and DXIL debugging

    - new Pix for Windows release with support for DXR 1.1, Mesh shaders and sampler feedback

    archive / summary

  • NVIDIA Announces Nsight Graphics 2020.2

    - GPU Trace and Nsight Aftermath now supports Vulkan

    archive / summary

  • Augmenting shader languages for modern rendering APIs

    - the author presents his domain-specific language and how it's used to extend shaders

    archive / summary

  • Vulkan Mobile Best Practices - Management of Command Buffers and Multi-Threaded Recor...

    - the article presents best practices for multithreaded command recording with Vulkan

    archive / summary

  • WebGL best practices

    - the article contains many best practices for WebGL applications

    archive / summary

  • Introducing OpenCL™ and OpenGL® on DirectX

    - Microsoft and Collabora are working together to implement an OpenCL and OpenGL layer for Mesa that...

    archive / summary

  • Multi-Adapter with Integrated and Discrete GPUs

    - presentation from Intel that presents how to use multiple adapters with D3D12

    archive / summary

  • Variable Rate Shading Tier 1 with Microsoft DirectX* 12 from Theory to Practice

    - the presentation provides an overview of Variable Rate Shading (VRS), explaining what shading and ...

    archive / summary

  • RTX Global Illumination SDK Now Available

    - Nvidia released the RTX Global Illumination (RTXGI) SDK v1.0

    archive / summary

  • Announcing the NVIDIA Texture Tools Exporter 2020.1

    - Nvidia released a new version of the DDS exporter

    archive / summary

  • Announcing DirectX 12 Ultimate

    - post containing an overview of the new D3D12 Feature level 12_2 now called DirectX 12 Ultimate

    archive / summary

  • Shaders For People Who Don't Know How To Shader: Smooth blending with Sine

    - the Unity tutorial shows how to use color masks to apply runtime coloring with smooth blending to ...

    archive / summary

  • Ray Tracing In Vulkan

    - the post provides an overview of the new Vulkan raytracing extensions

    archive / summary

  • [video] Reinventing the Geometry Pipeline: Mesh Shaders in DirectX 12 | Shawn Hargrea...

    - the presentation provides an overview of mesh shaders

    archive / summary

  • [video] Advanced Mesh Shaders | Martin Fuller

    - build upon the @Reinventing the Geometry Pipeline: Mesh Shaders in DirectX 12" talks summarized ab...

    archive / summary

  • DirectX 12 Sampler Feedback | Claire Andrews

    - the video provides an overview of the new Sampler Feedback feature added to D3D12

    archive / summary

  • Nvidia - DirectX

    - overview articles by Nvidia for D3D12 Ray Tracing, Mesh shading, Variable Rate Shading, and Sample...

    archive / summary

  • New: Vulkan Device Generated Commands

    - the article describes the VK_NV_device_generated_commands extension for Vulkan

    archive / summary

  • Enable Ray Tracing: Two-Level Acceleration Structure

    - the article presents an overview of a BVH structure for GPU raytracing

    archive / summary

  • Fresnel Equations, Schlick Approximation, Metals, and Dielectrics

    - the post presents the fresnel equations that are used for smooth metals and surfaces such as water...

    archive / summary

  • Reverse engineering the rendering of The Witcher 3, part 18 - color grading

    - Reverse engineering the color grading solution used in "The Witcher 3"

    archive / summary

  • Getting started with shaders: signed distance functions!

    - the article aimed at beginners presents how to use ShaderToy to get started with shader developmen...

    archive / summary

  • Aliasing in computer graphics

    - the article presents an overview of aliasing in digital signal processing

    archive / summary

  • Sprite Glow/Outline Shader Breakdown

    - the Unity tutorial shows how to create an outline effect for 2D sprites

    archive / summary

  • Vulkan Best Practices: Frequently Asked Questions - Part 2

    - discusses buffer allocation, update and mapping strategies

    archive / summary

  • A Simple GPU Hash Table

    - the post discusses how to write a simple GPU Hash table implementation using CUDA

    archive / summary

  • Interior SDFs

    - the article presents that combining signed distance fields of primitives using min and max operati...

    archive / summary

  • Ray Tracing Essentials Part 4: The Ray Tracing Pipeline

    - part 4 of ray tracing series by Nvidia - this episode focuses on the RayTracing APIs in D3D and Vu...

    archive / summary

  • The Division ECHO Fx In Unity | GPUMAN

    - Video tutorial for Unity that shows how to present the Echo effect (a point

    archive / summary

  • Why DXR 1.1 vs 1.0?

    - overview of what is new with DXR 1.1 - presents how to extend a depth pre

    archive / summary

  • ASTC Format Overview

    - the document provides an overview of the ASTC texture compression format

    archive / summary

  • Automated Performance Advice for Android Games

    - the article presents how to use new ARM tools to gather performance information (later versions wi...

    archive / summary

  • How Epic Games is handling auto exposure in 4.25

    - the article explains how exposure used to work in Unreal Engine 4.24

    archive / summary

  • Reverse engineering the rendering of The Witcher 3, part 17 - the Milky Way

    - the article shows how the milky way rendering from the Witcher 3

    archive / summary

  • Paper Shader in Unity

    - A Unity tutorial that focuses on the deformation of a plane to create a crumbled paper look

    archive / summary

  • How to do boolean operations on meshes for procedural cutting of geometry!

    - the post provides an overview of an algorithm for boolean operations on geometry

    archive / summary

  • Ray Tracing Essentials Part 3: Ray Tracing Hardware

    - part 3 of Nvidia ray tracing series - this part focuses on the history of ray tracing hardware and...

    archive / summary

  • An idiot's guide to animation compression

    - the article discusses techniques to compress data for skeletal animation data used for game runtim...

    archive / summary

  • GL_NV_mesh_shader Simple Mesh Shader Example

    - a very brief high-level overview of mesh shaders and necessary OpenGL extension

    archive / summary

  • Secrets of Direct3D 12: Copies to the Same Buffer

    - the article presents multiple scenarios in D3D12 where manual barrier synchronization is required

    archive / summary

  • Borderland between Rendering and Editor - Part 1

    - the post focuses on efficient and high-quality grid rendering for "The Machinery" editor

    archive / summary

  • Writing an efficient Vulkan renderer

    - copy of an article that was published in GPU Zen 2, updated for changes introduced with Vulkan 1.1...

    archive / summary

  • Ray Tracing Essentials Part 2: Rasterization versus Ray Tracing

    - video comparing rasterization and ray-tracing algorithm

    archive / summary

  • A Survey of Temporal Antialiasing Techniques

    - the paper presents an overview of Temporal Antialiasing (TAA) techniques, the history, different i...

    archive / summary

  • Compact PBR texture packing and blending experiment with Shader Graph

    - presents findings from compressing PBR material information into a single texture

    archive / summary

  • Vulkan Mobile Best Practices: Frequently Asked Questions - Part 1

    - A FAQ for Vulkan best practices guide by ARM - swap chain acquisition, image transitions, device l...

    archive / summary

  • [video] Two Minute Papers - The Story of Light

    - the 7-min video provides a walk through the history of light transport research

    archive / summary

  • fast trisect in GLSL

    - the article presents an approximation to the GLSL trisect function

    archive / summary

  • Basic Skeletal Animation with Geometric Algebra

    - the tutorial shows how to implement a skeletal animation system using Geometric Algebra (GA)

    archive / summary

  • Packing UVs for deferred materials

    - the article presents how to pack UV and gradients (ddx, ddy) into 32

    archive / summary

  • Sprite Stencil Overlay Breakdown (Forward Renderer)

    - the Unity tutorial shows how to implement a checkerboard pattern if a 2D player is behind another ...

    archive / summary

  • sokol_gfx.h Backend Tour

    - a 3 part series that provides an overview of the backend implementations of sokol_gfx for the Open...

    archive / summary

  • Bringing HLSL Ray Tracing to Vulkan

    - Nvidia added support to the DirectX Shader Compiler (DXR) to generate SPIR

    archive / summary

  • Ways to speedup pixel shader execution

    - the article presents an overview of techniques to optimize pixel shaders

    archive / summary

  • Reverse engineering the rendering of The Witcher 3, part 16 - shooting stars

    - the author presents how shooting stars in the Witcher 3 are implemented

    archive / summary

  • Sampling Analytic Participating Media

    - the in-depth article presents the physical models and approximations of participating media (such ...

    archive / summary

  • Data Driven Rendering: Pipelines

    - the newest part in article series about defining a data

    archive / summary

  • Shader Graph Conversion : Eyeball Shader

    - the Unity tutorial explains how to implement a stylized Eyeball Shader using Unity Shader Graph

    archive / summary

  • Rendering Particles with Compute Shaders

    - presents an approach to render particle effects using compute shaders

    archive / summary

  • LunarG Vulkan Ecosystem & SDK Survey Results

    - the results from the Vulkan survey have been released

    archive / summary

  • Unity Toy Path Tracer

    - the article presents how to implement a Path Tracer using the Unity Data

    archive / summary

  • Handling Device Orientation Efficiently in Vulkan With Pre-Rotation

    - the article describes how to deal with device orientation changes in a Vulkan application efficien...

    archive / summary

  • Coherency gathering in ray tracing: the benefits of hardware ray tracking

    - the article presents the problems with ray tracing in terms of divergence workflows

    archive / summary

  • Create nice and feasible volumetric cloud in Unreal Engine 4

    - the blog posts presents how to use high quality volumetric fog in UE4 to simulate ground level rol...

    archive / summary

  • Minions Art Tutorials

    - collections of art, unity tutorials and shader introduction articles

    archive / summary

  • Klein

    - new Geometric Algebra designed for realtime graphics and animation applications

    archive / summary

  • How to Correctly Interpolate Vertex Attributes on a Parallelogram Using Modern GPUs?

    - article presents how to use barycentric coordinates in a pixel shader to manually interpoliate val...

    archive / summary

  • Shaders For People Who Don't Know How To Shader: Deferred

    - the article presents a brief overview of what deferred shading is

    archive / summary

  • GPU resources

    - collection of gpu resources - links to details about hardware, shader languages, and WebGPU

    archive / summary

  • Reaching for the stars

    - the Unity article describes how to generate a stylized procedualr skybox

    archive / summary

  • Instancing and Material Property Blocks

    - the Unity tutorials shows how to use Material Property Blocks

    archive / summary

  • Four Color Gradient

    - beginner Unity shader tutorial that shows how to implement a gradient made from 4 colors forming a...

    archive / summary

  • Journey Sand Shader: Ripples

    - last part of Unity shader torial that shows how to add ripples into the sand dunes

    archive / summary

  • How to Calculate Shader Graph Normals

    - Unity tutorial that shows how to calculate new normals from a vertex shader

    archive / summary

  • Generating Perfect Normal Maps for Unity (and Other Programs)

    - the article shows what needs to be considered when baking normal maps for use with separate applic...

    archive / summary

  • A Fun 2d Rotation Matrix Derivation

    - the article shows a connection between "2D cross product", Complex Numbers and 2D rotation matrice...

    archive / summary

  • Normal matrices are overrated

    - the tweet shows an alternative formulation for a normal transformation matrix (required when non

    archive / summary

  • Dissolve Shader Breakdown

    - the Unity shader breakdown explains how to dissolve a mesh using a combination of noise and height...

    archive / summary

  • A Scalable Real-Time Many-Shadowed-Light Rendering System

    - Siggraph presentation showcasing a shadow system that enables thousands of shadowed

    archive / summary

  • Wave Function Collapse tips and trick

    - the article presents an overview of the Wave Function Collapse algorithm

    archive / summary

  • Shadow Terminator in Takua

    - the article presents a comparison between techniques to solve the harsh shadow terminator problem

    archive / summary

  • Approximating Subsurface Scattering With Spherical Gaussians

    - the article shows a breakdown on how to approximate subsurface scattering from a point light using...

    archive / summary

  • Separate your filters! Separability, SVD and low-rank approximation of 2D image proce...

    - the article presents the basics of Singular Value Decomposition

    archive / summary

  • Volumetric Clouds Resources List

    - a collection of articles, presentations and other resources covering volumetric cloud render...

    archive / summary

  • Building WebGPU with Rust

    - the presentation provides an overview of the development of WebGPU

    archive / summary

  • 2D Sprite Overlay Effects

    - short Unity tutorial that shows how to use sprites to simulate screenspace effects such as d...

    archive / summary

  • Baked Light Light Maps and Probes

    - the tutorial shows how light baking is implemented in Unity

    archive / summary

  • Optimizing Game Development with GPU Performance Events

    - the article presents Do’s and Don’ts for the use of GPU performance events

    archive / summary

  • Color Banding

    - the article describes what color banding is and what causes it

    archive / summary

  • World space UVs & Triplanar Mapping

    - the Unity tutorial shows how WorldSpace positions can be used to texture planar object

    archive / summary

  • Vulkan: Bad Practices

    - the article presents several Vulkan patterns that cause reduced performance and should be av...

    archive / summary

  • Progressive Least-Squares Encoding for Linear Bases

    - the paper presents a GPU compatible algorithm for processive approximation least

    archive / summary

  • Learning from data

    - the article presents how ordering mesh data can influence rendering performance

    archive / summary

  • Using AMD FreeSync™ Premium Pro HDR: Code Samples

    - the article shows how to enable AMD FreeSync using D3D12 and Vulkan

    archive / summary

  • Khronos Group Releases Vulkan 1.2

    - Vulkan 1.2 has been released - this release promotes [23 extensions](https://www.khronos.org/regis...

    archive / summary

  • D3D12 Translation Layer and D3D11On12 are now open source

    - Microsoft open-sourced two layers to help to port to D3D12

    archive / summary

  • Performance Evaluation of Acceleration Structures for Cone Tracing Traversal

    - the paper examines k-d trees and bounding volume hierarchies

    archive / summary

  • Vulkan Timeline Semaphores

    - the article discusses the new timeline semaphore synchronization API included in Vulkan 1.2

    archive / summary

  • Calculates view space 3D sphere extents on the screen

    - the code snippet shows how to screenspace extends of a sphere from view space

    archive / summary

  • Projective Geometric Algebra Done Right

    - the article presents how Grassmann (Geometric) Algebra extends four

    archive / summary

  • Stylized Lava Shader

    - the Unity tutorial explains how to achieve a stylized lava effect

    archive / summary

  • Shader Graph Stylized Lava

    - the Unity tutorial shows to implement the stylized lava effect discussed in the previous article u...

    archive / summary

  • An Opinionated Post on Modern Rendering Abstraction Layers

    - the author presents his opinions about how a rendering abstraction layer should be designed

    archive / summary

  • Accurate Normal Reconstruction from Depth Buffer

    - presents an improved precision method for normal reconstruction from depth buffers

    archive / summary

  • HLSL Viewport Clamping trick

    - the article presents a few approaches to skybox rendering

    archive / summary

  • Ray Guiding for Production Lightmap Baking

    - the paper introduces a technique for improving the computation time required for lightmap baking

    archive / summary

  • Real-Time Ray-Tracing in WebGPU

    - the article shows how to use Node bindings to enable RTX support when using WebGPU

    archive / summary

  • UV-Based Nodes

    - the article presents the shader nodes from Unity ShaderGraph system

    archive / summary

  • Correct sRGB Dithering

    - the article presents code and explains the logic behind correct dithering patterns that preserve t...

    archive / summary

  • Clustered shading evolution in Granite

    - the article shows an overview of deferred shading techniques

    archive / summary

  • Radeon™ GPU Profiler 1.7

    - new release of AMD profiler that introduces a new pipeline overview view and adds new overlays for...

    archive / summary

  • How to Optimize your Oculus Quest App w/ RenderDoc: Walkthroughs of Key Usage Scenari...

    - the article shows how to use RenderDoc to identify issues and how to alleviate them

    archive / summary

  • Inverse Lerp and Remap

    - a short Unity tutorial that explains inverse lerp function

    archive / summary

  • NVIDIA VRSS, a Zero-Effort Way to Improve Your VR Image Quality

    - the latest Nvidia driver update introduce Variable Rate Supersampling for D3D11 + MSAA application...

    archive / summary

  • [video] Shader Coding: Over the Moon - Part 2

    - the second part of a shadertoy video tutorial - the tutorial extends the scene to render multiple ...

    archive / summary

  • [video] Deriving the SDF of a Line Segment

    - this video tutorial shows how to derive the signed distance field for a line segment

    archive / summary

  • Journey Sand Shader: Glitter Reflection

    - next part in Unity tutorial series about the rendering of sand

    archive / summary

  • Mip Map Folding

    - a brief summary of mipmapping - shows how mipmapping causes details in glitter effect of sand to b...

    archive / summary

  • outline shader

    - the article presents how to write an outline shader for Unity

    archive / summary

  • Alpha to Coverage or Anti-Aliased Cutout - TUTORIAL

    - the Unity tutorial shows how alpha to coverage allows improved edges on vegetation

    archive / summary

  • Vulkan hardware database feature update

    - update to Vulkan database shows the first driver version an extension/feature has been introduced

    archive / summary

  • Raw WebGPU

    - the article shows how to use the WebGPU API to implement everything required to render a colored t...

    archive / summary

  • How to learn graphics programming (but not in a hurry): self-study edition!

    - Twitter thread about the authors' recommendations about learning graphics programming

    archive / summary

  • Physically based shading references, at the end of 2019

    - collection of resources covering physically based shading

    archive / summary

  • Toon Glass Shader Breakdown

    - the Unity tutorial shows to create a toon style glass shader using shader graph

    archive / summary

  • The polygons of Another World

    - the article shows how the 1991 game Another World is being rendered

    archive / summary

  • How to Optimize your Oculus Quest App w/ RenderDoc: Walkthroughs of Key Usage Scenari...

    - the article shows a collection of usage scenarios and explains what should be done for best ...

    archive / summary

  • Draw Anti-aliased Lines with Geometry Shader

    - the article shows how to render anti-aliased lines

    archive / summary

  • Journey Sand Shader: Specular Reflection

    - part 4 of sand rendering tutorial - adds support for Rim Lighting, Fresnel Reflectance, and ...

    archive / summary

  • Simulated Exposure Fusion

    - the paper extends the Exposure Fusion technique to operate on a single image

    archive / summary

  • Tile-based optimization for post processing

    - the article presents a tile-based classification system for post

    archive / summary

  • Technically Art: Issue 50 (03.01.2020)

    - collection of tweets related to VFX, shaders, and game art

    archive / summary

  • Applying For Technical Art Jobs

    - the article provides an overview of the technical artist role

    archive / summary

  • Two Shader Compilers of Direct3D 12

    - the article shows the two different shader compilers for D3D12: the FXC and DXC compiler

    archive / summary

  • Height Maps & Parallaxing

    - the article explains the parallax effect and how it's different from normal mapping

    archive / summary

  • A new tessellator

    - the article describes the algorithm rewire of a vector to triangle mesh tesselator written i...

    archive / summary

  • Thermal/ Stealth Vision Effect

    - the Unity tutorial shows how to implement a thermal view effect

    archive / summary

  • Technically Art: Issue 49 (27.12.2019)

    - collection of tweets related to VFX, shaders, and game art

    archive / summary

  • Procedural Generation - Unity3d Procedurally Generation For Beginners With Random Ins...

    - A unity video tutorial that shows how to generate a circle procedurally

    archive / summary

  • Roblox graphics APIs 2019 - What does the future hold?

    - an updated article that presents the latest numbers and what APIs Roblox is currently suppor...

    archive / summary

  • Sampling Burley's Normalized Diffusion Profiles

    - the article presents how to inverse the CDF of the Disney SSS

    archive / summary

  • Open-Source Ray Tracers and Path Tracers

    - a list of open-source ray and path tracers

    archive / summary

  • Developers Show Off Amazing Real-Time Ray-Traced Projects in New DXR Spotlight Contes...

    - collection of games that have been selected by Nvidia as excellent showcases for the use of ...

    archive / summary

  • Ray Tracing Essentials, Part 1: Basics of Ray Tracing

    - the first part of the video series that will explain the basics of ray

    archive / summary

  • Mitsuba 2: A Retargetable Forward and Inverse Renderer

    - the recording of a talk presents an overview of the architecture of the Mitsuba 2 renderer

    archive / summary

  • Part 23: Intro to Unity's Specular Workflow

    - the unity tutorial provides a brief overview of the specular workflow compared with the meta...

    archive / summary

  • The Simple, Flexible, Octasphere

    - the article shows a UV sphere, icosphere and proposes the octasphere

    archive / summary

  • Matrices for Tech Artists, non Affine Transformations

    - the article presents transformations around an arbitrary axis and points

    archive / summary

  • Digital Foundry's Best Game Graphics Of 2019: The Year's Best Tech In Review!

    - video review by Digital Foundry of the games released in 2019s

    archive / summary

  • Writing a ray marcher in Unity

    - the video tutorial shows how to write a ray marcher in a unity pixel shader

    archive / summary

  • Integrating FidelityFX into the Ego Engine

    - the article presents how to integrate FidelityFX Contrast Adaptive Sharpening (CAS) compute ...

    archive / summary

  • Light Saber Breakdown

    - the article shows how to use a vertex shader to animate the vertices for a lightsaber effect

    archive / summary

  • AMD “Vega” 7nm Instruction Set Architecture documentation

    - Instruction Set Architecture provides an overview of how Vega architecture is designed

    archive / summary

  • PowerVR SDK and Tools 2019 Release 2 now available

    - the article provides an overview of new features of the PowerVR SDK

    archive / summary

  • Three years of Metal

    - the article provides an overview of the experience using metal over the last 3 years

    archive / summary

  • Technically Art: Issue 47 (13.12.2019)

    - collection of tweets related to VFX, shaders, and game art

    archive / summary

  • Part 22: Skyboxes

    - the Unity tutorial shows how to create a skybox shader that uses a gradient defined by two colors

    archive / summary

  • Ray tracing on the WEB

    - a web-based ray tracing framework that exposes programmable stages based on GLSL for rapid prototy...

    archive / summary

  • Probability Theory for Physically Based Rendering

    - the blog details the mathematical approach of Monte

    archive / summary

  • Probability Theory for Physically Based Rendering Part 2

    - the article extends the knowledge from part 1 to the domain of solving the rendering equation

    archive / summary

  • Writing a Shader Effect Language Part 3: Materials

    - the article presents an exploration of a material system designed for Vulkan requirements

    archive / summary

  • Collection of light transport papers

    - an extensive collection of light transport papers

    archive / summary

  • Bezier Triangles

    - the article shows the possibility of using Bezier Triangles to store arbitrary and use this as a l...

    archive / summary

  • PIX 1911.27 – New Buffer Formatter and Capture from Launch

    - new PIX version allows the creation of custom buffer formats and saves/restore those

    archive / summary

  • collection of tweets showcasing a large number of effects, games and technical art re...

    - collection of tweets showcasing a large number of effects, games and technical art resources...

    archive / summary

  • IMG A-Series: the GPU for generation 2020

    - new GPU architecture by Imagination Technologies (PowerVR)

    archive / summary

  • A New Language for Sparse Data

    - the article presents an overview of the Taichi programming language

    archive / summary

  • Proof of the Sampling Method for Visible GGX

    - the article describes the Visible GGX distribution (vGGX) sampling method

    archive / summary

  • How to Optimize your Oculus Quest App w/ RenderDoc: Getting Started + Frame Capture

    - begins with an overview of RenderDoc functionality

    archive / summary

  • My take on shaders: Grass Shader (Part II)

    - part 2 of the grass shader, part 1 was discussed in issues [105](https://www.jendrikillner.c...

    archive / summary

  • Matrices for Tech Artists, a Cheat Sheet

    - the article provides an overview of matrices

    archive / summary

  • Rust Game Series - Part 5 - D3D11 Device and Swap Chain creation

    - part of Rust game programming series - the article shows how to call D3D11 from Rust

    archive / summary

  • PowerVR PerfDoc – Performance Validation for PowerVR

    - fork of the PerfDoc performance layer to detect performance issues on PowerVR hardware

    archive / summary

  • Exploring SculptrVR’s efficient lighting solution for the Oculus Quest

    - the article provides an overview of the lighting model used by SculptrVR

    archive / summary

  • NVIDIA Variable Rate Shading Demonstrated in Autodesk VRED

    - the article provides an easy to understand overview of Variable Rate Shading

    archive / summary

  • Partial Derivatives (fwidth)

    - the tutorial explains the ddx and ddy shader functions

    archive / summary

  • Making a Glass Shader, Part 1: GrabPass & Refraction

    - the Unity tutorial shows how to use transparency to create a look through the object

    archive / summary

  • Making a Glass Shader, Part 2: Highlights & Reflections

    - part 2 of the shader glass material shader tutorial with Unity

    archive / summary

  • Directional Lights Direct Illumination

    - this Unity tutorial shows how to use the scriptable rendering pipeline to implement up to 4 direct...

    archive / summary

  • YUV sampling in Vulkan – a niche and complicated feature – VK_KHR_ycbcr_sampler_conve...

    - the article provides a brief overview of the YUV/YCbCr colorspace and a few complications with it ...

    archive / summary

  • Positional Effects (Scattered Objects Moving Back / Growing Flowers)

    - brief unity tutorial that shows how to implement effects that are based on the player position

    archive / summary

  • RGB/XYZ Conversion Matrix Accuracy

    - the article shows the matrices between XYZ colors and sRGB colors

    archive / summary

  • PC Rendering Techniques to Avoid when Developing for Mobile VR

    - the article presents an overview of techniques that are not a good fit for mobile VR applications

    archive / summary

  • Technically Art: Issue 44 (22.11.2019)

    - collection of tweets showcasing a large number of effects, games and technical art resources

    archive / summary

  • Part 20: Post Processing Effects & Chromatic Aberration

    - a unity tutorial that explains how to create a post

    archive / summary

  • Normal map compositing using the surface gradient framework in Shader Graph

    - the article shows how the surface gradient framework (discussed in issue [102](/post/graphics

    archive / summary

  • Vulkan Releases Extension to Expose Cross-Vendor Performance Metrics

    - a new Vulkan extension that allows developers to query performance metrics from the GPU

    archive / summary

  • Applying for Entry Level Graphics Jobs in Games

    - overview of advice by the author on what candidates should be focusing on if they are interested i...

    archive / summary

  • Open-Source Real-Time Rendering Engines and Libs

    - list of open-source rendering engines and helper libraries

    archive / summary

  • [#78] Podcast time! & PBR Theory for Artists - Part one

    - podcast episode for artists - contains a collection of links to other articles related to PBR rend...

    archive / summary

  • The RTX Shader Binding Table Three Ways

    - provides an overview of the raytracing execution model

    archive / summary

  • 2019 Reboot Develop Red

    - links to Vulkan presentations and videos from Reboot Develop Red

    archive / summary

  • Latency of 30 ms Matters More Than Refresh Rate Above 60 Hz for First Person Targetin...

    - research by Nvidia that investigates the influence of latency reduction and higher frame rates in ...

    archive / summary

  • Instanced Line Rendering

    - the article explains how to render lines - extends the method to support different styles of line ...

    archive / summary

  • DeepFovea: Neural Reconstruction for Foveated Rendering and Video Compression using L...

    - the paper presents a new technique that uses a neural network to reconstruct foveated rendering fr...

    archive / summary

  • Coming to DirectX 12: D3D9On12 and D3D11On12 Resource Interop APIs

    - the article provides an overview of the new API that allows users to request the underlying D3D12 ...

    archive / summary

  • Journey Sand Shader: Sand Normal

    - the article proposes a technique that uses a random texture to perturb the normals of dunes to sim...

    archive / summary

  • Vulkan Mobile Best Practices - Descriptor and Buffer Management

    - the article provides an overview of how Vulkan descriptor set management influences CPU performanc...

    archive / summary

  • Coming to DirectX 12: More control over memory allocation

    - D3D12 is adding two new flags for memory heap creation

    archive / summary

  • Layered voxel rendering

    - the article proposes a solution for voxel rendering

    archive / summary

  • Improving Particle Systems on PowerVR

    - brief article explains how to detect particle overdraw using the PowerVR profiler

    archive / summary

  • Frozen 2

    - the author mentions the new rendering features of Disneys' Hyperion Renderer that have been used o...

    archive / summary

  • Technically Art: Issue 43 (15.11.2019)

    - collection of tweets showcasing a large number of effects, games and technical art resources

    archive / summary

  • On Histogram-Preserving Blending for Randomized Texture Tiling

    - the paper presents a modification of histogram-preserving tiling algorithm discussed in [issue 45]...

    archive / summary

  • Coming to DirectX 12— Mesh Shaders and Amplification Shaders: Reinventing the Geometr...

    - the article explains the problem with the classic GPU geometry pipeline

    archive / summary

  • DirectX Raytracing (DXR) Tier 1.1

    - the article explains what has been added with DXR tier 1.1

    archive / summary

  • Vulkan-Guide

    - new Vulkan guide by Khronos - a crucial starting point for getting started with Vulkan

    archive / summary

  • Coming to DirectX 12— Sampler Feedback: some useful once-hidden data, unlocked

    - the article presents the use-case of the streaming system and texture space shading

    archive / summary

  • What are use-cases of Texture-Space Shading in DX12, based on current research?

    - Twitter thread about possibilities of texture-space shading

    archive / summary

  • Ray Guiding for Production Lightmap Baking

    - the paper introduces a technique for improving the computation time required for lightmap baking

    archive / summary

  • Image-based Remapping of Spatially-varying Material Appearance

    - the paper introduces a technique for translation of materials between different renderers

    archive / summary

  • [video] Rounding Corners in SDFs

    - the video shows how to modify the SDF of any geometrical shape to make its edges more rounded

    archive / summary

  • Dev Preview of New DirectX 12 Features

    - the post introduces new D3D12 features available with latest win10 preview version

    archive / summary

  • [video] How to Write Shaders in Unity - an Easy introduction by Febucci

  • Arm donates Vulkan Best Practice for Mobile Developers to The Khronos Group

    - the ARM developed sets of samples to showcase best practices for Vulkan on mobile is now open

    archive / summary

  • Vulkan Releases Unified Samples Repository

    - Khronos published a unified Vulkan Samples Repository

    archive / summary

  • My take on shaders: Grass Shader (Part I)

    - the article shows the Unity shader implementation for stylized and unlit grass

    archive / summary

  • ray tracing a tiny procedural planet

    - starts by showing how to create a small 2D world procedurally

    archive / summary

  • [video] Deriving the SDF of a Box

    - the video presents how to derive the SDF for a box

    archive / summary

  • SIGGRAPH 2019 Highlight: Finding a Practical Hybrid Anti-Aliasing Algorithm

    - summary of SIGGRAPH 2019 for a hybrid solution between temporal anti

    archive / summary

  • srgb eotf: pure gamma 2.2 function or piece-wise function?

    - the article presents the different meaning of the term gamma in different color contexts

    archive / summary

  • Flow Control on PowerVR – Optimising Shaders

    - presents an overview of the difference between static and dynamic branching

    archive / summary

  • Another Metaballs2 update

    - introduction of marching cube pre-pass stage reduces the mesh shader example GPU time by 33% to 50...

    archive / summary

  • Technically Art: Issue 40 (25.10.2019)

    - collection of tweets related to VFX, shaders, and game art

    archive / summary

  • Mesh Texture painting in Unity Using Shaders

    - the author presents his solution on how to implement painting onto textures using unity

    archive / summary

  • A Look Inside D3D12 Resource State Barriers

    - the article presents the D3D12 resource state promotion and decay rules related to the common reso...

    archive / summary

  • GPU Ray Tracing in an Afternoon

    - the article presents how the author took the CPU implementation of Ray Tracing in a Weekend and co...

    archive / summary

  • RLSL - A rust to SPIR-V compiler

    - a brief presentation by Embark Studios showing RLSL, a subset of rust compiled to SPIR

    archive / summary

  • Vulkan Mobile Best Practice: Picking the Most Efficient Load/Store Operations

    - the article describes how the architecture of mobile GPUs is different from PC

    archive / summary

  • Raw DirectX 12

    - the tutorial shows the steps necessary to render a single triangle using the D3D12 API

    archive / summary

  • Raw WebGL

    - the tutorial shows the steps necessary to render a triangle in WebGL using Typescript

    archive / summary

  • Massively Parallel Path Space Filtering in Game Development

    - excerpt of Siggraph 2019 talk that proposes averaging of neighboring rays into cells

    archive / summary

  • Radeon™ GPU Analyzer 2.3 for Direct3D® 12 Graphics

    - the article shows how to use the Radeon GPU Analyzer to generate hardware native ISA disassembly, ...

    archive / summary

  • GOON – VOXEL OBJECT

    - the article describes a demo scene effect that uses a 2D height map on a flat 2D shaded object to ...

    archive / summary

  • Handling Depth for Spheretracing

    - next part of tutorial series shows how to extend a sphere tracing implementation in Unity to use t...

    archive / summary

  • GGX Derivation

    - the article presents the derivation of the GGX BRDF

    archive / summary

  • A Journey Into Journey’s Sand Shader

    - part 1 of a Unity tutorial series about the sand rendering in Journey

    archive / summary

  • Surface Gradient Based Bump Mapping Framework

    - a mathematical framework for more consistent layering of bump/normal maps using linear surface gra...

    archive / summary

  • Emulating a fake retro GPU in Vulkan compute

    - high-level system discussion of a retro GPU emulation implemented in Vulak compute shaders

    archive / summary

  • RenderDoc - Version v1.5

    - new RenderDoc version allows explicit GPU playback selection

    archive / summary

  • Real-time Rendering of Layered Materials with Anisotropic Normal Distributions

    - proposal of approach for rendering layered materials

    archive / summary

  • Living with Vulkan and DirectX 12

    - the post describes the perspective from Stardock on D3D12/Vulkan vs. D3D11

    archive / summary

  • Progressive Real-Time Rendering of One Billion Points Without Hierarchical Accelerati...

    - proposes a real-time solution to rendering unstructured point clouds

    archive / summary

  • Denoising as a Building Block

    - provides an overview of the foundations of denoising techniques

    archive / summary

  • An Introduction To Real-Time Subsurface Scattering

    - in-depth article that provides an overview of subsurface scattering techniques used for games

    archive / summary

  • Text Rendering Hates You

    - the author provides an overview of problems that are encountered and make text rendering system ve...

    archive / summary

  • Desertscape Simulation

    - presents a model to simulate erosion and transport simulation for sand due to wind

    archive / summary

  • Flexible Ray Traversal with an Extended Programming Model

    - the paper proposes the addition of a Traversal Shader stage to the DXR model

    archive / summary

  • Half The Precision, Twice The Fun: Working With FP16 In HLSL

    - the article shows how to use 16-bit floating-point types on PC hardware

    archive / summary

  • Technically Art: Issue 37 (04.10.2019)

    - collection of tweets related to VFX, shaders, and game art

    archive / summary

  • Fractional Brownian Motion

    - the article describes the characteristics of Fractional Brownian Motion

    archive / summary

  • Physically-Based Rendering with PowerVR – Part 2

    - the article shows the precalculations steps that enable PBR rendering on mobile devices

    archive / summary

  • Strand-based Hair Rendering in Frostbite

    - the presentation shows the new WIP hair rendering system

    archive / summary

  • Local linear models and guided filtering – an alternative to bilateral filter

    - the article presents guided filtering as an alternative to a bilateral filter

    archive / summary

  • PIX 1909.23 – New timing capture features, performance improvements and bug fixes

    - the new PIX CPU timeline view shows when a thread context switch happened and to where

    archive / summary

  • Ray Tracing Denoising

    - overview of denoising techniques in raytracing applications

    archive / summary

  • How powerful can WebGL be in comparison with native OpenGL?

    - performance comparison of a ray tracer application using native OpenGL against WebGL (Chrome, Fire...

    archive / summary

  • Custom Render Pipeline Taking Control of Rendering

    - Unity tutorial showing how to set up a custom render pipeline

    archive / summary

  • [Video] DirectX Raytracing: Real-Time Denoised Raytraced Ambient Occlusion

  • Technically Art: Issue 36 (27.09.2019)

    - collection of tweets related to VFX, shaders, and game art

    archive / summary

  • Multi-resolution Ocean Rendering in Crest Ocean System [280 MB pptx]

    - provides an overview of the ocean rendering system

    archive / summary

  • Improved normal reconstruction from depth

    - the article presents what kind of artifacts happen when reconstructing normals from world space po...

    archive / summary

  • Non-linear sphere tracing for rendering deformed signed distance fields

    - the paper presents a method that allows SDFs to be combined with techniques such as linear skinnin...

    archive / summary

  • Metal Enhancements for A13 Bionic

    - overview of what has been improved in the latest apple GPU architecture and metal

    archive / summary

  • Selectively Metropolised Monte Carlo light transport simulation

    - the paper presents a new scheme that allows selectively combining different Monte Carlo rendering ...

    archive / summary

  • Vertex Assembly and Skinning

    - the article explains how vertex shaders in "Our Machinery" engine is handled

    archive / summary

  • Geometry Reinvented with Mesh Shading

    - excerpt from the [Siggraph talk](https://developer.nvidia.com/siggraph/2019/video/sig918

    archive / summary

  • DRED v1.2 supports PIX marker and event strings in Auto-Breadcrumbs

    - DRED can now include PIX markers - additional string events can be attached to markers

    archive / summary

  • Real-time lightmap baking

    - the presentation explains how lightmap baking has been implemented in [Wicked Engine](https://gith...

    archive / summary

  • Updated Metaballs2 demo

    - Metaballs2 demo has been updated - the demo shows how to use mesh shaders and now provides a compu...

    archive / summary

  • The making of Gears 5: how the Coalition hit 60fps - and improved visual quality

    - interview discussing the details of the Gear 5 implementation

    archive / summary

  • Believable Caustics Reflections

    - tutorial explaining how to implement a Caustics effect in unity

    archive / summary

  • Diagnosing performance issues in Unity

    - the article presents an overview of performance methodology to detect performance issues earlier

    archive / summary

  • WebGPU and WSL in Safari

    - overview of the state of WebGPU in safari - Web Shading Language is a new text

    archive / summary

  • Mip-mapping is hard – importance of keeping your quads full

    - looks at the behavior of texture sampling in divergent code flows on different hardware

    archive / summary

  • Overview of new additions to Vulkan SDK 1.1.121

    - GPU assisted validation for VK_EXT_buffer_device_address

    archive / summary

  • Mitsuba 2: A Retargetable Forward and Inverse Renderer

    - the paper discusses the design of the Mitsuba 2 renderer

    archive / summary

  • Technically Art: Issue 34 (13.09.2019)

    - collection of tech art tweets, many gifs, and videos showing a large variety of effects and art st...

    archive / summary

  • Variance-aware multiple importance sampling

    - the paper proposes a new weighting heuristic for multiple importance sampling

    archive / summary

  • Integral formulations of volumetric transmittance

    - the paper presents novel integral formulations for volumetric transmittance

    archive / summary

  • Engineering Career Guide [LEAKED]

    - guide by Roblox for the career development of rendering engineers

    archive / summary

  • Watch the Unity Graphics Sessions from SIGGRAPH 2019

    - summary and links to the video recordings from Unity talks at SIGGRAPH 2019

    archive / summary

  • D3D12 Memory Allocator 1.0.0

    - the first release of a new open-source D3D12 memory allocator project by AMD

    archive / summary

  • My take on shaders: Water Shader

    - a walkthrough that explains a Unity water shader implementation

    archive / summary

  • The Sharpening Curse

    - the article discusses the image quality difference between film and realtime rendering

    archive / summary

  • hybrid screen-space reflections

    - the article presents a hybrid technique between Screen space reflections and ray

    archive / summary

  • Raw OpenGL

    - OpenGL tutorial that teaches the concepts required to render a textured mesh

    archive / summary

  • DirectXShaderCompiler - prebuild releases

    - Microsoft is now offering pre-built binaries of the shader compiler on GitHub

    archive / summary

  • Faster Shadow Rays on RTX

    - the article presents different techniques to generate ray traced shadows

    archive / summary

  • Path Tracing Review

    - intro to computer graphics from University of Waterloo summarized in one slide deck

    archive / summary

  • Advances in Real-Time Rendering in Games - Siggraph 2019

  • Mesh Shading: Towards Greater Efficiency Of Geometry Processing (pptx)

    - a brief historical look at the rendering pipeline

    archive / summary

  • Interactive Wind and Vegetation in 'God of War' (2GB pptx!)

    - overview of the interactive wind system in God of War

    archive / summary

  • Creating the Atmospheric World of Red Dead Redemption 2: A Complete and Integrated So...

    - a presentation covering the volumetric effects of Red Dead Redemption 2

    archive / summary

  • AMD RDNA 1.0 Instruction Set Architecture

    - instruction set documentation for the new AMD RDNA GPU architecture

    archive / summary

  • Resident Evil 2 Frame Breakdown

    - frame breakdown of a Resident Evil 2 - presents the different stages found in the frame

    archive / summary

  • SDF - ellipsoid

    - the article presents a distance for function for ellipsoid

    archive / summary

  • Split-free occlusion sorting

    - the article discusses how to build a correct CPU occlusion sorting structure

    archive / summary

  • SIGGRAPH 2019 Links

    - collection of links to content from Siggraph 2019

    archive / summary

  • Are we done with Ray Tracing?

    - slides for Siggraph 2019 course - talking about the state of ray

    archive / summary

  • Chasing Triangles in a Tile-based Rasterizer

    - the detailed article explains how to tile-based rasterization works

    archive / summary

  • siggraph course: path tracing in production 2019

    - course notes for the Siggraph 2019 course - part 1 focuses on the necessary background knowledge ...

    archive / summary

  • Alpha Compositing

    - the article discusses the foundations of alpha compositing

    archive / summary

  • Technically Art: Issue 27 (26.07.2019)

    - collection of VFX tweets of the week - tutorials, demos, and showcases of great looking effects

    archive / summary

  • Differences in memory management between Direct3D 12 and Vulkan

    - the article discusses memory management in Vulkan and D3D12

    archive / summary

  • Fresnel Equations Considered Harmful

    - presents problems with the Fresnel equations when applied to sRGB data

    archive / summary

  • Shadertoy media files

    - the article contains the links to the build-in Shadertoy media files

    archive / summary

  • Axis-Aligned Bounding Tetrahedra and Octahedra for Ray Tracing Bounding Volume Hierar...

    - presents Axis-Aligned-Bounding-Tetrahedron (AABT) and Axis

    archive / summary

  • Anatomy of a frame in AnKi

    - frame breakdown of a single frame in the Anki engine

    archive / summary

  • Wavefront Path Tracing

    - the article explains what wavefront path tracing is

    archive / summary

  • Robust pipeline cache serialization

    - provides an overview of Vulkan pipeline caching - list of possible problems that can be encountere...

    archive / summary

  • High-Performance Graphics 2019

    - slides for the High-Performance Graphics 2019 conference are now available

    archive / summary

  • Physically Based Shading

    - A Shadertoy that shows the different components the define physically based rendering

    archive / summary

  • GPU-Assisted Validation

    - GPU based validation in Vulkan has been updated - now supports more cases, the article explains wh...

    archive / summary

  • Radeon GPU Analyzer 2.2 for Direct3D®12 Compute

    - Radeon GPU Analyzer can now compile compute shaders to the target ISA without having to have the G...

    archive / summary

  • Dot products and planes

    - an article explains the dot product and how it relates to the plane equation

    archive / summary

  • Dot product and its relationship to matrices

    - shows how the dot product and axis define matrices

    archive / summary

  • How to ray-intersect a transformed geometry, without actually transforming it: a geom...

    - the article shows that with the inverse-transformation applied to a ray origin and direction

    archive / summary

  • Command buffers for multi-threaded rendering

    - explains a renderer architecture that separates command generation from execution

    archive / summary

  • I3D19 Keynote: Advances in Rendering, Graphics Research and Video Game Production (St...

  • Texture Compression in Games

  • Real-Time Hybrid Hair Rendering using Vulkan

    - a paper about a new hair rendering technique - the technique is a hybrid between strand

    archive / summary

  • Bindless Deferred Decals in The Surge 2 - Philip Hammer

  • Rendering Line Lights

    - explains how to implement line lights - using a Most Representative Point (MRP) approximation

    archive / summary

  • New in D3D12 – Motion Estimation

    - D3D12 motion estimation support exposes access to the motion estimation hardware found in supporte...

    archive / summary

  • Lighthouse 2

    - discusses a new renderer project aimed at providing a high

    archive / summary

  • Using Basis Universal Texture Compression with Metal

    - shows how to compile the Basis command line tool

    archive / summary

  • GPU timing data in New Timing Captures

    - the timing capture view now supports GPU workload visualization

    archive / summary

  • Using DXC In Practice

    - the article explains how to use the DXC compiler API

    archive / summary

  • SIGGRAPH 2019 Ray Tracing Roundup

    - updated page with all raytracing related sessions, talks and papers from Siggraph 2019

    archive / summary

  • [Twitter] Low-Level Rendering API discussion

    - Twitter thread about modern APIs - strengths, weaknesses, opinions, and suggestions for an alterna...

    archive / summary

  • Spectral Primary Decomposition for Rendering with sRGB Reflectance

    - the paper presents a new technique that allows the generation of spectral data from sRGB source da...

    archive / summary

  • A Simple Spectral Renderer

    - open source and well-commented implementation of a spectral path tracer

    archive / summary

  • [video] Turn your Frame Rate up to 60 with Vulkan on the Nintendo Switch: – Reboot De...

    - Vulkan techniques used to achieve better performance on the Nintendo Switch

    archive / summary

  • [video] Halcyon: Rapid innovation using modern graphics – Reboot Develop 2019

    - video recording of talk about the SEED halyon engine, was discussed in [issue

    archive / summary

  • geometry processing in the wild

    - slides that present common problems with mesh data

    archive / summary

  • HLSLexplorer 1.01 - UI improvements and D3D12 rendering backend

    - HLSLexplorer, a tool which helps in understanding how HLSL code gets translated to hardware assemb...

    archive / summary

  • Interactive Map Shader: Vertex Displacement

    - part 1 of a Unity tutorial that shows how to create 3D geometry offset from a texture and corresp...

    archive / summary

  • Technically Art: Issue 25 (05.07.2019)

    - collection of VFX tweets of the week - tutorials, demos, and showcases of great looking effects

    archive / summary

  • Nested Dielectrics

    - presents a technique that improves the handling of nested dielectrics in ray

    archive / summary

  • ShaderGraph Conversion - Custom Functions(Toon Lighting Example), Vertex Colors(Specu...

    - the tutorial shows to create custom nodes in Unity Shader Graph

    archive / summary

  • Render Graph Optimization Scribbles

    - presents an algorithm for scheduling work in a render graph architecture

    archive / summary

  • Debugger Extension for DRED

    - extension for WinDbg that enables debugging of Device Removed Extended Data

    archive / summary

  • Ambient Dice Specular Approximation

    - presents how to use the Ambient Dice to store the GGX specular component

    archive / summary

  • Optimal Multiple Importance Sampling

    - derives weighting functions for Multiple Importance Sampling (MIS) that minimize the varia...

    archive / summary

  • Orthogonal array sampling for Monte Carlo rendering

    - a new strategy for the generation of stratified samples

    archive / summary

  • Generating Blue Noise Textures With Void And Cluster

    - the article explains how to generate high-quality blue noise

    archive / summary

  • Level of Detail Cross-Fading Geometry

    - next part in the article series about the implementation of a scriptable render pipeline in Unity

    archive / summary

  • Using AMD FreeSync 2 HDR: Gamut Mapping

    - explains gamut mapping techniques - difference perceptual and clipping techniques

    archive / summary

  • Reverse engineering the rendering of The Witcher 3, part 15 - fog

    - shows how the fog in The Witcher 3 has been implemented

    archive / summary

  • SIGGRAPH 2019 Ray Tracing Roundup

    - list of sessions from SIGGRAPH 2019 that are related to ray tracing techniques

    archive / summary

  • New Vulkan® Extensions in Driver 19.6.2

    - new extensions in AMD driver - VK_EXT_full_screen_exclusive, allows application to enter fullscree...

    archive / summary

  • PIX 1906.14 – GPU Timing in New Timing Captures

    - support for GPU timing data in the new timing capture view

    archive / summary

  • Glint Rendering based on a Multiple-Scattering Patch BRDF

    - new glint integrator for specular surfaces using multiple

    archive / summary

  • Announcing HighOmega v3.0 with RTX and Voxel-based Hybrid Path-tracing Support!

    - shows a new version of voxel-based path-tracing based graphics engine

    archive / summary

  • A Low-Discrepancy Sampler that Distributes Monte Carlo Errors as a Blue Noise in Scre...

    - new path tracing sampler techniques - distributed per

    archive / summary

  • Distributing Monte Carlo Errors as a Blue Noise in Screen Space by Permuting Pixel Se...

    - the paper builds on the techniques described in the previous article

    archive / summary

  • Vulkan Textures Unbound

    - describes how to support unbounded arrays of textures in Vulkan

    archive / summary

  • Spheretracing Basics

    - shows how to implement raytracing against a Signed Distance Field (SDF)

    archive / summary

  • Interactive Generation of Path-Traced Lightmaps

    - a master thesis that describes a progressively path

    archive / summary

  • Spherical Radial Basis Functions for Lighting

    - explains how to extend the Ambient Dice basis function to store and evaluate both diffuse and spec...

    archive / summary

  • What's up with my branch on GPU?

    - explains how branching on GPUs is commonly implemented

    archive / summary

  • Normal Mapping Using the Surface Gradient

    - describes the surface gradient framework - a framework for robust processing of height maps, heigh...

    archive / summary

  • Sampling projected spherical caps with multiple importance sampling

    - explains how to combine sampling of projected spherical caps and multiple importance sampling

    archive / summary

  • Technically Art: Issue 22 (14.06.2019)

    - collection of VFX tweets of the week - tutorials, demos, and showcases of great looking effe...

    archive / summary

  • Alpha compositing, OpenGL blending and premultiplied alpha

    - an updated article explaining color blending with OpenGL

    archive / summary

  • RDNA - new AMD GPU architecture

    - hardware overview of the new architecture for AMD GPUs

    archive / summary

  • Introducing Metal 3

    - the article shows what changes have been introduced with Metal 3

    archive / summary

  • What’s New in Metal (2019)

    - the article shows what changes have been introduced with Metal 3

    archive / summary

  • RTX Beyond Ray Tracing: Exploring the Use of Hardware Ray Tracing Cores for Tet-Mesh ...

    - the paper investigates using the raytracing hardware support added in Turing GPUs to acceler...

    archive / summary

  • Dissecting A Plague Tale: Innocence

    - breakdown of two frames in the game - very little instancing

    archive / summary

  • Triangles Are Precious - Let's Treat Them With Care

    - the presentation explains the stages a triangle is passing through while being processed for rende...

    archive / summary

  • OS Variable Refresh Rate

    - Windows Version 1903 adds a new variable refresh rate option

    archive / summary

  • 3D Game Rendering 101

    - beginner level explanation of the rendering pipeline for games

    archive / summary

  • Pipeline Management

    - explains what a Vulkan pipeline cache is, why developers want to use it

    archive / summary

  • Advances in Rendering, Graphics Research and Video Game Production

    - keynote from I3D presenting the challenges modern open world games such as FarCry need to solve

    archive / summary

  • Dynamic Diffuse Global Illumination Part I

    - part 1 of article series about Global Illumination

    archive / summary

  • Dynamic Diffuse Global Illumination with Ray-Traced Irradiance Fields

    - a paper about Dynamic Diffuse Global Illumination solution

    archive / summary

  • Tips and Tricks: Vulkan Dos and Don’ts

    - collection of best practices and pitfalls when using Vulkan on Nvidia hardware

    archive / summary

  • Visualizing Warping Strategies for Sampling Environment Map Lights

    - the article presents a comparison between two different sampling strategies for environment maps

    archive / summary

  • optimising a aaa vulkan title on desktop

    - presents an overview of what requirements need to be met on AMD to enable color compression on ren...

    archive / summary

  • Make Your Game Friendly for Graphics Debugging and Optimization

    - presentation with a collection of options and debug modes that help with debugging

    archive / summary

  • Leveraging Ray Tracing Hardware Acceleration In Unity

    - presents how ray tracing is integrated into the High Definition Render Pipeline (HDRP)

    archive / summary

  • Vulkan NV Ray Tracing with HLSL

    - shows how to use HLSL to write a raytracing implementation using the Nvidia Vulkan extension

    archive / summary

  • The Heretic - Making of a real-time short film: digital humans and vfx characters

    - presents how the Unity demo was made - overview of skin/hair/eye/teeth shading

    archive / summary

  • Bindless Deferred Decals in The Surge 2

    - overview of the deferred decal solution - uses bindless resource binding model

    archive / summary

  • NVIDIA Announces Nsight Graphics 2019.3!

    - a new release, range profiler provides detailed metric graph about the performance of the applicat...

    archive / summary

  • Video Series: Path Tracing for Quake II in Two Months

    - summary of the Quake II path tracing implementation

    archive / summary

  • Easy VRS Integration with Eye Tracking

    - Nvidia helper library to simplify the integration of Variable Rate Shading

    archive / summary

  • What Makes a (Graphics) Systems Paper Beautiful

    - the author presents what makes a graphics system paper

    archive / summary

  • View-Warped Multi-View Soft Shadows for Local Area Lights

    - new point based shadowing algorithm for local area lights

    archive / summary

  • Baked Shadows Mixed Lighting

    - tutorial series covering Unity's scriptable render pipeline

    archive / summary

  • Open Problems in Real-time Rendering - The Value of Pixel$

  • Using Moments to Represent Bounded Signals for Spectral Rendering

    - new representation approach for spectra - shows use in offline raytracing and real

    archive / summary

  • Graphics Programming Weekly - Database

    - database with articles that were previously covered in Graphics Programming Weekly

    archive / summary

  • Google and Binomial Partner to Open-Source Basis Universal Texture Format

    - open source release of the Basis Universal texture codec

    archive / summary

  • Technically Art: Issue 19 (24.05.2019)

    - collection of VFX tweets of the week - tutorials, demos, and showcases of great looking effects

    archive / summary

  • GPU Lightmapper: A Technical Deep Dive

    - presents the GPU based light mapper implemented in Unity, based on Radeon Rays

    archive / summary

  • frostbite hair rendering and simulation - part 1

    - overview videos of the hair rendering in Frostbite

    archive / summary

  • Approximating Global Illumination with Real-Time Ambient Occlusion

    - master thesis trying to answer if raytraced real-time ambient occlusion is a viable option for gam...

    archive / summary

  • Understanding the Need for Adaptive Temporal Antialiasing (ATAA)

    - proposed antialiasing technique combines rasterization with ray tracing

    archive / summary

  • Boost rendering performance with Variable Rate Shading | Game Developers Conference 2...

    - Microsoft GDC 2019 presentation about variable rate shading (VRS)

    archive / summary

  • unreal fest europe 2019

    - presentation video recordings have been released

    archive / summary

  • direct delta mush skinning and variants

    - a new skinning algorithm that removes the need for iterative calculations from delta mush skinning...

    archive / summary

  • Multi-GPU Rendering with Vulkan API

    - a master thesis that demonstrates how to use multiple GPUs with Vulkan

    archive / summary

  • 3D Game Shaders For Beginners

    - shader tutorial aimed at beginners that teaches shader fundamentals using Panda3D and GLSL

    archive / summary

  • Using AMD Freesync 2 HDR: Tone Mapping

    - explains tone mapping terms and how the human vision perceives changes in luminance

    archive / summary

  • blockwise multi-order feature regression for real-time path tracing reconstruction

    - paper on path trace denoising - aimed at interactive scenarios with 1 sample per pixel

    archive / summary

  • Vertex Data and Vertex Descriptors

    - Vertex Descriptors in Metal allow the programmer to describe the memory layout of vertices

    archive / summary

  • Portals with Asymmetric Projection

    - shows how to implement Asymmetric Projection - adjust the projection on a render

    archive / summary

  • Radeon GPU Profiler 1.5.1

    - the new version adds support for hardware-level tracing on an instruction level

    archive / summary

  • [video] Real Time Continuous Lever of Detail Rendering of Point Clouds

    - video for article discussed in [issue 76](https://www.jendrikillner.com/post/graphics

    archive / summary

  • Using the bgfx library with C++ on Ubuntu

    - the tutorial shows how to use BGFX running on Linux

    archive / summary

  • Unity 2019 Shader Development

    - example project for a course teaching the basics of shader development using Unity

    archive / summary

  • Technically Art: Issue 18 (17.05.2019)

    - collection of VFX tweets of the week - tutorials, demos, and showcases of great looking effects

    archive / summary

  • Seeing the whole Physically-Based picture

    - presents what kind of approximations are still required to be done in Physically Based Rendering

    archive / summary

  • Proposal for WebGPU as a new Standard Cross-Platform Graphics API (OpenGL replacement...

    - proposal of requirements that would allow WebGPU to be used as a common cross

    archive / summary

  • Axis-Aligned Bounding Octahedra and The 7-Sided AABB

    - describes an alternative bounding structure that is based around axis aligned triangles

    archive / summary

  • [video] Technical Papers Preview: SIGGRAPH 2019

    - overview video of papers that will be presented at SIGGRAPH 2019

    archive / summary

  • Cross-Platform Shader Handling

    - describes the cross-platform shader pipeline - mix of json description files for state / constants...

    archive / summary

  • What’s New in Android: Q Beta 3 & More

    - Vulkan 1.1 will be a requirement on 64-bit devices starting with Android Q

    archive / summary

  • Introducing TensorFlow Graphics: Computer Graphics Meets Deep Learning

    - tour of TensorFlow Graphics - allows to define 3D scenes and run training on them

    archive / summary

  • Why are 2D vector graphics so much harder than 3D?

    - presents the history of 2D printing and font formats

    archive / summary

  • How we made Neon Noir - Ray Traced Reflections in CRYENGINE and more!

    - interview describing the reflections that have been implemented in the [Neon Noir Demo](https://ww...

    archive / summary

  • Hierarchical Russian Roulette for Vertex Connections

    - a method based on stochastic light culling - hierarchical Russian Roulette using an approximate sc...

    archive / summary

  • Fur Shader Tutorial

    - brief Unity example that shows how to render a basic fur look

    archive / summary

  • Shader games with Vulkan

    - overview about how to design a game to run all logic in Vulkan shaders

    archive / summary

  • Part 3: DDGI Overview

    - Dynamic Diffuse Global Illumination - overview of the evolution of several indirect illumination t...

    archive / summary

  • Reverse engineering the rendering of The Witcher 3, part 14 - cirrus clouds

    - reverse-engineering the cloud rendering of The Witcher

    archive / summary

  • Dithering

    - explains how to apply a screenspace Bayer dithering pattern in Unity

    archive / summary

  • A tour of Granite’s Vulkan backend – Part 6

    - presents how Granite deals with vkPipeline management

    archive / summary

  • Pro Tip: Improved GLSL syntax for Vulkan DescriptorSet Indexing

    - explains a code generation method to generate helper functions to make indexing into unbounded res...

    archive / summary

  • Bounding Half-Space Hierarchy

    - explains the BHH (Bounding Half-Space Hierarchy) data

    archive / summary

  • rendering-bib

    - bibliography file containing 2000+ entries, in computer graphics, rendering, transport theory, and...

    archive / summary

  • Integrating GVDB & Future Plans

    - part 3 of the volumetric cloud rendering series - the code has been released on [github](https://g...

    archive / summary

  • A brief history of 3D texturing in video games

    - a twitter thread that provides an overview about how games, especially in regards to texturing, ha...

    archive / summary

  • Making of Newton Protocol

    - presents the rendering architecture used for the raytracing demo

    archive / summary

  • A Guide To Rust Graphics Libraries 2019

    - overview of the state of graphics API wrappers and libraries for rust

    archive / summary

  • 3D Projection

    - explains 3D camera projections - shows the influence of the camera FoV and how it changes the perc...

    archive / summary

  • GTC 2019 - videos avaialble

    - videos from GTC 2019 have been released

    archive / summary

  • Birthday Post! ShaderGraph conversions (WorldPosition Textureswap/Appear/Disappear)

    - shows how to convert effects from unity shader code to use the ShaderGraph system

    archive / summary

  • A tour of Granite’s Vulkan backend – Part 4

    - shows the window system abstraction - can be used to render to a window or into an offscreen rende...

    archive / summary

  • A Tale of a Bug

    - the article describes the process to locate a bug in Babylon.js PBR pipeline

    archive / summary

  • Tone Mapping

    - shows the effect on PBR scene when no tone mapping is applied

    archive / summary

  • Automatic Exposure Using a Luminance Histogram

    - presents the process of tone mapping and how curves are used

    archive / summary

  • PIX 1904.23 – New Timing Capture preview and improved DXIL shader debugging

    - new PIX version contains a preview of a new timing view

    archive / summary

  • A tour of Granite’s Vulkan backend – Part 5

    - presents how render passes are expressed in the user

    archive / summary

  • i3D 2019 – Sampling Projected Spherical Caps in Real Time

    - presents a new technique for a stochastic sampling of spherical area lights that is suitable for G...

    archive / summary

  • Lighting And Transmittance

    - the second part of the volumetric cloud rendering series

    archive / summary

  • Dynamic Bounding Volume Hierarchies - Extended version

    - an extended version of the GDC 2019 talk - overview of AABB and BVH

    archive / summary

  • Write-up: Magical Marbles

    - explains how to create a layering parallax effect to simulate the inside of a marble using ray mar...

    archive / summary

  • A tour of Granite’s Vulkan backend – Part 2

    - presents how memory, object lifetime and command buffers are managed

    archive / summary

  • GDC 2019 Presentation Links

    - PDFs for all AMD presentations from GDC 2019 have been posted

    archive / summary

  • Machine Learning Acceleration in Vulkan with Cooperative Matrices

    - shows the Cooperative Matrix extension for Vulkan

    archive / summary

  • HSV Color Space

    - explains the HSV colorspace and how to convert it to RGB

    archive / summary

  • Under the hood of Shadow of the Tomb Raider

    - using a Forward+ rendering pipeline and raytracing for shadows

    archive / summary

  • Model View Projection

    - shows the different spaces that are typically involved in 3D rendering

    archive / summary

  • Sampling A Procedural Sky

    - series on rendering of volumetric clouds - shows how to sample the sky lighting contribution

    archive / summary

  • Flax Facts #25 – Vulkan

    - Flax engine now fully supports a Vulkan backend - better performance than the D3D12 implementation...

    archive / summary

  • New in D3D12 – background shader optimizations

    - D3D12 is starting to allow GPU drivers to implement shader optimization in a background thread

    archive / summary

  • Intel® Graphics Performance Analyzers Assist Snow Simulation in Frostpunk*

    - presents how the snow simulation has been implemented and how it was optimized for Intel GPUs

    archive / summary

  • A tour of Granite’s Vulkan backend – Part 3

    - presents the shader binding model used by granite

    archive / summary

  • Debugging VK_ERROR_DEVICE_LOST with Nvidia Device Diagnostics

    - vulkan extension that allows progress markers to be inserted into the Vulkan command stream

    archive / summary

  • GPU Architectures

    - a brief overview of the rasterization process - look at the logical rendering pipeline model

    archive / summary

  • RTG free on Kindle; consider Google Play for books

    - Ray Tracing Gems is now also available as a free Kindle version

    archive / summary

  • Observations about the rendering of Metro: Exodus

    - presents an overview of the general flow of a frame of the game

    archive / summary

  • More observations in Metro: Exodus

    - looks at the composition of transparent objects, lens flares and at terrain tessellation

    archive / summary

  • DirectX-Specs

    - Microsoft released the engineering specification for Direct3D 11 and 12 including DXR

    archive / summary

  • GDC19 show guide from NVIDIA

    - all GDC content from Nvidia is now available for download (free login required)

    archive / summary

  • AMD GCN ISA: a first dive

    - shows which tools are available to look at the shader disassembly for AMD GPUs

    archive / summary

  • high-quality object-space dynamic ambient occlusion for characters

    - preprint of I3D paper that will be presented in May

    archive / summary

  • [pdf] - nvidia vulkan update - GTC 2019

    - overview of the latest extensions added to Vulkan on Nvidia GPUs

    archive / summary

  • A tour of Granite’s Vulkan backend – Part 1

    - discusses the authors' thoughts about abstraction levels in graphics APIs

    archive / summary

  • THE STORY OF THE 3DFX VOODOO1

    - provides a look at the 3DFX VOODOO1 GPU from the mid

    archive / summary

  • Unity - Grass Shader

    - a tutorial that explains how to render grass using Unity

    archive / summary

  • 2d Raymarched Smoke

    - walkthrough of a simple cloud shading setup using the Unity shader graph system

    archive / summary

  • Bringing GPU acceleration to Windows containers

    - with Windows Server 2019 or Windows 10, version 1809 GPU acceleration for Direct3D based workloads...

    archive / summary

  • Alternative Take on the Split Sum Approximation for Cubemap Pre-filtering

    - describes how cubemap pre-filtering for image-based lighting is done in Unity’s HD Render Pipeline...

    archive / summary

  • New in D3D12 – GPU-Based Validation (GBV) is now available for Shader Model 6.x

    - windows update 19H1 supports GPI based validation with shader model 6, generated by the [DXC](http...

    archive / summary

  • Creation Graphs

    - presents the Creation Graph - a graph-based system that allows the definition of functionality, wh...

    archive / summary

  • Technically Art: Issue 12 (05.04.2019)

    - collection of tweets related to a variety of tech art articles

    archive / summary

  • GDC 2019 - Vault

    - videos and slides for GDC 2019 have been released on the vault

    archive / summary

  • Anti-Ghosting with Temporal Anti-Aliasing

    - presents techniques used to alleviate ghosting in the TAA solution of "The Grand Tour Game"

    archive / summary

  • Keeping the Blue Side Up: Coordinate Conventions for OpenGL, Metal and Vulkan

    - presents the coordinate conventions for Metal, OpenGL and Vulkan

    archive / summary

  • Reverse engineering the rendering of The Witcher 3, part 13a - witcher senses (object...

    - series part 1 of the reverse engineering of The Witcher senses

    archive / summary

  • Reverse engineering the rendering of The Witcher 3, part 13b - witcher senses (outlin...

    - reverse engineering of The Witcher sense effect - show how the outline for objects is generated

    archive / summary

  • Reverse engineering the rendering of The Witcher 3, part 13c - witcher senses (fishey...

    - explains how the inputs from part 1 and 2 of the series are combined using a fullscreen effect

    archive / summary

  • GPU Path Tracing in Unity – Part 3

    - part 3 of tutorial series in building a path tracer in Unity

    archive / summary

  • NVIDIA Announces Nsight Graphics 2019.2!

    - new Nsight graphics release adds improved DXR support, D3D12 fence visualization and Vulkan suppor...

    archive / summary

  • Autodesk - A Surface Standard

    - whitepaper presenting the Autodesk uber surface shader based on the Arnold shading model

    archive / summary

  • Advanced Map Shading

    - presents how to render maps using WebGL - shows how to convert color maps to elevation

    archive / summary

  • game developers conference 2019 links

    - collection of links to presentations from GDC 2019

    archive / summary

  • Resources for Learning Graphics Programming

    - collection of resources aimed at helping beginners get started with graphics programming

    archive / summary

  • Variable Rate Shading: a scalpel in a world of sledgehammers

    - overview of Variable Rate Shading which is starting to become part of the D3D12 API

    archive / summary

  • New in D3D12 – DirectX Raytracing (DXR) now supports library subobjects

    - next Windows update will add support for library subobjects

    archive / summary

  • [video] Khronos - 2019 GDC

    - youtube playlist with all Khronos talks from GDC 2019

    archive / summary

  • A hybrid rendering pipeline for realtime rendering: (When) is raytracing worth it?

    - the author presents his thoughts on the current state of raytracing in games

    archive / summary

  • stable filtering — part 2

    - explores a stable filter further - presents a new test that can be used to validate the filter qua...

    archive / summary

  • Arm Releases Vulkan Best Practices for Mobile Developers

    - ARM released a best practice guide for Vulkan - consists of runnable samples that show best

    archive / summary

  • Reverse engineering the rendering of The Witcher 3, part 12 - stupid sky tricks

    - look at the disassembly for parts of the skydome, sun, and stars shader from The Witcher

    archive / summary

  • Using AMD FreeSync 2 HDR: Color Spaces

    - covers overview of color theory, color spaces, and encoding

    archive / summary

  • Tips and Tricks: Ray Tracing Best Practices

    - list of best practices for ray tracing - how to manage the acceleration structure construction and...

    archive / summary

  • PIX 1903.26 – Occupancy for Turing GPUs and Variable Rate Shading

    - occupancy graph is now supported on Turing GPUs too

    archive / summary

  • Flipping the Vulkan viewport

    - a small article explaining the difference in the viewport coordinate system when using Vulkan comp...

    archive / summary

  • A Multi-Faceted Exploration (Part 4)

    - presents how to precalculate an energy preserving microfacet BRDF with a diffuse

    archive / summary

  • An unbiased look at real-time raytracing

    - presents the authors' views on "do"'s "do not"'s for the future use of raytracing in games

    archive / summary

  • Unreal Engine GDC 2019 tech talks now available online

    - unreal tech talks from GDC 2019 are available

    archive / summary

  • World of Warcraft uses DirectX 12 running on Windows 7

    - the latest update adds support to run the D3D12 game on windows 7

    archive / summary

  • Source Code for Ray Tracing Gems: High-Quality and Real-Time Rendering with DXR and O...

  • Adventures in Sampling Points on Triangles (Part 1.5): Reader Mail and Followups

    - follow up to the post discussed in [issue 75](/post/graphics

    archive / summary

  • PIX 1903.12 – High Frequency Counters

    - pix for windows now supports High-Frequency Counters

    archive / summary

  • Wolfenstein: Ray Tracing On using WebGL1

    - a ray tracing system for Wolfenstein 3D using only WebGL 1

    archive / summary

  • Learning DirectX 12 – Lesson 4 – Textures

    - explains the concepts of textures, mip-mapping, sampling

    archive / summary

  • A Low-Distortion Map Between Triangle and Square

    - a new low distortion mapping between squares and triangles that is also cheap to compute

    archive / summary

  • i3D 2019 - Program

    - program for the I3D conference in Montreal has been published

    archive / summary

  • Making your BVH faster

    - presents 3 optimizations that can be applied to BVH to increase performance

    archive / summary

  • Real-Time Continuous Level of Detail Rendering of Point Clouds

    - a new technique for continuous level of detail generation of point clouds, designed for VF applica...

    archive / summary

  • Reverse engineering the rendering of The Witcher 3, part 11 - lightnings

    - explains how the lightning effect in The Witcher 3 has been implemented

    archive / summary

  • stable filtering — part 1

    - explanation of half-pel filters - shows properties of different filters common in video compressio...

    archive / summary

  • Vulkan Memory Allocator Survey March 2019

  • Hello, bgfx!

    - getting started guide that shows how to use the bgfx library

    archive / summary

  • The rise of wgpu

    - overview of the state of graphics APIs in Rust - presents wgpu

    archive / summary

  • Visual Effect Graph Samples

    - overview of particle system samples that have been created with the Visual Effect Graph in Unity

    archive / summary

  • Ray Tracing Gems

    - an unofficial updated version of Ray Tracing Gems with fixes for the errors found in the original ...

    archive / summary

  • Getting a Vulkan application up and running on a low-spec device with buggy drivers

    - presents how to find a GPU crash on a low-end Vulkan device

    archive / summary

  • GDC 2019 Presentations

    - overview of all sessions AMD is involved with during GDC 2019

    archive / summary

  • Ray Tracing Gems - hybrid rendering for real-time ray tracing

    - the chapter describes the hybrid rendering pipeline used in the PICA PICA demo

    archive / summary

  • Ray Tracing Gems

    - Ray Tracing Gems is now available as open access book

    archive / summary

  • Adventures in Sampling Points on Triangles (Part 1)

    - presents a method to distribute sampling points within a triangle taking advantage of sub

    archive / summary

  • SampleZoo - Simple implementations of sampling patterns, with objective tests to comp...

    - collection of different sampling patterns - explains the patterns and the characteristic of ...

    archive / summary

  • Efficient Generation of Points that Satisfy Two-Dimensional Elementary Intervals

    - presents a new algorithm that allows to efficiently and incrementally generate stratified sample p...

    archive / summary

  • Shader Convertion Part 2 (Liquid, Triplanar, Waterfall)

    - shows how to implement a fluid like movement inside an object, tri

    archive / summary

  • Halftone Shading

    - shows how to implement halftone toon shading with Unity

    archive / summary

  • Programming HDR monitor support in Direct3D

    - documents the experiments with HDR support using all 3 different hardware vendors

    archive / summary

  • Programming FreeSync 2 support in Direct3D

    - presents how FreeSync2 supports HDR and variable refresh rate

    archive / summary

  • How Magnum does GFX API enum mapping

    - shows the method used to abstract pixel formats between OpenGL and Vulkan using an external ...

    archive / summary

  • SRP Batcher: Speed up your rendering!

    - explains the design of the new Unity batching system

    archive / summary

  • Color Spaces

    - in-depth discussion of color spaces - shows how the color response curve influences which color ab...

    archive / summary

  • Vulkan GPU - Assisted Validation

    - whitepaper explains how to enable GPU assisted validation

    archive / summary

  • Thoughts on light culling: stream compaction vs flat bit arrays

    - walkthrough of two algorithms for forward culling techniques

    archive / summary

  • texture level of detail strategies for real-time ray tracing

    - presents multiple approaches to calculate MIP mapping textures when using raytracing

    archive / summary

  • Enemy health bars in 1 draw call in Unity

    - explains how to use GPU instancing - to render health bars for individual objects

    archive / summary

  • Scalable Ambient Obscurance for the Mathematically Uninclined

    - implementation walkthrough of the OpenGL Scalable Ambient Obscurance (SAO) algorithm

    archive / summary

  • My take on shaders: Parallax effect (Part I)

    - shows how to implement a parallax effect in the pixel shader

    archive / summary

  • Turing - Tensor Core Extension - VK_NV_cooperative_matrix

    - Vulkan extension that exposes NVIDIA Tensor Cores on Turing GPUs

    archive / summary

  • [Video] MicroSplat StochasticTextureClusters

  • Introduction to Convolution Integrals

    - great visual explanation of Convolution Integrals

    archive / summary

  • Interactive light map and irradiance volume preview in Frostbite

    - chapter from the [Ray Tracing Gems](http://www.realtimerendering.com/raytracinggems/) book

    archive / summary

  • Rendering process in Shadow Fight 3

    - shows the frame breakdown of Shadow Fight 3 - rendering approach designed to reduce the number of ...

    archive / summary

  • Friday Facts #281 - For a Few Frames More

    - presents performance optimizations done for the 2D rendering system

    archive / summary

  • Camera Rays

    - shows how to set up full-screen quad geometry data so that attribute interpolation can be used to ...

    archive / summary

  • Pixel Spirit cards

    - card deck that introduces visual shapes and GLSL code required to create them

    archive / summary

  • Emulating Command Buffers in OpenGL - Part 2

    - presents a brief look at the performance of emulating a custom command buffer format on top of Ope...

    archive / summary

  • Creating an Interactive Vertex Effect using Shader Graph

    - explains how to create a pulsating vertex effect using Unity Shader Graph and the lightweight rend...

    archive / summary

  • Shader Debugging for BGFX Rendering Engine

    - shows how debug compute shaders when using BGFX - a brief introduction into what is necessary to c...

    archive / summary

  • RadeonSI Picks Up Primitive Culling With Async Compute For Performance Wins

    - open-source AMD Linux driver adds support to use async compute to cull primitives before the verte...

    archive / summary

  • Unreal Engine 4.22 Preview

    - added support for ray and path tracing for the D3D12 backend

    archive / summary

  • Procedural Stochastic Texturing in Unity

    - Unity provides a plugin that implements the tiling stochastic texturing approach presented in issu...

    archive / summary

  • Experience everything Unreal and more at GDC 2019

    - list of Unreal events/talks/presentations that will take place at GDC

    archive / summary

  • WebGL 2.0—Why It’s the Path to Stable Open Standards-based 3D Web Graphics

    - presents a brief history of the development of WebGL and it's adoption

    archive / summary

  • Adding point and directional lights to a physically based renderer

    - presents the equations necessary to express point

    archive / summary

  • Lazy person's tone mapping

    - presents a simplistic approach to tone mapping results from a renderer

    archive / summary

  • Basic Color Science for Graphics Engineers

    - presents how the RGB color representation is based on human vision

    archive / summary

  • Crytek Presentations

  • Unity GPU culling experiments Part2 – optimizations

    - presents how to optimize the compaction pass in a GPU culling pipeline

    archive / summary

  • Fast, Constant Time Sphere Indexing, Part 2

    - shows how to simplify the math for constant time sphere indexing (the technique was described in i...

    archive / summary

  • NVIDIA Announces Nsight Graphics 2019.1

    - enables debugging of GPU hangs with D3D12 using Nvidia aftermath

    archive / summary

  • the rendering techniques of deus ex and tomb raider

    - presentations from Siggraph 2015 have been published

    archive / summary

  • Direct3D 11 on 12 Updates

    - overview of improvements to the system that allows D3D11 applications to be run using D3D12

    archive / summary

  • Thoughts on graphics APIs and libraries

    - discusses author's view on the state of low-level graphics APIs (Vulkan, D3D12, Metal)

    archive / summary

  • “Ray Tracing Gems” preprints available part by part this month

    - every few days a new preprint article from the "Ray Tracing Gems" book will be released

    archive / summary

  • Learning D3D12 from D3D11 - Part 2: GPU Resources, Heaps, and Descriptors

    - part 2 of getting started with D3D12 for programmers with D3D11 experience, part 1 discussed in we...

    archive / summary

  • My take on shaders: UI SDF Icon shader

    - shows how to sample a signed distance field in a Unity UI shader

    archive / summary

  • Approximating water effects using terrain height maps part 1: Reflections

    - discusses screen space reflection and planar reflections techniques

    archive / summary

  • Decoding a projection matrix

    - show how a projection matrix is formed - explains GPU clipping and how it relates to the projectio...

    archive / summary

  • [twitter] texture minification using mip-mapping

    - twitter thread discussing mip-map selection algorithms

    archive / summary

  • An Intro to Physically Based Rendering for Artists and Programmers - Part 1

    - introduction into physically based shading

    archive / summary

  • Evenly Distributing Points in a Triangle

    - presents a technique to distribute an infinite sequence of points on the surface of an arbitrary t...

    archive / summary

  • De-gamma your texture kid!

    - the article points out that albedo textures are commonly stored in sRGB color space and need...

    archive / summary

  • Realistic Rendering Approaches for Snow Covers

  • 'Infinite' sky shader for Unity

    - a short post that shows how to make an object appear infinitely large without clipping artif...

    archive / summary

  • Directional Shadows Cascaded Maps

    - extends the custom scriptable rendering pipeline, the previous part was covered in [issue 66...

    archive / summary

  • Technically Art: Issue 3 (01.02.2019)

    - weekly series with twitter posts about tech art techniques and ideas

    archive / summary

  • Getting Started Learning Tech Art & Unity Shader Writing

    - summary of resource about getting started with tech art

    archive / summary

  • PIX 1901.28 – Timing Data Improvements and support for new GPUs

    - new PIX for windows version - performance counters are now supported on AMD Radeon 7 GPUs and NVID...

    archive / summary

  • New in D3D12 – DRED helps developers diagnose GPU faults

    - D3D12 adds support for DRED (device removed extended data) in the latest windows insider preview b...

    archive / summary

  • A Multiple-Scattering Microfacet Model for Real-Time Image Based Lighting

    - extension to real-time image based lighting models

    archive / summary

  • Enterprise PBR Shading Model

    - explains the PBR shading model - a combination of 3 BSDFs that allow expressing a large number of ...

    archive / summary

  • Raymarching Workshop Course

    - shader workshop that uses Shadertoy to teach raymarching techniques

    archive / summary

  • Vulkan - GPU-Assisted Validation

    - latest Vulkan SDK version (1.1.97.0) adds GPU assisted validation

    archive / summary

  • Re-reading An Introduction to Ray Tracing

    - the article discusses his favorite chapters and insights when looking back at the original "An Int...

    archive / summary

  • Classical corner cases

    - list of common problems encountered when using Shadertoy and how to solve them

    archive / summary

  • Khronos GDC 2019 - Activity Overview

    - list of sessions by Khronos and related talks that will be taking place during GDC this year

    archive / summary

  • Technically Art: Issue 2 (25.01.2019)

    - issue 2 of weekly tech art series, contains a collection of twitter post showing interesting art a...

    archive / summary

  • My take on shaders: Color grading with Look-up Textures (LUT)

    - describes lookup table based (LUT) color grading in LDR color space

    archive / summary

  • Moving from OpenGL to Metal

    - explains how to port an existing iOS OpenGL application to use Metal

    archive / summary

  • Volume Rendering with WebGL

    - implementation of ray marching - renders the back faces of the bounding volume to determine on whi...

    archive / summary

  • Implementation of Fast and Adaptive Procedural Cellular Noise

    - cellular noise created from a quadtree grid structure

    archive / summary

  • Reverse engineering the rendering of The Witcher 3, part 10 - distant rain shafts

    - explains how the distant rain shafts in The Witcher 3 are implemented

    archive / summary

  • “An Introduction to Ray Tracing” is now free for download

    - the first book on raytracing "An Introduction to Ray Tracing" from 1989 is now freely available as...

    archive / summary

  • Q2VKPT

    - full path tracing implementation of Quake 2 - implemented Vulkan and the RTX raytracing extension

    archive / summary

  • Technically Art: Issue 1 (18.01.2019)

    - start of weekly curation of tweets about 3D (technical) art, shaders, and VFX

    archive / summary

  • Learning D3D12 from D3D11 - Part 1: Getting Started, Command Queues, and Fencing

    - start of series for programmers with D3D11 experience starting to learn D3D12

    archive / summary

  • WebGL + Rust: Basic Water Tutorial

    - explains how to render water using WebGL, Rust, and WebAssembly

    archive / summary

  • Ice Shader – Hard Edges in Vertex Shader

    - shows how to use screen space derivatives to create hard edges on a mesh in the pixel shader

    archive / summary

  • An Explanation of the Rendering Equation

  • Programming tricks in Shadertoy / GLSL

    - list of common patterns for shadertoy programming

    archive / summary

  • Procedural Stochastic Textures by Tiling and Blending

    - preprint of the article to appear in GPU Zen 2 talking about the implementation details (C++ and G...

    archive / summary

  • How to Start Learning Computer Graphics Programming

    - walkthrough of steps to learn graphics programming

    archive / summary

  • 16x AA font rendering using coverage masks, part III

    - explains how to rasterize the glyphs from a font into a texture. Providing the coverage informatio...

    archive / summary

  • Rasterization in One Weekend, Part III

    - presents what vertex attributes are and how they are interpolated to deal with perspective distor...

    archive / summary

  • A Primer On Efficient Rendering Algorithms & Clustered Shading

    Part 1 of the article: - explains how classical forward/deferred pipelines work and how tiled and c...

    archive / summary

  • The Rendering of Rise of the Tomb Raider

    - frame breakdown of the Rise of the Tomb Raider with D3D12 on PC

    archive / summary

  • Color Spread Post-Processing Effect Tutorial in Unity

    - explains how to apply an expanding color effect that converts the world from greyscale back to col...

    archive / summary

  • Containerized Shader Compilers

    - shows how to set up a Docker container image that is able to run shader compilers

    archive / summary

  • Unified Resource State Management for Vulkan and Direct3D12

    - explains the state management system implemented for the Diligent Engine

    archive / summary

  • Art and Technology at Pixar (SIGGRAPH Asia 2018 Course)

    - course notes for the Siggraph Asia 2019 course - presenting the newest developments and techniques...

    archive / summary

  • Game Tech Deep Dive: The fast and furious window shaders of Forza Horizon 4

    - explains the parallax mapping technique used to represent the interiors of buildings as seen throu...

    archive / summary

  • Vulkan sparse binding - a quick overview

    - explains sparse binding and residency - sparse binding lifts the requirement that resource memory ...

    archive / summary

  • Reverse engineering the rendering of The Witcher 3, part 7a - average luminance (dist...

    - describes how the histogram of pixel brightness is collected using a compute shader in The Witcher...

    archive / summary

  • Adaptive Exposure from Luminance Histograms

    - explains how to use D3D12 to calculate a histogram of pixel brightness in a compute shader

    archive / summary

  • Rasterization in One Weekend, Part II

    - part two of rasterization implementation article series with C++

    archive / summary

  • RenderDoc Survey 2018

  • Intel's Architecture Day 2018: The Future of Core, Intel GPUs, 10nm, and Hybrid x86

    - presenting an overview of next-generation Intel architecture

    archive / summary

  • NVIDIA Announces Nsight Graphics 2018.7

    - acceleration structure visualization for DXR (DirectX Raytracing) and Vulkan

    archive / summary

  • Radeon GPU Profiler 1.4

    - added support for OpenCL profiling

    archive / summary

  • Radeon Software Adrenalin 2019 Edition 18.12.2 Highlights

    - new AMD driver adds support for VK_EXT_inline_uniform_block, VK_KHR_swapchain_mutable_format, VK_E...

    archive / summary

  • Breaking down barriers – part 6: experimenting with overlap and preemption

    - the final part of the series - presents how different GPUs are able to overlap the workload betwee...

    archive / summary

  • Real-time fluid simulation in shadow of the tomb raider

  • Scriptable Render Pipeline - Single-Pass Forward Rendering

    - next part of the series about the development of a forward shading pipeline using the Unity script...

    archive / summary

  • Shading Atlas Streaming

    - object based shading approach designed for VR rendering

    archive / summary

  • Metal Documentation Index

    - user created index-page for the Apple Metal documentation

    archive / summary

  • Going slightly physically based

    - shows how to validate using image comparison and using a furnace test

    archive / summary

  • Khronos - 2018 SIGGRAPH Asia

    - Khronos talks from Siggraph 2018 Asia - talks about Vulkan

    archive / summary

  • Code reviews - Lamorna Engine

    - series of videos walking through the implementation of a software renderer written in multithreade...

    archive / summary

  • The importance of good noise

    - explains why noise is significant in computer graphics and how to animate blue noise over time so ...

    archive / summary

  • Tech Focus: Wolfenstein 2's Variable Rate Shading: Nvidia Turing Analysis!

  • Directional Lightmap Encoding Insights

    - new encoding model for Ambient Highlight Direction (AHD) lightmaps that eliminate common interpola...

    archive / summary

  • WebGPU - An Explicit Graphics API for the Web

  • Vulkan Raytracing - bunny and teapot

    - part 2 of Vulkan raytracing series - extends the application with multiple 3D meshes, texturing, s...

    archive / summary

  • A radiative transfer framework for non-exponential media

    - development of a new rendering framework for transmittance for participating media that enables no...

    archive / summary

  • Breakdown: Animated Raindrop Material in UE4

    - walkthrough of the implementation of a rain material using the Unreal Engine 4 shader graph

    archive / summary

  • How to Sanity Check your Spherical Harmonics Projection Code

    - a short summary of what spherical harmonics are and what they are used for

    archive / summary

  • Procedural Color - Introduction

    - article series about procedural routines for color generation

    archive / summary

  • Encoding Indirect Command Buffers on the GPU

    - a sample that explains how to use Metal to generate render commands on the GPU

    archive / summary

  • Sampling the GGX Distribution of Visible Normals

    - explains a new model for sampling visible normals of the GGX distribution

    archive / summary

  • Twitter Thread - Where do the BRDF formulas come from? How can we make our own?

    - twitter thread that discusses what a BRDF is and how they are formed

    archive / summary

  • Halcyon Architecture - Director's Cut

    - a single slide-deck that will evolve and serve as a single reference point for information about t...

    archive / summary

  • glsl-reduce

    - the walkthrough explains how to use GLSL-reduce to simplify a GLSL shader and preserve certain con...

    archive / summary

  • 2D SDF Shadows

    - a tutorial explains how to implement ray traced shadows when using a signed distance field to repr...

    archive / summary

  • Reweighting Firefly Samples for Improved Finite-Sample Monte Carlo Estimates

    - interactive WebGL demo for the paper describing a technique to reduce firefly artifacts from path ...

    archive / summary

  • Bringing Ray-tracing into Remedy‘s Northlight Engine

  • Real-Time Fluid Simulation in Shadow of the Tomb Raider

  • Vulkan & OpenGL CAD Mesh Shader Sample

    - Nvidia sample for mesh shaders using Vulkan and OpenGL

    archive / summary

  • How does a GPU shader core work?

    - explains the GPU programming model, how shaders are executed

    archive / summary

  • All about coding things

    - twitter collection of many graphics and game programming related links

    archive / summary

  • Foggy Window Shader in Unity

    - explains how to implement a shader that simulates a foggy window effect applied to a plane in 3D s...

    archive / summary

  • Using A Custom Toolchain In Visual Studio With MSBuild

    - explains how to integrate the DirectX shader compiler (DXC) into the Visual Studio build system (m...

    archive / summary

  • Rendering related threads

    - collection of rendering related twitter threads

    archive / summary

  • Vulkan education survey

  • Model for Real Time—Beyond Counting Polygons

    - beginner level overview about consideration for modeling techniques related to performance and min...

    archive / summary

  • Fast, Constant Time Sphere Indexing, Part 1

    - article with interactive and live tweakable examples

    archive / summary

  • Parallel Shader Compilation for Ray Tracing Pipeline States

    - explains how to use new D3D12 API additions to precompile shaders for DirectX raytracing in parall...

    archive / summary

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

  • Ni No Kuni 2: frame analysis

    - frame breakdown of an interior scene in Ni No Kuni 2

    archive / summary

  • Low-Discrepancy Blue Noise Sampling

  • Rasterization in One Weekend, Part I

    - part 1 of the series on writing a software rasterizer in C++

    archive / summary

  • Vulkan Synchronization Primer - Part I

    - overview of the synchronization primitives of the Vulkan API

    archive / summary

  • Vulkan Synchronization Primer - Part II

    - the distinction between memory and execution barrier

    archive / summary

  • Modern graphics abstraction and real-time ray tracing

    - overview of architecture - multiple render backends are supported at the same time

    archive / summary

  • Web High Level Shading Language

    - a new shading language, designed for use with WebGPU

    archive / summary

  • 16x AA font rendering using coverage masks, part II

    - part 2 of the series on font rendering - shows the artifacts a regular grid sampling pattern cause...

    archive / summary

  • Microsoft's New Open-Source Project Is Shader Conductor For Cross-Compiling HLSL

    - new open source library from Microsoft that combines the [DirectXShaderCompiler](https://github.co...

    archive / summary

  • A simple method to construct isotropic quasirandom blue noise point sequences

    - presents an approach to generate a quasirandom blue noise point sequence

    archive / summary

  • Our Machinery Episode 3: Cross-Platform Graphics

    - podcast episode discusses how to design a cross-platform API, problems, and considerations

    archive / summary

  • Reverse engineering the rendering of The Witcher 3, part 6 - sharpen

    - reverse engineering the sharpening filter from The Witcher 3 and explains how it works step by ste...

    archive / summary

  • There is a way to query GPU memory usage in Vulkan - use DXGI

    - shows that using DXGI functionality can be used to keep track of Vulkan memory usage on Windows

    archive / summary

  • Vulkan with DXGI - experiment results

    - experiments with using DXGI for memory reporting when using Vulkan

    archive / summary

  • Experimenting with VK_GOOGLE_display_timing, taking control over the swap chain

    - the extension allows the application to collect timing information from the presentation engine an...

    archive / summary

  • How To: Data Lookups Via Raytracing

    - explains how ray-tracing could be used for arbitrary data

    archive / summary

  • niagara: Depth pyramid for occlusion

    - shows how to generate a depth pyramid for Vulkan

    archive / summary

  • niagara: Occlusion culling

  • Graphics Programming - Resources for Beginners

    - list of resources for beginners that are looking to get started with graphics programming

    archive / summary

  • Task list for VK_EXT_scalar_block_layout

    - new Vulkan extension that allows usage of the C++ memory layout in Vulkan constant and structured ...

    archive / summary

  • Recovering the Scale, Rotation and Translation Matrices from the Model Matrix

    - presents how to recover the scale, rotation, and position from a model matrix

    archive / summary

  • CppCon 2018: Valentin Galea “Rapid Prototyping of Graphics Shaders in Modern C++”

  • Optimize your engine using compute @ 4C Prague 2018

    - overview of the compute shader execution and pipeline model

    archive / summary

  • Intro to gpu scalarization – part 1

    - overview of the GPU execution model, the difference between scalar and vector registers and instru...

    archive / summary

  • Intro to gpu scalarization – part 2

    - walkthrough of two different strategies to scalarize the forward+ shading loop

    archive / summary

  • SIGGRAPH Asia 2018 – Technical Papers Trailer

  • niagara: GPU object culling

  • niagara: Faster culling and LOD

  • VK_NVX_raytracing - Triangle

    - A walkthrough that explains all the concepts and shaders necessary to ray trace a single colored t...

    archive / summary

  • Accelerated Ray Tracing in One Weekend in CUDA

    - explains how to convert the code from the [Ray Tracing in One Weekend](http://in1weekend.blogspot....

    archive / summary

  • 2D Signed Distance Field Basics

    - unity tutorial that explains how to create a signed distance field for a 2D circle and rectangle

    archive / summary

  • Picking and Hit-Testing in Metal

    - explains how to implement 3D picking in a Metal application

    archive / summary

  • Few words about HLSLexplorer

    - a tool, now open source, that allows the compilation of HLSL and shows the disassembly in DXBC and...

    archive / summary

  • Image Editor Effects

  • An Adaptive Parameterization for Efficient Material Acquisition and Rendering

    - paper on BRDF measurement which proposes a new parameterization that adapts to the behavior of the...

    archive / summary

  • halcyon + vulkan

    - presents an architecture overview of the engine - render backends are implemented as DLLs that can...

    archive / summary

  • 2d graphics in Rust discussion - A look at GPU memory management

    - discusses considerations when designing memory components for use with gfx

    archive / summary

  • DXRPathTracer

  • 16xAA font rendering using coverage masks, part I

    - presents a technique for font rendering that operates on coverage instead of visibility

    archive / summary

  • PIX 1810.24 – Support for final DirectX Raytracing API

    - new PIX version that supports the final DirectX Raytracing API version

    archive / summary

  • NVIDIA Announces Nsight Graphics 2018.6

    - full Linux support for Vulkan and OpenGL 4.5 - support for final DirectX Raytracing API and new su...

    archive / summary

  • Existing BC7 codecs don't handle textures with decorrelated alpha channels well

    - shows that BC7 encoders produce compression artifacts when the alpha channel is unrelated to the R...

    archive / summary

  • profiling: the case of the missing milliseconds

    - case study of a performance regression in League of legends

    archive / summary

  • Effectively Integrating RTX Ray Tracing into a Real-Time Rendering Engine

    - provides best practices for applications that use the RTX API

    archive / summary

  • large scale ambient occlusion: eliminating light leaks

    - presents how to reduce light leaks in a large scale global illumination system

    archive / summary

  • SPIR-V Compression: SMOL vs MARK

    - comparison of two libraries to compress SPIR-V shaders SMOL

    archive / summary

  • Custom Shaders HLSL and Core Library

    - a tutorial that explains how to create a custom shader for use with the scriptable render pipeline...

    archive / summary

  • Introducing Zink, an OpenGL implementation on top of Vulkan

    - mesa gallium driver that implements partial support for OpenGL 2.1, and OpenGL ES 1.1 and 2.0 on t...

    archive / summary

  • Graveyard Keeper: How the graphics effects are made

    - shows how the lighting system in the 2D game was implemented

    archive / summary

  • niagara: Tuning mesh shaders

  • niagara: Multi draw indirect

  • Mipmapping with Bidirectional Techniques

    - brief overview about what mips are and how to calculate mip selection in a rasterizer

    archive / summary

  • Entity-Component-Systems and Rendering

    - explains the plugin architecture that enables efficient implementation of high

    archive / summary

  • DXC Cookbook: HLSL Coding Patterns for SPIR-V

    - SPIR-V shaders can only access global resources - HLSL is very flexible with resource usage

    archive / summary

  • River Editor: Water Simulation in Real-Time

    - walkthrough of the development of real-time GPU based water simulation

    archive / summary

  • Video Series: Practical Real-Time Ray Tracing With RTX

    - post that provides links to talks with summaries about ray tracing on Nvidia RTX hardware

    archive / summary

  • Turing Texture Space Shading

    - overview of texture space shading - technique decouples shading from rasterization rate

    archive / summary

  • MinLod: A Cheap&Simple Method to Increase Texture Details at Acute Angles

    - look at how to adjust mip selection to favor noise over more detail at acute angels

    archive / summary

  • Visualizing quaternions - An explorable video series

  • niagara: Parsing SPIRV

  • niagara: Meshlet culling

  • HLSL - Spherical-Harmonics

  • SIGGRAPH 2018 Course: Machine Learning and Rendering

    - all content from the SIGGRAPH 2018 course has been published

    archive / summary

  • D3d12info

  • Physically Based Rendering, online

    - the complete 3rd edition of Physically Based Rendering is now online for free

    archive / summary

  • From screen space to voxel space

    - summarizes voxel ray tracing implementation, memory and performance optimizations

    archive / summary

  • Adding multiple bounces

    - next part in the Metal ray tracer series that adds support for multiple bounces to simulate global...

    archive / summary

  • Improving material system

    - extending the material system of the Metal raytracer so that multiple materials can be expressed a...

    archive / summary

  • Multilayer Light Simulations: More Beautiful Images, Faster

  • Flavors of Sampling in Ray Tracing

    - overview of the strengths and weaknesses of different sampling techniques in ray tracing

    archive / summary

  • niagara: Future of rasterization

  • niagara: Optimizing mesh rendering

  • How to make a fake interior effect with unity using reflection probes

    - shows how to implement interior mapping using the Unity reflection probe system

    archive / summary

  • Rust Mesh Optimizer

    - rust version of the [meshoptimizer](https://github.com/zeux/meshoptimizer) library is now availabl...

    archive / summary

  • Global Illumination in Godot Engine @ Gamelab BCN 2018

  • How I Grow with Grass Shader

    - walkthrough of a Godot shader that uses particles to spawn vegetation meshes based on height map a...

    archive / summary

  • Alpha blending using pre-multiplied alpha

    - a brief summary of the usage of premultiplied alpha using Vulkan

    archive / summary

  • Distance Fields

    - explains an O(n) algorithm that calculates 2D distance fields by operating on rows and treating sa...

    archive / summary

  • 2018 XDC - Khronos

    - slides from XDC ([X.Org](http://x.org/) Developer's Conference)

    archive / summary

  • Mesh Shader - Implicit Subdivision on the GPU

  • Introduction to Real-Time Ray Tracing with Vulkan

    - explains the Vulkan ray-tracing extension - contains an overview of the ray tracing pipeline, the ...

    archive / summary

  • Deep Compositing and Reprojection

    - explains the mathematical foundation behind deep composition that allows compositing of volumetric...

    archive / summary

  • Rendering the Moana Island Scene Part 2: A production scene from a hobby renderer

    - walkthrough of the steps required to render the Moana scene in the authors custom path tracer

    archive / summary

  • Project: SDL render batching

    - discusses a change to the SDL render back-end that will batch CPU rendering commands to reduce the...

    archive / summary

  • Gfx-hal Tutorial part 2: Vertex buffers

    - next part of the series on gfx-hal usage (low-level graphics API for Rust)

    archive / summary

  • Ripples For Days

    - explains a water ripple system implementation that uses a top

    archive / summary

  • distance functions

    - updated SDF function for a capped cone, round cone, and an ellipsoid

    archive / summary

  • niagara: Cleaning up

  • niagara: Rendering a mesh

    - Vulkan stream - part 4 - overview and integration of Vulkan extension loader

    archive / summary

  • “Cheap” Diamond Rendering

    - explanation of shader for diamond rendering in a forward rendering architecture

    archive / summary

  • My journey into fractals

    - discussing many aspects of making a fractal-based game

    archive / summary

  • Another View on the Classic Ray-AABB Intersection Algorithm for BVH Traversal

    - presents the steps required to vectorize the Ray-AABB approach by [Andrew Kensler](http://psgraphi...

    archive / summary

  • Running Average Encoding - Why It Works

    - derivation of the progressive spherical Gaussian encoding technique discussed in last week's issue...

    archive / summary

  • Porting My CUDA Path Tracer to ptx-builder/linker

    - explores changes to CUDA path tracer with Rust, what improved since the last post and what problem...

    archive / summary

  • GLSL cross-compiler tool

  • A Comparison of Modern Graphics APIs

    - work in progress post comparing API concepts between D3D12, Vulkan, Metal, and OpenGL

    archive / summary

  • DirectX Raytracing and the Windows 10 October 2018 Update

    - Windows raytracing support is available starting with Windows 10 October 2018 update

    archive / summary

  • Video Series: Real-Time Ray Tracing for Interactive Global Illumination Workflows in ...

    - breakdown of "Real-Time Ray Tracing for Interactive Global Illumination Workflows in Frostbite" in...

    archive / summary

  • Parsing Shader Includes

    - explains how to parse a shader file for includes using regex (implemented using Rust)

    archive / summary

  • SRP101

    - collection of resources to get started with the Unity Scriptable Render Pipeline

    archive / summary

  • Perspective Matrices and Depth

    - visualization of floating point precision when a classical OpenGL projection matrix is used

    archive / summary

  • Art That Moves: Creating Animated Materials with Shader Graph

    - explanation of Unity shader graph nodes - walkthrough of example shaders that allow the creation o...

    archive / summary

  • PIX-1810.02 – Direct3D11 and WinML

    - new PIX features are available with Windows 10 October 2018

    archive / summary

  • Vulkan SDK 1.1.85.0

    - adds support for Turing extensions

    archive / summary

  • Qualcomm Releases Snapdragon Profiler with Vulkan Support

    - new profiler version now supports Vulkan

    archive / summary

  • Turing Variable Rate Shading in VRWorks

    - explains what variable rate shading is and what use cases it enables

    archive / summary

  • Turing Multi-View Rendering in VRWorks

    - explains the recent developments in VR headsets and how Turing offers new hardware solutions...

    archive / summary

  • Spherical Gaussian Encoding

    - a new encoding method for Spherical Gaussians that improves quality from previous encoding m...

    archive / summary

  • Interior Mapping: rendering real rooms without geometry

    - presents a high-level overview of how to implement interior mapping

    archive / summary

  • Efficient Instancing in a Streaming Scenario

    - discusses a technique to generate instanced geometry procedurally on the GPU using OpenGL co...

    archive / summary

  • niagara: Building a Vulkan renderer from scratch*

  • Adaptive GPU Tessellation with Compute Shaders

    - pre-print of an article that will appear in GPU Zen 2

    archive / summary

  • Claybook, raw->typed buffer performance analysis numbers

    - Twitter thread discussing Raw vs. Typed buffer performance on Claybook

    archive / summary

  • CUDA 10 Features Revealed: Turing, CUDA Graphs and More

    - overview of new features included in CUDA 10 - Multi

    archive / summary

  • Voronoi Noise

    - explains how to generate 2D and 3D noise in a Unity shader

    archive / summary

  • Metal Raytracer - Implementing diffuse BRDF

    - extends the Metal raytracer with obj model loading

    archive / summary

  • Mesh Shader Possibilities

    - walkthrough of the geometry pipeline on current GPU architectures and how mesh shaders fit into it...

    archive / summary

  • The Peak-Performance-Percentage Analysis Method for Optimizing Any GPU Workload

    - updated post now includes SM warp-issue-stall metrics

    archive / summary

  • readings on the state of the art in rendering

    - summary of resources for graphics programmers to study and keep up

    archive / summary

  • Custom Pipeline Taking Control of Rendering

    - a tutorial that shows how to implement a custom rendering pipeline in Unity

    archive / summary

  • SIGGRAPH 2018 Tech Talk Videos Now Available!

    - Unreal released the tech talks from SIGGRAPH 2018

    archive / summary

  • Introduction to Turing Mesh Shaders

    - new shader stages on Turing that allows the generation of primitives for direct consumption by the...

    archive / summary

  • Challenges of Rendering an Open World in Far Cry 5

    - talks about the challenges of developing for open world games

    archive / summary

  • A Ray-Box Intersection Algorithm and Efficient Dynamic Voxel Rendering

    - a new algorithm to compute the intersection point and surface normal of an oriented 3D box without...

    archive / summary

  • Breaking down barriers – part 5: back to the real world

    - explains the evolution of the windows graphics driver model from win7 to win10

    archive / summary

  • hybrid raytraced shadows part 2: performance improvements

    - explains optimizations done to the hybrid shadow raytracer

    archive / summary

  • NVIDIA Turing Architecture In-Depth

    - overview of the new Turing hardware architecture

    archive / summary

  • NVIDIA Turing Vulkan/OpenGL extensions

    - an extensive list of OpenGL and Vulkan extensions that expose the new Turing hardware features

    archive / summary

  • Vulkan conditional rendering

    - Vulkan extension that makes it possible to skip parts of command buffers based on the content of a...

    archive / summary

  • Shader Showcase Saturday #9: Interior Mapping

    - overview of the interior mapping technique - showcase of different implementations and links to fu...

    archive / summary

  • roughness mip maps based on normal maps?

    - discussing of a technique that tries to preserve normal map variation by generation MIPs that pres...

    archive / summary

  • Running Microsoft FXC in Docker

    - comparison of DXC (DirectX Shader Compiler) and FXC shader compiler in regards to performance and ...

    archive / summary

  • Running Microsoft DXC in Docker

    - provides a configuration that allows the DXC compiler to run within docker

    archive / summary

  • Signing DXIL Post-Compile

    - explains the process that enables DXIL shaders to be signed after they have been compiled

    archive / summary

  • Metal ray-tracer

    - start of a series of posts that will describe the development of a ray tracer using Metal Performa...

    archive / summary

  • Vulkan has just become the world’s first graphics API with a formal memory model. So...

    - Khronos released provisional material on the memory model for Vulkan

    archive / summary

  • Debugging D3D12 driver crash

    - presents a small cross-vendor library for D3D12 that allows collection of information to narrow do...

    archive / summary

  • The state of Window System Integration (WSI) in Vulkan for retro emulators

    - looks at the state of integration of the Vulkan swap chain with different OS and GPU vendors

    archive / summary

  • Smooth Geometry in Real-Time Rendering

    - discusses challenges and possible solutions to undersampling artifacts on curved geometry

    archive / summary

  • SIGGRAPH 2018 Course: Machine Learning and Rendering

    - links to the presentations from the machine learning and rendering course from Siggraph

    archive / summary

  • DLSS: What Does It Mean for Game Developers?

    - an interview that explains what Nvidias DLSS is (Deep Learning Super Sampling)

    archive / summary

  • Value Noise

    - explains how to generate value noise in a shader

    archive / summary

  • Perlin Noise

    - explains how to generate Perlin noise in a shader

    archive / summary

  • Layered Noise

    - extends the Perlin noise implementation from the previous tutorial to support mixing of multiple l...

    archive / summary

  • Using Command Buffers in Unity: Selective Bloom

    - explains how Unity command buffers enable the extension of the Unity graphics pipeline

    archive / summary

  • Pseudo-bandlimited pixel art filtering in 3D – a mathematical derivation

    - presents a filtering approach for a pixel art style in a 3D environment

    archive / summary

  • Spotlight Team Best Practices: Setting up the Lighting Pipeline

    - in-depth documentation for Unity - explains the most common terms, the difference between the rend...

    archive / summary

  • Real-Time Ray Tracing of Correct* Soft Shadows

    - shows how to reformulate the rendering equation so that stochastic shadows can be combined with no...

    archive / summary

  • API without Secrets: The Practical Approach to Vulkan* Preface

    - start of a new Intel series about Vulkan - the focus is on the high

    archive / summary

  • API without Secrets: The Practical Approach to Vulkan* - Part 1

    - investigates the performance effect of different acquire → render → present approaches

    archive / summary

  • Device Memory Management

    - explains the strategy how GPU memory is currently managed and what allocation strategy is used

    archive / summary

  • Animated Candle Flame write-up

    - tutorial on how to implement a candle flame using 3 separate texture channels and noise distortion...

    archive / summary

  • Reverse engineering the rendering of The Witcher 3, part 5 - drunk effect

    - discusses how the drunk effect in "The Witcher 3" was implemented based on reverse engineering the...

    archive / summary

  • hacking a generic ray-triangle intersector

    - reusing a generic ray-triangle intersection for other calculations such as calculating the distanc...

    archive / summary

  • Looking Through Water Underwater

    - Unity tutorial that extends water with flow map (previous part of the series) to support transpare...

    archive / summary

  • Large scale ambient occlusion: introduction

    - overview how the large-scale ambient occlusion data is baked for Homefront: The Revolution

    archive / summary

  • Baking artifact-free lightmaps on the GPU

    - article discussing what is required to achieve high

    archive / summary

  • Why Clip Transformed Vertices in Clip-Space?

    - explains why clipping happens in 4D clip space before the perspective divide is applied

    archive / summary

  • Siggraph 2018: A developer’s viewpoint

    - blender developers view of the technologies shown at Siggraph

    archive / summary

  • An edited (and extended) version of my OSL BOF talk at SIGGRAPH 2018

  • Contact-hardening Soft Shadows Made Fast

    - explains what contact-hardening shadows are - presents one technique that can be used to implement...

    archive / summary

  • High-Performance Graphics 2018

    - the slides for all talks from the High-Performance Graphics 2018 conference have been uploaded

    archive / summary

  • Radeon GPU Profiler 1.3

    - can now show register and LDS (Local data share) usage as well as theoretical occupancy

    archive / summary

  • GBuffer helper – Packing integer and float together

    - explains how to pack an integer and a floating point number into a single unsigned render target c...

    archive / summary

  • DD2018: Paul Malin - HDR display in Call of Duty

  • Material Advances in Call of Duty: WWII

    - normal and gloss mipmapping - using a shortened normals technique

    archive / summary

  • Tech Note: Shader Snippets for Efficient 2D Dithering

    - present HLSL code snippets that implement different kinds of dithering and an example application

    archive / summary

  • A Life of a Bokeh

    - an in-depth walkthrough of the new Depth of Field implementation in Unreal Engine 4

    archive / summary

  • The Road toward Unified Rendering with Unity’s High Definition Render Pipeline

    - discusses architecture, light culling, clustered lighting implemetation

    archive / summary

  • Efficient Screen-Space Subsurface Scattering Using Burley’s Normalized Diffusion in R...

    - presentation of a screen space subsurface scattering model, they call it the Disney SSS

    archive / summary

  • Real-Time rendering’s next frontier: Adopting lessons from offline ray tracing to rea...

    - start tracing rays where rasterizer has shortcomings

    archive / summary

  • Evenly distributing points on a sphere

    - presents two techniques that improve on existing Fibonacci lattice methods

    archive / summary

  • Differentiable Rendering

    - overview of differentiable rendering - a technique gaining traction in machine learning

    archive / summary

  • Moving Mobile Graphics - SIGGRAPH 2018

    - slides for the Moving Mobile Graphics 2018 course from SIGGRAPH 2018

    archive / summary

  • Journey into rust #2: Compute Shaders

    - Game Of Life implemented using OpenGL compute shaders in Rust

    archive / summary

  • Monte Carlo Integration

    - an in-depth explanation WIP document about Monte Carlo integration

    archive / summary

  • Color in advanced displays: HDR, OLED, AR & VR

    - slides from the SIGGRAPH course - characteristics of an idealized display

    archive / summary

  • Subsurface Scattering for Foliage (without Raytracing!)

    - video tutorial on how to implement a subsurface scattering approximation with unity

    archive / summary

  • Stencil Buffers

    - a tutorial that explains how to use the stencil buffer with Unity

    archive / summary

  • X-Ray Shader Tutorial in Unity

    - a tutorial explains how to create an Overwatch style x

    archive / summary

  • V-EZ

  • SIGGRAPH 2018 Stuff

    - collection of observations and nuggets of information from different SIGGRAPH 2018 sessions

    archive / summary

  • Basic Math for Shaders

    - a visual explanation of foundational linear algebra concepts that are required for shader programm...

    archive / summary

  • Demoscene session at SIGGRAPH 2018

    - video of the demoscene session at SIGGRAPH 2018 - [Clouds in Wande](https://youtu.be/yqA71

    archive / summary

  • Scatter Kernel

    - next part of the series about developing a path tracer using Cuda

    archive / summary

  • Some thoughts re Raytracing post-Siggraph 2018

    - thoughts on open questions in regards to raytracing dynamic, open world type environments

    archive / summary

  • A brief postscript on moment-based order-independent transparency

    - brief discussion of difference between [Moment Transparency](https://dl.acm.org/citation.cfm?id=32...

    archive / summary

  • Pathtracing Coherency

    - look at different ray tracing scenarios and how they influence coherency between neighboring rays

    archive / summary

  • Efficient rendering of layered materials

    - slides for the layered real-time shading model discussed in [issue 38](https://www.jendrikillner.c...

    archive / summary

  • High-Performance By-Example Noise using a Histogram-Preserving Blending Operator

    - slides for the technique discussed in [issue 45](https://www.jendrikillner.com/post/graphics

    archive / summary

  • Fully Automated Mesh UV UnWrapping

  • NVIDIA Announces Nsight Graphics 2018.4

    - added pixel history view for D3D12 and added support for support for Vulkan ray trace extension

    archive / summary

  • GAME RAY TRACING: STATE-OF-THE-ART AND OPEN PROBLEMS

    - overview of the PICA PICA hybrid raytracing pipeline

    archive / summary

  • Not All Blue Noise is Created Equal

    - comparison of 3 techniques to generate blue noise

    archive / summary

  • Integrating clipped spherical harmonics

    - integration of spherical harmonics over spherical polygons

    archive / summary

  • May the Source Be with You: NVIDIA Open Sources Material Definition Language SDK

    - Nvidia open sourced the MDL SDK (Material Definition Language)

    archive / summary

  • Introduction to DirectX RayTracing

    slides and [video](https://youtu.be/Q1cuuepVNoY?t=310) for the "Introduction to DirectX RayTracing" ...

    archive / summary

  • Ray Tracing Minibooks Series released as free pdf

  • SIGGRAPH 2018 Links

    - growing collection of links to SIGGRAPH 2018 content

    archive / summary

  • NVIDIA Reveals Next-Gen Turing GPU Architecture: NVIDIA Doubles-Down on Ray Tracing, ...

    - new GPU architecture from Nvidia - dedicated ray tracing hardware

    archive / summary

  • siggraph course: path tracing in production 2018

    - course notes are available

    archive / summary

  • Khronos - 2018 SIGGRAPH

    - slides and [videos](https://www.youtube.com/watch?v=FCAM

    archive / summary

  • SIGGRAPH 2018 Papers - Machine Learning, Graphics, and Rendering

    - list of author's favorite papers with a brief summary of the content

    archive / summary

  • Fundamentals of color science

    - slides for the Siggraph course about the fundamentals of color science and color management for ga...

    archive / summary

  • Introduction to the Vulkan Graphics API

    - slides for the Siggraph course - provides an overview of all API interfaces required to render 3D ...

    archive / summary

  • Vulkan GPUinfo database - 1.7

  • Imperfect Environment Maps

    - using ideas from imperfect shadow map point-cloud rendering to implement reflections

    archive / summary

  • Musings on cross-platform graphics engine architectures – Part 2

    - breaks down the engine into two separate related concepts, Resource and Command management

    archive / summary

  • High-Performance Graphics 2018

    - slides for most of the talks have already been published

    archive / summary

  • DX12 Ray Tracing Tutorials

    - Nvidia tutorial on how to integrate DirectX raytracing and rasterization so that both rendering pa...

    archive / summary

  • Rendering the Moana Island Scene Part 1: Implementing the Disney BSDF

    . short description of the different aspects of the Disney BSDF, including source code

    archive / summary

  • Screen-space Water Rendering

    - a technique to render screen space water using unity

    archive / summary

  • A Multi-Faceted Exploration (Part 3)

    - improves upon the multiple scattering approximation from the previous part of the series

    archive / summary

  • Shader Graph Updates and Sample Project

    - walkthrough of two vegetation shaders created with the visual shader editor that was added in Unit...

    archive / summary

  • Uniform points in sphere and capped cone

    - how to improve the generation of uniform points in a sphere, disk, and a spherically capped cone

    archive / summary

  • Clipping Objects with a Plane

    - a tutorial that shows how to clip a mesh in a pixel shader against a plane using unity

    archive / summary

  • Confetti Shader Translator - Alpha

  • The other pathtracer 5: Optimizing Triangle-Ray Intersections

    - choosing a different algorithm to optimize triangle

    archive / summary

  • Tiled Blue Noise

    - a quick overview of blue noise tiled with various tile sizes from 16x16 to 256x256

    archive / summary

  • A Cross-platform Evaluation of Graphics Shader Compiler Optimization

    - explores source to source optimizations techniques using the LunarGlass framework with GLSL shader...

    archive / summary

  • The State of GPGPU in Rust

    - overview of libraries available to write GPGPU applications using the Rust programming language

    archive / summary

  • Lighting the Unlit

    - description of the "unlit" light system being used

    archive / summary

  • Metal shaders: blending basics

    - a short explanation and Metal shader code for different blend modes as described in the PDF specif...

    archive / summary

  • Shader Showcase Saturday #4

    - overview of different fire effects that are based around animated noise textures

    archive / summary

  • Shader Showcase Saturday #5

    - overview of different rain effects with links to more in

    archive / summary

  • Microsoft/glTF-SDK

  • Filament - Physically-based rendering engine

    - great in-depth discussion of the full PBR rendering pipeline, documentation for the [Filament e...

    archive / summary

  • An implementation of physically based shading model & image based lighting in various...

    - physically based shading model implemented using D3D11, D3D12, Vulkan and OpenGL 4.5

    archive / summary

  • Generating random points in a sphere

    - shows algorithms for generating random points within a sphere

    archive / summary

  • Flowmapped-Burn-Shader

    - breakdown of a burning shader implemented in Unreal Engine

    archive / summary

  • Non-Scary Shader Intro 2: Vertex Fun

    - part two of the series providing an introduction to vertex shaders

    archive / summary

  • Explanation of the paper 'View-warped Multi-view Soft Shadows for Local Area Lights'

    - summary of the paper: "View-warped Multi-view Soft Shadows for Local Area Lights " discussed in [l...

    archive / summary

  • Optimize Memory Transfers - Using CUDA profiler to figure out why our renderer is slo...

    - shows how to measure Cuda copy performance using the tools contained in the SDK

    archive / summary

  • Aligning 3D scans

    - the article discusses how to calculate the central axis from a 3D mesh

    archive / summary

  • Vulkan - Multisampling

    - explains how to use MSAA when using Vulkan - how to detect the supported sample count, set up t...

    archive / summary

  • Twitter - Volume rendering thread

    - twitter thread that provides a large number of links to information about volume rendering

    archive / summary

  • Vulkan® 1.1.82 - Chunked Specification

    - provides the Vulkan specification in a chunked version

    archive / summary

  • Decoding Radeon Vulkan versions

    - AMD provides a XML file that offers the possibility to map from external driver version to the ...

    archive / summary

  • Xenko 3.0 is now free and open-source!

    - Xenko, a C# based game engine has been released as open source with an MIT license

    archive / summary

  • Compilation of 100+ 3D graphics academic papers

    - collection of many 3D graphics research papers for a large number of different topics (sorted by t...

    archive / summary

  • Think Silicon® releases GLOVE™, an OpenGL ES over Vulkan middleware as open source

    - OpenGL ES implementation using Vulkan - licensed as LGPL v3

    archive / summary

  • The Elusive Frame Timing

    - explanation of frame stuttering - provides videos and frame by frame comparisons of what is causin...

    archive / summary

  • Quality hashes collection WebGL2

  • View-warped Multi-view Soft Shadowing for Local Area Lights

    - shadow technique for local area lights - based on the generation of view independent point clouds ...

    archive / summary

  • Normals and the Inverse Transpose, Part 3: Grassmann On Duals

    - part 3 of the series about Grassmann for computer graphics

    archive / summary

  • Even more compute shaders

    - explains how GPUs are able to execute multiple execution streams to hide memory latency

    archive / summary

  • PIX 1807.19 – Shader Table Viewer

    - added support for visualizing the content of DirectX Raytracing shader tables

    archive / summary

  • Geometry Shader Adventures, Mesh Triangle to Particle

    - explanation of a geometry shader in Unity that converts a triangle mesh into camera facing quad pa...

    archive / summary

  • metal shaders: luminance

    - explains how to calculate luminance and a very brief overview of the human vision

    archive / summary

  • metal shaders: color adjustments

    - look at image shaders that modify brightness, contrast, exposure, gamma or saturation using Metal

    archive / summary

  • DF Retro H2O! Water Rendering: Wave Race 64, Quake, Duke Nukem 3D + Many More!

  • Disney Animation Data Sets

    - the history behind the release of the Disney datasets of large

    archive / summary

  • A High-Performance Software Graphics Pipeline Architecture for the GPU

    - paper discussing the software implementation of the rasterization pipeline using compute shaders

    archive / summary

  • Followup to Atmospheric Scattering—Part 1

    - follow up series of 2012's GPU Pro 3 model - dynamic, real

    archive / summary

  • Visualizing 2D Vector Fields

    - showcase different ways to visualize a 2d flow field

    archive / summary

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

    - summary of "Conservative Z-Prepass for Frustum-Traced Irregular Z

    archive / summary

  • Sampling Anisotropic Microfacet BRDF

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

    archive / summary

  • Writing a Modern Metal App from Scratch: Part 2

    - part 2 of the Metal tutorial - adding support for depth buffers, some simple lighting with texture...

    archive / summary

  • Vulkan input attachments and sub passes

    - explanation of Vulkan render passes example - how to create Render passes

    archive / summary

  • Musings on cross-platform graphics engine architectures – Part 1

    - start of a series about graphics engine architecture

    archive / summary

  • Revisiting The Vertex Cache: Understanding and Optimizing Vertex Processing on the mo...

    - a new vertex cache optimization algorithm that is able to improve cache usage on NVidia hardware b...

    archive / summary

  • TL;DR of the paper 'Revisiting The Vertex Cache: Understanding and Optimizing Vertex ...

    - summary of the "Revisiting The Vertex Cache: Understanding and Optimizing Vertex Processing on the...

    archive / summary

  • Shader Showcase Saturday #2

    - shader showcase of different waterfall effects

    archive / summary

  • metal shaders: color inversion

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

    archive / summary

  • Multipass Shaders (& inverted Hull outlines)

    - tutorial on how to use multi-pass shaders in unity to implement an outline drawing effect

    archive / summary

  • An introduction to shader derivative functions

    - explanation of partial derivates in pixels shader, (ddx, ddy in HLSL or dFdx, dFdy in OpenGL)

    archive / summary

  • More compute shaders

    - explanation of SIMD execution details for GCN - discussing latency, throughput, and scheduling

    archive / summary

  • Rotating a vector using integer math

    - a technique to rotate vectors on the GPU using only integer math

    archive / summary

  • Gathering Feedback: Open Problems in Real-Time Raytracing

    - Colin Barré-Brisebois is looking for feedback and open problems in real time raytracing

    archive / summary

  • bezier bounding box

    - how to calculate the bounding box for quadratic and cubic Bezier splines analytically

    archive / summary

  • The Team Color Problem

    - changing the color parts of a character at runtime using a mask texture

    archive / summary

  • Blending an HDR color into a U8 Buffer

    - explanation of how blending HDR values into an SDR render target behaves regarding clipping into t...

    archive / summary

  • Writing a Modern Metal App from Scratch: Part 1

    - tutorial how to write a Metal app for iOS - end results is a spinning, constant color teapot

    archive / summary

  • Shader Showcase Saturday #1

    - showcase of small rendering demos that showcase volumetric rendering effects

    archive / summary

  • Dark and Stormy

    - explanation of dark and stormy, cloudy skybox shader for unity

    archive / summary

  • QuadriFlow: A Scalable and Robust Method for Quadrangulation

    - a technique to generate quadrilateral meshes from triangulated meshes

    archive / summary

  • Low Level Graphics Library (LLGL)

  • Rudimentary temporal anti-aliasing solution

    - GLSL implementation as a starting point for a temporal antialiasing solution

    archive / summary

  • Real-Time Rendering, 4th Edition Bibliography

    - bibliography of the Real-Time Rendering 4th edition

    archive / summary

  • Progressive Sampling Strategies for Disk Light Sources

    - comparison of combinations of six different sampling strategies for disk area light sources a...

    archive / summary

  • Progressive Multi-Jittered Sample Sequences

    - introduction of new strategies to generate progressive(hierarchical) 2D sample point sequences

    archive / summary

  • HSV and HSL (colorpsaces XI)

    - explanation and derivation of the HSV and HSL color spaces

    archive / summary

  • Hybrid raytraced shadows and reflections

    - implementation of a hybrid approach that mixes rasterization for first hit and raytracing for seco...

    archive / summary

  • Breaking down barriers – part 4: gpu preemption

    - provides an overview of GPU preemption strategies and how these affect application responsiveness ...

    archive / summary

  • Pathtraced Depth of Field & Bokeh

    - explains the physical properties of cameras, starting with a pinhole camera model

    archive / summary

  • Rules of optimization

    - explanation of performance culture, a working culture that treats performance as a core feature

    archive / summary

  • Porting your engine to Vulkan or DX12

    - video and slides from a talk that explains lessons learned from porting an AAA engine to Vulkan

    archive / summary

  • DD2018: Tomasz Stachowiak - Stochastic all the things: raytracing in hybrid real-time...

  • Introduction to compute shaders

    - how GPUs evolved from fixed function hardware to the uniform architecture used today

    archive / summary

  • TL;DR of the paper 'High-Performance Procedural Noise using a Histogram-Preserving Bl...

    summary of the paper "High-Performance Procedural Noise using a Histogram

    archive / summary

  • How to start learning graphics programming?

    - steps that the author recommends programmers follow that are interested in getting started in grap...

    archive / summary

  • DD2018: Sebastian Aaltonen - GPU based clay simulation and ray tracing tech in Claybo...

  • px_render.h rationale

    - overview of design decisions of single header low

    archive / summary

  • Vulkan layers don't work? Look at registry

    - windows registry contains entries for Explicit Layers (all layers that can be loaded by a process)...

    archive / summary

  • 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...

    archive / summary

  • Spectral Remapping for Image Downscaling

    - technique for downsampling images that preserves high

    archive / summary

  • Stratified Sampling of Projected Spherical Caps

    - a technique to improve importance sampling for spherical light sources by projecting the visible s...

    archive / summary

  • 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 i...

    archive / summary

  • High-Performance Graphics 2018 - Program

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

    archive / summary

  • Deferred Adaptive Compute Shading

    - technique changes shading rate adaptively based on the local content of the image

    archive / summary

  • Cube-to-sphere projections for procedural texturing and beyond

    - overview of area-preserving approaches of cube to sphere mapping

    archive / summary

  • 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

    archive / summary

  • PIX 1806.20 – GPU Occupancy for AMD GPUs

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

    archive / summary

  • Materials for Polygons on Terrain and the Evils of Inverse Trigonometry

    - polygons on terrain implemented as image-space decals

    archive / summary

  • Understanding GPU context rolls

    - explains what a context on AMD hardware is and how the driver manages these

    archive / summary

  • Gradient Estimation for Real-Time Adaptive Temporal Filtering

    - a technique that adjusts the temporal accumulation factor dynamically per pixel and frame

    archive / summary

  • Compiling DirectXShaderCompiler on Linux/macOS

    - Microsoft DirectX Shader Compiler is now also supported on Linux and macOS

    archive / summary

  • Veldrid Support for SPIR-V Shaders

    - low-level C# graphics library now supports SPIR-V shader for all supported backends

    archive / summary

  • Breaking down barriers – part 3: multiple command processors

    - discusses problems with synchronization between unrelated work when using a single command queue

    archive / summary

  • Simball description

    - explanation of the simball environment that has been initially designed for the Maxwell Renderer

    archive / summary

  • Zelda – The Bling-Bling Offset

    - shows how Zelda uses an FX in world space to make objects visible in high grass by adjusting the p...

    archive / summary

  • Blackscreen checklist for OpenGL and D3D

    - twitter thread with a checklist of common problems that can cause objects not be rendered in OpenG...

    archive / summary

  • Adaptive Temporal Antialiasing

    - the technique that mixes rasterization and temporal antialiasing to only ray trace pixels where a ...

    archive / summary

  • Combining Analytic Direct Illumination and Stochastic Shadows

    - C++ source code and prebuild demo application are released

    archive / summary

  • Texture-space Decals

    - The decals are projected from world space onto the mesh UV and rendered into separate per

    archive / summary

  • The other Pathtracer 4: Optimizing AABB-Ray intersection

    - optimizations to raytracer using SIMD - extending AABB tests to deal with various edge cases

    archive / summary

  • ACES 1.1 now available

    - a new set of SDR ODT (Output Device Transforms)

    archive / summary

  • Optimising path tracing: the last 10%

    - shows how the runtime/compile time selection feature of the Rust programming language is used to s...

    archive / summary

  • roblox graphics APIs 2018

    - overview of rendering API support for the user of Roblox

    archive / summary

  • lunarg releases new vulkan 1.1.77 sdk

    - new sdk contains VK_KHR_get_display_properties2 and VK_KHR_draw_indirect_count extensions

    archive / summary

  • Using Compute Post-Processing in Vulkan on Mali

    - how to use two Vulkan queues to enable optimal scheduling for compute

    archive / summary

  • Monte Carlo Integration Explanation in 1D

    - explanation of to use Monte Carlo integration to calculate the area under a curve

    archive / summary

  • PIX 1806.11 – Fence signals and waits visualization, major UI streamlining, new Edit ...

    - timing capture now visualizes fence signal and wait

    archive / summary

  • Shader Playground updates

  • Lookup table based real-time PVRTC encoding

    - using lookup tables to precompute the endpoints better compression results

    archive / summary

  • Microsoft - GDC 2018

  • Texturing in a 64kB intro

    - discusses the history and design of their in-house procedural texture generation tool

    archive / summary

  • Book of the Dead: Photogrammetry Assets, Trees, VFX

    - discussion of the photogrammetry workflow - camera used to capture, tools to generate the mesh and...

    archive / summary

  • PostFX v2 – Amazing visuals, upgraded

    - overview of all the post effects that can be found in PostFX v2

    archive / summary

  • Simple GPU Path Tracer

    - explains the basic of path tracing used in his D3D12 path tracer

    archive / summary

  • Cross-platform OpenGL alternatives

    - discusses engines, frameworks, abstraction layers that support metal

    archive / summary

  • Vulkan for Qt on macOS

    - QT adds support for vulkan on macOS through [MolenVK](https://github.com/KhronosGroup/MoltenVK)

    archive / summary

  • Real-World Measurements for Call of Duty: Advanced Warfare

    - this in-depth document (26 pages) covers how real

    archive / summary

  • HDR in Call of Duty

    - an in-depth overview of color, color spaces, and color transformations

    archive / summary

  • A Multi-Faceted Exploration (Part 2)

    - look at solution developed by Imageworks compensates for the energy loss in a single bounce BRDF m...

    archive / summary

  • Human-friendly classification of Vulkan resources

    - proposal of how to group vulkan resources by usage type

    archive / summary

  • Apple Announces that OpenGL and OpenCL will be Deprecated in macOS 10.14 Mojave

    - Apple will start to deprecate OpenGL with macOS 10.14 and OpenGL ES with iOS 12

    archive / summary

  • Metal for Game Developers

    - how to generate command buffers in parallel on the CPU

    archive / summary

  • How To become an advanced graphics programmer

    - twitter thread with advice how to learn more advanced graphics programming topics

    archive / summary

  • Polygons

    - a tutorial that explains how to clip a polygon based on a list of lines in a pixel shader

    archive / summary

  • Sticking a thin lens in a ray tracer

    - derivation of a ray function that implements the effects of a thin lens on rays

    archive / summary

  • 3d file formats, last mile vs. interchange

    - looks at different file formats and discusses the difference between formats aimed at the intercha...

    archive / summary

  • 2018 Vulkanised

    - video presentations from the Vulkanised conference

    archive / summary

  • Multiview rendering in Vulkan using VK_KHR_multiview

    - a sample that shows how to use the VK_KHR_multiview Vulkan extension

    archive / summary

  • The Machinery Shader System (part 3)

    - shader authors can define variations of shaders with a number of systems

    archive / summary

  • Adding texturing to a glsl path tracer

    explanations how ray tracing shaders in OpenGL can access the necessary textures for all objects ...

    archive / summary

  • Pathtracer 13: GPU threadgroup memory is useful!

    - moving the scene information into group shared memory to speed up the ray tracing code a lot

    archive / summary

  • Pathtracer 14: iOS

    - look at the iOS implementation with an overview of performance tools for CPU and GPU

    archive / summary

  • Hybrid Multi-Frustum Logarithmic Depth Buffer

    - now using Logarithmic depth buffer when available

    archive / summary

  • Witcher tricks - a bit about rendering the witcher 3

  • Basis universal GPU texture format examples

    - discussion of tradeoffs for the basis file format

    archive / summary

  • Denoising with Kernel Prediction and Asymmetric Loss Functions

    - extending previous work in CNN(Convolutional neural network) based denoising

    archive / summary

  • Optimising path tracing with SIMD

    - how to optimize a Rust path tracer using SSE4.1

    archive / summary

  • On Games’ Power Consumption and phones

    - the longer the CPU/GPU can idle, the less power is needed

    archive / summary

  • Texture Distortion Faking Liquid

    - Tutorial about the implementation of water surface movement of using a flow map in unity

    archive / summary

  • A Trio of New Nsight Tools That Empower Developers to Fully Optimize their CPU and GP...

    - NVIDIA Nsight Systems visualizes system-wide application interactions across CPU and GPU

    archive / summary

  • Nsight Systems Exposes New GPU Optimization Opportunities

    -how to investigate GPU starvation and detect CPU/GPU synchronizations and overview of other tools

    archive / summary

  • INSIDE shipping on iOS

    - many optimization lessons learned for mobile - how to deal with shader preloading

    archive / summary

  • GPU Driven rendering experiments at the Digital Dragons conference

    - discussions of problems with old occlusion culling systems

    archive / summary

  • SIGNED DISTANCE FIELDS IN UNITY

    - overview of how to generate a SDF in unity - per object SDF at build time

    archive / summary

  • Workshop: Shaders for Artists - Part 2

  • Never Map Again: Persistent Memory, System Memory, and Nothing In Between

    - discussion of characteristics of different ways to pass CPU generated data to the GPU using Ope...

    archive / summary

  • Scalable GPU Fluid Simulation

    - overview of SPH (Smooth Particle Hydrodynamics)

    archive / summary

  • Fractal Raytracing: The Mathy Parts

    - how the fractal raytracer was implemented on the GPU

    archive / summary

  • Art Design Deep Dive: Rendering the player as a form of pure energy in Recompile

    - discussion of a unique art style rendering technique

    archive / summary

  • GPU Path Tracing in Unity – Part 2

    - adds supports for a basic material system with lambert diffuse + phong specular

    archive / summary

  • Advice for beginners, who are just getting started in Computer Graphics

    - list of resource for beginners into graphics programming

    archive / summary

  • Stochastic all the things: Raytracing in hybrid real-time rendering

    - implementation details for reflections, translucency, transparency, shadows

    archive / summary

  • How I got started with shaders (Non-Scary Shader Intro)

    - explanations of how to get started with shader programming with unity

    archive / summary

  • The Forge: Release 1.10

  • Radeon GPU Profiler 1.2

    - now includes present events in the system activity view

    archive / summary

  • Kernel Foveated Rendering

    - implements foveated rendering through usage of log

    archive / summary

  • Checkerboard rendering, rotated anti-aliasing and grid frequencies

    - Intro to sampling theory and how different sampling patterns influence the aliasing that can be ob...

    archive / summary

  • My take on shaders: Spherical mask dissolve

    - description of a shader effect that dissolves triangles outside of a spherical effect range

    archive / summary

  • Game Math: Swing-Twist Interpolation (…Sterp?)

    - slerp between two orientations takes the shortest path on a 4D hypersphere

    archive / summary

  • A Multi-Faceted Exploration (Part 1)

    - start of series that will look at lack of multi scattering in common analytical BSDFs and solution...

    archive / summary

  • Multiple-Scattering BRDF

    - derivation of the multi-scattering GGX BRDF - provides source code and precomputed lookup tables

    archive / summary

  • Stripping scriptable shader variants

    - explains what shader variations are - how to compute the amount of variations created for a shade...

    archive / summary

  • Compressonator V3.0 Release Brings Powerful New 3D Model Features

    - new image diff option allows visualization of pixel difference between compressed / uncompressed t...

    archive / summary

  • Simple and efficient Vulkan loading with flextGL

    - tool that allows to only include vulkan functionality that you need

    archive / summary

  • Normals and the Inverse Transpose, Part 2: Dual Spaces

    - introduction into vectors as functions and dual space

    archive / summary

  • Writing a Portable CPU/GPU Ray Tracer in C#

    - uses ShaderGen to write shaders in C# and compile them into the target shader language for D3D1...

    archive / summary

  • Introducing Shader Playground

    - website that allows compilation of shaders with a multitude of shader compilers and inspect the av...

    archive / summary

  • Vulkan Debug Utilities

    - tutorial how to use the VK_EXT_debug_utils extensions

    archive / summary

  • GPU-Centered Font Rendering Directly from Glyph Outlines

    - technical details about the font rendering algorithm used in [slug](http://sluglibrary.com/)

    archive / summary

  • Game Math: Deriving the Slerp Formula

    - presents one method to derive the slerp formula for quaternions

    archive / summary

  • Programmability of Graphics Pipelines

    - discusses issues with composability, how complexity poses a problem of sharing research results

    archive / summary

  • Texture Arrays in Unity

    - discusses problems with using a texture atlas - set of scripts to help with the creation, manageme...

    archive / summary

  • Alpha Distribution

    - technique that helps to reduce problems of disappearing geometry for alpha tested geometry

    archive / summary

  • Optimizing Vulkan for AMD and the tale of two Vulkan drivers

    - experience of using vulkan with AMD drivers (stock and open source)

    archive / summary

  • Vulkanised is back!

    - Khronos event focused on experiences of game developers that ship Vulkan versions on May22 in C...

    archive / summary

  • How much does additive bind pose help?

    - compressing animation key frames relative to the bind pose and presenting results

    archive / summary

  • Efficient Rendering of Layered Materials using an Atomic Decomposition with Statistic...

    - new model for layered materials - statistical analysis that uses an atomic decomposition of light ...

    archive / summary

  • The Display Resolution of Head-mounted Displays, Revisited

    - in-depth look at the distribution of display resolution across the VR display

    archive / summary

  • Voxel DAGs and Multiresolution Hierarchies from large-scale scenes to pre-computed sh...

    - tutorial course covering representation, usage and applications of voxel DAG and multiresolutio...

    archive / summary

  • GPU Font Rendering - Current State of the Art

    - unicode overview - overview of different font rendering techniques

    archive / summary

  • HLSL for Vulkan: Semantic Strings and Location Numbers

    - explanation of rules that apply to shader input structures and interstage linking

    archive / summary

  • Spherical Gaussian series

    - blog series about the mathematics of spherical gaussians

    archive / summary

  • 2018 Montreal Vulkan Dev Day

  • Stylized VFX in RIME – Water Edition

    - how the stylized vfx in Rime was implemented - short overview of fire and smoke effect

    archive / summary

  • SPIRV-Cross - Reflection API user guide

    - explanation how to query reflection information from SPIR

    archive / summary

  • The implementation of Pixel-projected Screen Space Reflections

    - explanation of the implementation of [Pixel Projected Reflections](http://advances.realtimerenderi...

    archive / summary

  • GPU Ray Tracing in Unity – Part 1

    - how to implement a ray tracer using a compute shader in unity

    archive / summary

  • Bokeh depth of field in a single pass

    - shows the steps leading up the final implementation

    archive / summary

  • Zpng

    - texture compression library in just 500 lines of C code + Zstd

    archive / summary

  • 2018 Vulkan Montreal Dev Day

    - presentations from the Vulkan Montreal dev day - including updates about HLSL in Vulkan and descri...

    archive / summary

  • Comparison of vertexcodec/indexcodec from meshoptimizer with Google Draco

    - comparison of Draco and mesh optimizer output in regards to size and decoding time

    archive / summary

  • GDC 2018 Presentations

    - most of the AMD presentations from GDC have now been uploaded

    archive / summary

  • Basic Argument Buffers

    - examples for arguments buffer have been published

    archive / summary

  • Open Sourcing Seurat: bringing high-fidelity scenes to mobile VR

    - tool that allows simplifications for static VR environments

    archive / summary

  • i3D 2018 – Moment-Based Order-Independent Transparency

    - build upon the ideas of moment shadow mapping - transparent geometry is rendered twice 1. deter...

    archive / summary

  • Upcoming Oryol Changes (sokol_gfx.h migration)

    - overview of the new rendering API - build around method chaining for the initialization of descri...

    archive / summary

  • GTC On-Demand

    - videos and presentations from GTC are available

    archive / summary

  • Nubis: Realtime volumetric cloudscapes in a nutshell

    - summary of - cloud modeling and authoring system

    archive / summary

  • Stratified sampling

    - environment lighting is using several distributed area lights

    archive / summary

  • Taking a Stroll Between The Pixels

    - investigation of relation between linear interpolation and curve representations

    archive / summary

  • NVIDIA SMP Assist API for VR Programming

    - D3D11 extensions to simplify use of Lens Matched Shading and Multi

    archive / summary

  • Reducing Vulkan API call overhead

    - vulkan function calls pass through several layers until the actual function is executed

    archive / summary

  • Dissecting the Rendering of The Surge

    - 100% dynamic lights, 16 shadow maps in 4kx4k atlas

    archive / summary

  • Daily Pathtracer 12: GPU Buffer-Oriented D3D11

    - implementation of a buffer based (breadth first) approach for the raytracer

    archive / summary

  • GPU texture compression error metrics

    - overview of what error metric he uses when working/comparing encoders

    archive / summary

  • OpenGL engine and PBR deferred pipeline with SSR/SSAO

    - shows effect of different ray marching step sizes for screen space reflections

    archive / summary

  • Comparison of backface culling efficiency for cluster cone culling

    - comparison of backface culling efficiency for cluster cone, 64

    archive / summary

  • Terrain Erosion On GPU

    - discusses 3 different approaches for implementing thermal erosion on a height field based terrain

    archive / summary

  • New BC7 encoder open sourced

    - supports perceptual metric for compression - designed for opaque textures

    archive / summary

  • HLSL for Vulkan: Resources

    - descriptor types in vulkan vs D3D12 - how to specify resource bindings for vulkan in HLSL

    archive / summary

  • 2018 Vulkan Developer Day in Montréal

    - April 30th, Vulkan Developer Day in Montreal, hosted by Ubisoft

    archive / summary

  • Recolouring assets with lazy unwrapping!

    - UVs map into a gradient texture - to change the colors the UVs are adjusted to point to other sect...

    archive / summary

  • The Machinery Shader System (part 2)

    - overview of the shader authoring format - shader input parameters are defined without thinking abo...

    archive / summary

  • Dissecting the NVIDIA Volta GPU Architecture via Microbenchmarking

    - microarchitectural details of the NVIDIA Volta architecture

    archive / summary

  • Benefits of Image Based Lighting on Mobile

    - MatCap texture contains lighting information for all camera space normals

    archive / summary

  • Post-processing effects on optimization mobile gaming

    - uses a texture based and camera facing quad approach instead of a post

    archive / summary

  • Prefix Sums and Summed Area Tables

    - algorithm to sum regions from arrays or grids in constant time

    archive / summary

  • Unity Graphics Questionnaire

    - unity graphics team is looking to gather feedback to improve the roadmap

    archive / summary

  • Daily Pathtracer 10: Update C#&GPU

    - performance numbers for all implementations with latest changes

    archive / summary

  • Daily Pathtracer 11: Buffer-Oriented

    - current approach recursively processes a single ray until it terminates

    archive / summary

  • First steps when implementing FP16

    - available with AMD vega architecture - pack two FP16 into FP32 register

    archive / summary

  • Rainy SurfaceShader in UE4 Part 2

    - combination of ripples and streaking effect - blending between the two effects based on surface or...

    archive / summary

  • BC7 encoding using weighted YCbCr colorspace metrics

    - many BC7 encoders compress all channels equally - for color textures, errors in red and blue are l...

    archive / summary

  • ispc_texcomp BC7 issues

    - discusses issue with the ispc implementation - compression has quality problems with grayscale tex...

    archive / summary

  • Monte Carlo Methods for Volumetric Light Transport Simulation

    - survey of methods utilizing Monte Carlo for light transport in participating media

    archive / summary

  • Readings (shaders, maths, 3D)

    - list of resources for beginners aimed at shader toy like graphics programming

    archive / summary

  • fx-gltf

    - A C++14/C++17 header-only library for simple, efficient, and robust serialization/deserialization ...

    archive / summary

  • intel metrics discovery

    - library that allows access to GPU performance data on intel GPUs

    archive / summary