Graphics Programming Weekly

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


  • GDC 2023: Introducing the FidelityFX SDK with new technologies, an early look at FSR ...

    - AMD released the videos and slides from the sponsored session at GDC23

    archive / summary

  • Real-time sparse distance fields for games

    - the presentation introduces the implementation of Brixelizer, an AMD real

    archive / summary

  • Introduction to Spherical Gaussians

    - the article introduces Spherical Gaussians based on the Spherical Harmonics covered in the last pa...

    archive / summary

  • DNND 2: Tensors and Convolution

    - the second article of the series continues uncovering how Deep Neural Networks are implemented

    archive / summary

  • [video] Geomipmapping // Terrain Rendering episode #6

    - the terrain video tutorial series introduces a continuous level of detail for geometric details

    archive / summary

  • Raytracing on AMD’s RDNA 2/3, and Nvidia’s Turing and Pascal

    - the article uses the AMD and Nvidia dev tools to take a look at how they approach the BVH building...

    archive / summary

  • Half baked: Dynamic Occlusion Culling

    - the blog post discusses designs and considerations for occlusion Culling techniques

    archive / summary

  • Leveraging Rust and the GPU to render user interfaces at 120 FPS

    - the article discusses the implementation of the GPUI library

    archive / summary

  • CPU->GPU data transfer - What is the best way to provide GPU the data inputs for each...

    - the Twitter thread discusses different methods to upload per

    archive / summary

  • Notes on FFTs: for users

    - the article presents different use cases of Fourier Transforms from a user perspective

    archive / summary

  • [Video] Iridescent Bubble Shader - Advanced Materials - Episode 18

    - the video tutorial explains the effect of iridescence, why it happens, and how to replicate it

    archive / summary

  • [Unreal] GameCube-Style Stencil Lights

    - the article discusses how to implement a lighting model as found in the Legend of Zelda: The Wind ...

    archive / summary

  • DNND 1: a Deep Neural Network Dive

    - the article discusses the basics of Convolutional Neural Networks

    archive / summary

  • Depth-only Screen Space Ambient Occlusion (SSAO) for Forward Renderers

    - the article shows how to implement SSAO using WebGL 2

    archive / summary

  • Stylized Water Shader

    - the tutorial explains how to create a Stylized Water Shader using Unity from start to finish

    archive / summary

  • Generalization of Adobe's Fresnel Model

    - the short paper presents an extension to the Adobe Standard Material model that allows specific re...

    archive / summary

  • Introduction to Spherical Harmonics

    - the article aims to provide an understanding of Spherical Harmonics without requiring advanced mat...

    archive / summary

  • [video] Sharp Text Shader - Advanced Materials - Episode 18

    - the video tutorial shows how to create a text shader using signed distance fields and how to devel...

    archive / summary

  • The Year of the Vulkan Book

    - the article discusses the author's experience of writing "Mastering Graphics Programming with Vulk...

    archive / summary

  • Vectors, Matrices & Matrix Order

    - the article discusses matrix and vector representation

    archive / summary

  • 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