
Towards Practical Meshlet Compression
 the paper proposes a codec designed explicitly for meshlet compression within a mesh shader

Shaders // Vulkan For Beginners #13
 the video explains the shader authoring pipeline for Vulkan applications

An introduction to workgraphs part 2: Performance
 the article presents a detailed look at D3D12 work graph performance on Nvidia hardware

Multiprocess profiling support in Timing Captures
 the blog post shows how to profile an application with multiple processes using PIX for Windows

Surface vs Volume Formats in Tools
 the blog post provides a look at different mesh representation formats

DMMs (displaced micromeshes)
 the paper presents a new method for the representation of skinned meshes with deformations for ray...

Learn GPU Programming in Your Browser
 the blog post introduces WebGPUpowered puzzles that aim to teach graphics programming

Freya's Guide to XYZ Axes and Handedness
 a diagram that visually explains lefthanded vs. right

Building RealTime Global Illumination  Radiance Cascades
 the blog post continues the discussion of the Radiance Cascades GI technique

Summing Blue Noise Octaves Like Perlin Noise
 the blog post presents the effects of combining multiple levels of noise

Determinism
 the blog post presents what is required to write deterministic algorithms

[video] Explaining my game engine in 2024  Part1: Triangle mesh tangent space, norma...
 the video provides a summary of how normal maps can be used to augment surface detail

[video] Animated Loading Indicator  Procedural Shapes and Patterns  Episode 11
 the video presents how to combine polar coordinates, tiling, and blending to create a procedural l...

Khronos SIGGRAPH 2024 Rewind
 the blog post provides a collection of Khronos talks that happened during SIGGRAPH 2024

EDIZ: A Critical Look at a Simplistic Image Upscaling Approach
 the blog post discusses the EDIZ (Error Diffusion Image Zooming) algorithm for image upscaling

Adventures in Avoiding DAIS Buffers
 the article presents the authors' findings when exploring Visibility buffers and methods to access...

Screen Space Shadows
 the author presents his idea for a screenspace shadow technique that relies on Hierarchical Depth...

Bringing Explicit Pipeline Caching Control to Vulkan
 the blog post provides an overview of the new VK_KHR_pipeline_binary that allows direct retrieval...

The Neural Light Grid: A Scalable ProductionReady Learned Irradiance Volume
 the paper introduces a new method for precomputing indirect lighting into a novel form of Irradian...

Software rasterizing hair
 the author presents a discussion of how to apply software rasterizing to the problem of hair rende...

Layers All The Way Down: The Untold Story of Shader Compilation Background
 the blog post describes the reasoning why SDL GPU doesn't require a single portable high

[video] Animated 80s Sunset Pattern  Procedural Shapes and Patterns  Episode 10
 the video explains how to implement a perspective

The untimely demise of an image upscaler
 the article presents the effects of applying ML upscaling algorithms repeatedly to the same image

Characterizing CUDA and OpenMP Synchronization Primitives
 the paper presents an overview of the performance characteristics of synchronization primitives

VK_KHR_pipeline_binary
 this proposal discusses an alternative approach to Pipeline caching in Vulkan

Poor Foundations in Geometric Algebra
 the author presents how Geometric Algebra concepts are often defined in the literature and what be...

Compute With DirectX 12 – Part 2: The Setup
 the D3D12 tutorial presents how to get started with compute shader usage

Workarounds for issues with mesh shaders + Vulkan + HLSL
 the blog post explains how HLSL shaders compiled for mesh shader usage with Vulkan require special...

Recreating Nanite: Raytracing
 the article discusses a method to allow virtual geometry to be represented in ray

Decoding instructions with the machinereadable AMD GPU ISA specifications
 the short blog post presents how to use humanreadable ISA documentation to decode one CDNA instru...

AMD GPU machinereadable ISA documentation
 AMD released ISA documentation for RDNA2 and CDNA ISA

Gigi: Rapid Prototyping Platform for RealTime Rendering
 the blog post introduces a prototyping programming platform for shader development

Programmable Vertex Pulling // Intermediate OpenGL Series
 the video tutorial explains how to load vertex information from within a Vertex Shader instead of ...

Seamless Rendering on Mobile: The Magic of Adaptive LOD Pipeline
 the presentation discusses how to use clusterbased mesh representations to allow transitions betw...

Exact Polygonal Filtering
 the blog post describes an approach to calculating accurate filtering of polygonal shapes with clo...

Rust GPU Transitions to Community Ownership
 the blog post announces that Rust GPU (compiling Rust into SPIR

ClosedForm 3x3 Matrix Decompositions
 the article discusses a closedform solution for polar and singular value decomposition of 3x3 mat...

[video] MaterialX Virtual Town Hall 2024
 the presentation covers the current state of OpenPBR and the state of integration into MaterialX

[video] Work Graphs: HandsOn with the Future of Graphics Programming
 the talk provides an overview of the D3D12 work graph API

Why Do Reflections Stretch At The Horizon?
 the post provides an explanation of Microfacet Models

Variable Rate Shading with Visibility Buffer Rendering
 the presentations provide a detailed overview of the challenges when implementing Visibility Buffe...

Ray Tracing Harmonic Functions
 the paper presents a technique that allows Harmonic Functions to be sphere

Synthesizing Realistic Clouds for Video Games
 the talk presents an overview of the Decima (Horizon Zero Dawn) cloud rendering system

Vulkan SC 1.0.15 Released: SPIRV Validation and New NVIDIA Drivers for Desktop Syste...
 the blog posts documents which extensions have been ratified and included as part of Vulkan Safety...

Improving GPU Performance by Reducing Instruction Cache Misses
 the paper presents how to detect if a GPU workload is limited by instruction cache misses

Querying the PIX Timing Capture file format
 the blog post reveals that pix timing captures are internally using SQLite as a storage format

Highlights from HPG Conference 2024: Four exciting new research papers
 the blog post introduces AMD papers released at HPG (High

[video] Game Engine Programming 071.1  Introduction to Physically Based Rendering
 the video presents a brief summary of Physically Based Rendering methods

[video] Pass me that render, please // Vulkan For Beginners #12
 the video tutorial explains the Vulkan render pass concept

[video] Keynote by Peter Shirley: 60 fps rendering: past, present, and future
 The keynote covers the history of computer graphics research (in algorithms, materials) with a foc...

A Visual Guide to Quantization
 the blog post visuall explains floating point quantization techniques

[video] EGSR2024: Ray Traced Stochastic Depth Map for Ambient Occlusion
 the talk recording discusses a method for calculating ambient occlusion using stochastic depth map...

[pptx] Flexible and Extensible Shader Authoring in Frostbite with Serac
 the Siggraph presentation presents Frostbites' shader authoring solution

Activision Releases Call of Duty®: Warzone™ Caldera Data Set for Academic Use
 the blog post announces the release of the geometry for the Call of Duty Warzone map in USD format...

Reconstructing Surfaces from SDFs via Tangent Points
 the paper presents a method that converts an SDF into a point cloud

[video] Game Engine Programming 070.3  Mikk TSpace
 the video episode explains how to integrate Mikk TSpace tangent space calculation into the engine

GPUfriendly Stroke Expansion
 the paper presents a new method to apply strokes to lines in a GPU

[video] Karen Ghavam Keynote at HPG 2024
 the presentation recording discusses the development of the Vulkan ecosystem

MaterialX and OpenPBR Town Hall
 the presentation covers the current state of OpenPBR and the state of integration into MaterialX

Concurrent Binary Trees for LargeScale Game Components
 the paper presents a concurrent binary tree (CBT) for adaptive triangulations of arbitrary (half

HPLOC: Superfast, highquality BVH construction
 the paper presents an approach to BVH construction based on the parallel locally

DGF: A Dense, HardwareFriendly Geometry Format for Lossily Compressing Meshlets with...
 the paper presents a blockcompressed geometry format

Procedural generation
 the blog post provides an overview of generating a procedural world

Cache Points for ProductionScale OcclusionAware ManyLights Sampling and Volumetric...
 This paper provides a deep dive into Disney's Hyperion Renderer's many

GigaVoxels DP : StarvationLess Render and Production for Large and Detailed Volumetr...
 the paper presents a voxel scene processing model that allows on

Introducing Frame Latency Meter (FLM) v1.0
 AMD released a tool to help measure input to screen latency on Windows

Screen Space Indirect Lighting with Visibility Bitmask: Improvement to GTAO/SSAO Real...
 the blog post provides an overview of the author's implementation of Screen Space Indirect Lightin...

[video] Normal Mapping Adventures // OpenGL Intermediate Series
 the video tutorial provides an overview of the normal mapping technique

Foliage in AMD FidelityFX™ Brixelizer GI
 the 2part article series explains how Brixelizer GI (a sparse distance field backed GI solution) ...

[video] Rectangle Signed Distance Field  Procedural Shapes and Patterns  Episode 4
 the video presents how to create an SDF for a rectangle using Unity and Unreal

Digital images
 the article explains how images are represented  covers the build

RealTime Procedural Generation with GPU Work Graphs
 the paper presents a detailed look at how to use D3D12 work graphs to generate a procedural world

GPU Work Graphs mesh nodes in Microsoft DirectX® 12
 the series of articles discusses how work graphs are now allowed to execute mesh rendering work

PIX 2407.17preview: Mesh Nodes in Work Graphs
 A brief blog post discusses what aspects of the new mesh nodes preview for d3d12 can be debugged u...

SCALE by Spectral Compute
 SCALE is a GPGPU toolchain allowing CUDA programs to be natively run on AMD GPUs

Instanced Skeletal Meshes with GPU Driven Animations using Vulkan
 the article discusses a solution to allow GPU instanced and animated models using Vulkan

RealTime Hair Rendering with Hair Meshes
 the paper to be presented at SIGGRAPH 2024 presents a technique for rasterizing hair from hair str...

Behind the scenes: the Vulkan SC Ecosystem
 the blog post provides insights into the Vulkan variant for safety

LucidRaster: GPU Software Rasterizer for Exact OrderIndependent Transparency
 the paper discusses the implementation of a compute

Introducing the AMD FidelityFX™ Breadcrumbs library
 the blog post introduces the new AMD library that aims to improve GPU hang debugging

Introducing AMD FidelityFX™ Brixelizer
 the blog post presents an overview of using Brixelizer for Ambient Occlusion and soft shadows

Introducing Arm Accuracy Super Resolution
 the blog post introduces Arm Accuracy Super Resolution

[video] Upscaling FaceOff: FSR 3.1 vs DLSS 3.7/ XeSS 1.3  Has AMD Improved?
 the video provides a comparison to present the improvements done with FSR 3.1

[video] Combining Signed Distance Fields  Procedural Shapes and Patterns  Episode 3
 the video tutorial presents how to combine multiple SDFs in shaders

[video] Image Memory Barriers // Vulkan For Beginners #11
 the video provides an overview of the concept of image barriers

[video] 3D Toon Rendering in 'HiFi RUSH'
 the GDC presentation explains how the toon rendering effect was achieved

Open Sourcing DXIL Validator Hash
 the blog post announces the intent to open source DXIL shader validation as well as to support a m...

State of Text Rendering 2024
 The survey paper presents a very detailed look at the state of font rendering

Graphics Programming Conference
 a new graphics programmingfocused conference in Breda, Netherlands

[video] Exploring a New Approach to Realistic Lighting: Radiance Cascades
 the video explains visually stepbystep how the Radiance Cascades technique aims to solve Global ...

Spatial Indexing Algorithms
 X thread with a collection of Spatial Indexing Algorithms

[video] Lossless Scaling: Frame Generation For Every Game  But How Good Is it?
 the video presents how the "Lossless Scaling" mod generates in

[video] Circle Signed Distance Field  Procedural Shapes and Patterns  Episode 2
 the video tutorial presents how to create a signed distance field for a circle

[video] KEYNOTE: Use.GPU  Declarative/Reactive 3D Graphics by Steven Wittens
 the keynote presentation discusses the Use.GPU technology

GPUfriendly Stroke Expansion
 the paper presents a new method to apply strokes to lines in a GPU

VMF Diffuse: A unified rough diffuse BRDF
 the paper introduces a unified BRDF that allows a consistent expression of smooth to highly rough ...

Compute shader wave intrinsics tricks
 the blog post describes a couple of available shader intrinsics that allow the different threads o...

A Practical RealTime Model for Diffraction on Rough Surfaces
 the paper introduces a realtime BRDF model addressing diffraction on rough surfaces

GPU profiling for WebGPU workloads on Windows with Chrome
 the blog post presents how to profile WebGPU applications with Nsight, PIX, and Radeon GPU Profile...

Residual path integrals for rerendering
 the paper presents an approach for incremental re

High Performance Graphics  Conference Program
 the conference program for the HighPerformance Graphics has been released

[video] SIGGRAPH 2024 Technical Papers Trailer
 the video shows an overview of Technical Papers to be presented at SIGGRAPH 2024

Patch Decomposition for Efficient Mesh Contours Extraction
 the paper presents a method for the efficient extraction of mesh contours

[video] Submitting Command Buffers // Vulkan For Beginners #10
 the next episode of the Vulkan tutorial series presents how to execute work to the GPU

[video] Intro To Procedural Shapes and Patterns  Episode 1
 new video tutorial series that will cover how to generate procedural shapes and patterns from shad...

[video] I Tried Turning Games Into Text
 the video presents an approach to develop an ASCII art shader approach (converts 3D rendering to t...

A quick introduction to workgraphs
 the blog post presents a walkthrough on how to implement a raytracing classification shadow optimi...

[video] GDC 2024  GPU Work Graphs: Welcome to the Future of GPU Programming
 the GDC video presents a discussion of the new work graph features for D3D (also a Vulkan AMD

CPU performance optimization guide – part 1
 the first blog in a series about CPU optimizations

[video] I3D 2024 Papers Session 6  Efficient Forward and Differentiable Rendering
 the video recording of I3D 2024 sessions covers the following papers

[video] Triangle Visibility Buffer 2.0
 the talk provides an overview of the experimental Triangle Visibility Buffer 2.0 implementation

From microfacets to participating media: A unified theory of light transport with sto...
 the paper presents a method that aims to unify microfacets and volumes for light transport purpose...

5 Reasons Why Box Plots are the Better Default Choice for Visualizing Performance
 the blog post presents why the author suggests using box plots over bar charts as the default way ...

[video] REAC 2024 DAY 1 Testing Rendering Code at Frostbite
 the talk presents the system used by EA's Frostbite team to test the rendering engine

[video] Coding Adventure: Optimizing a Ray Tracer (by building a BVH)
 the video explains the concept of a BVH (bounding volume hierarchy) and presents how it increases ...

Raymarching explained interactively
 the article provides an interactive walkthrough into the implementation of the Raymarching algorit...

[video] Quaternions to Homogeneous Points, Lines, and Planes
 the second path of the math tutorial series from GDC 2024 extends the dual quaternion knowledge (s...

[video] REAC 2024 DAY 2 Modernizing geometry rendering in Alan Wake 2
 the presentation presents updates done to the rendering pipeline of the internal engine used for A...

[video] I3D 2024 Papers Session 5  Noise and Reconstruction
 the video recordings of Noise and Reconstrictions papers from I3D have been released

The engine of the future.
 following the REAC 2024 conference, this author composes his 10 predictions on how graphics engine...

[video] Rendering Engine Architecture Conference
 the video recordings for the Rendering Engine Architecture Conference have been released

Virtual Geometry in Bevy 0.14
 the blog post provides a detailed discussion of implementing meshlet

How I learned Vulkan and wrote a small game engine with it
 the blog post discusses the author's experience learning Vulkan through the development of a small...

Seiler’s Interpolation
 the short paper presents how to reformat bezier interpolation using cheaper functions

On Hash Functions for the GPU
 the article presents a geometric and statistical analysis of the PCG2D hash function

Machine Learning on the GPU  Case Study: Open Image Denoise
 the blog post provides a highlevel view that explains machine learning concepts for practical usa...

Academy Software Foundation Releases OpenPBR 1.0
 the blog post introduces the release of the first stable release of OpenPBR

PerspectiveCorrect Interpolation
 the article presents how a rasterizer calculates intermediate values on a triangle

[video] I3D 2024 Papers Session 4  Points and Splats
 The videos for I3D paper presentations have been released

[video] The OpenGL Software Ecosystem
 the video provides an overview of the OpenGL Ecosystem

Efficient Visibility Reuse for Realtime ReSTIR
 the paper presents a variance reduction technique for ReSTIR aimed at reducing shadow noise

[video] I3D'24 Technical Paper: Filtering After Shading with Stochastic Texture Filte...
 extended presentation of the I3D paper presentation discussed last week

Specular Polynomials
 the paper presents a way to reformulate SDS (a path with at least a specular, diffuse, specular bo...

Ray Tracing with Voxels in C++ Series – Part 6
 the article series extends the voxel rendering implementation to use path tracing

Microsoft® DirectSR and AMD FidelityFX™ Super Resolution technology
 the blog post explains the new DirectSR (Super Resolution) API

DXC 1.8.2405 Available Now, Including HLSL 202x
 the blog post introduces the ongoing work of implementing future HLSL versions directly into Clang...

Renderdoc  Version v1.33
 the latest version of Renderdoc includes a custom and improved DXIL disassembler

RealTime Physically Guided Hair Interpolation
 the paper presents a new method that aims to improve hair interpolation from a smaller number of g...

Implementing General Relativity: Rendering the Schwarzschild black hole, in C++
 the blog post provides a highlevel introduction to general relativity

Texture Streaming
 the blog post discusses the streaming system implementation in the Wicked Engine

[video] I3D 2024 Papers Session 2  Light Transport and Storage
 video of the I3D 2023 Paper session on Light Transport

Construction of a Microfacet Specular BSDF: A Geometric Approach
 the paper provides a walkthrough explanation of the different components that define a BSDF (bidir...

Hemispherical Lighting Insights
 the paper introduces models to solve the reconstruction of irradiance in the vertex

Ray Tracing with Voxels in C++ Series – Part 5
 the series on voxel ray tracer continues by presenting how to accumulate samples over time with a ...

Getting Started In Computer Graphics
 the blog post provides a detailed description for programmers interested in graphics programming

Sun Beams / God Rays Shader Breakdown
 the article explains an approach to implementing Sun Beams using Billboarding techniques

Agility SDK 1.614.0: R9B9G9E5 support for Render Targets and UAVs
 the blog post presents that the latest D3D12 SDK update introduces support for R9B9G9E5 for Render...

Unity Shader Graph Basics (Part 8  Scene Intersections 1)
 the video shows how to implement a shader effect that allows objects to change their appearance cl...

Recording the clear command // Vulkan For Beginners #9
 the video tutorial continues to discuss the implementation of a Vulkan renderer

Filtering After Shading with Stochastic Texture Filtering
 the paper presents an investigation into applying texture filtering after shading instead of befor...

Death To Shading Languages
 the author presents his view on shading languages and the (lack of) evolution

RealTime Path Guiding Using Bounding Voxel Sampling
 the paper introduces a pathguiding method that utilizes an irradiance voxel data structure

Area ReSTIR: Resampling for RealTime Defocus and Antialiasing
 the paper introduces Area ReSTIR that extends ReSTIR to be able to be applied to sub

Ray Tracing with Voxels in C++ Series – Part 4
 the article continues the series that covers the implementation of a voxel raytracer

A Fullycorrelated Anisotropic Micrograin BSDF Model
 the paper presents an improved version of a BSDF developed for micro grain materials

[video] Beyond White Noise for RealTime Rendering
 the video presents how different types of noise for random number generation can affect the result...

Shapes and forms of DX12 root signatures
 the article provides an excellent overview of the different ways to create root signatures in D3D1...

Recreating Nanite: Mesh shader time
 the article discusses how to implement clusterbased mesh rendering using mesh shaders

NBVH: Neural ray queries with bounding volume hierarchies
 the paper introduces a new neural method to compress BVH for raytracing workloads

AMD GPU architecture programming documentation
 AMD released documentation for the Micro engine and the RDNA 3 ISA

Precondition block compressed textures with BrotliG
 the blog post presents that the BrotliG (GPU compression library) now allows a pre

Ray Tracing with Voxels in C++ Series – Part 3
 the article continues the development of a voxel raytracer by explaining anti

Buffer Those Commands! // Vulkan For Beginners #8
 the video tutorial explains the Vulkan command buffer concepts

The shader graph contract
 the article discusses the design tradeoffs for a shader graph system

ZH3: Quadratic Zonal Harmonics
 the paper introduces the ZH3 format for spherical harmonics that fills the gap between linear and ...

Apple’s Mysterious Fisheye Projection
 the blog post discusses projection methods for spherical videos

[video] Math in Game Development Summit: A Visual Guide to Quaternions and Dual Quate...
 the GDC talk presents a great explanation of Quaternions and expands the concepts to cover dual qu...

Ray Tracing with Voxels in C++ Series – Part 2
 this blog post covers how to extend a raytracer in a voxel world with support for reflections

Meshed Radiance Manifolds for Efficient Volumetric Rendering of Dynamic Faces
 the paper introduces a method for view synthesis of facial expression captures in 3D views not cap...

[video] I3D 2024 Papers Preview
 the video presents a summary of all the papers that will be presented at the I3D Conference 2024

One Noise to Rule Them All: Learning a Unified Model of SpatiallyVarying Noise Patte...
 the paper discusses a generative model that is trained to generate multiple types of noise and ble...

FilterAdapted SpatioTemporal Sampling for RealTime Rendering
 the paper presents a framework to shape rendering noise to optimize samples for perceptual quality...

[video] Nanite for Artists  GDC 2024
 the video shows the limitations of Nanite from an artist's perspective

Introducing Reverse Z (AKA I'm sorry for breaking your shader)
 the Godot engine is switching the definition of near/far plane, with the near plane now mapping to...

Take a deep dive into Nanite GPUdriven materials
 the presentation is packed with detailed information about the process of implementing shader grap...

Realtime denoising of importance sampled direct lighting
 The Master Thesis is a collaboration with Remedy Entertainment and discusses the implementation of...

Ray Tracing with Voxels in C++ Series – Part 1
 the start of a series of articles covering the implementation of ray tracing for a voxel system

How to Compact Acceleration Structures in D3D12
 the blog post shows how to implement Acceleration Structure compaction using D3D12

Demystifying multiple importance sampling
 the article provides a full explanation of the derivation of multiple

GPU Compute in the Browser at the Speed of Native: WebGPU Marching Cubes
 the article explains how to implement a marching cube compute shader

The Performance Impact of C++'s final Keyword
 a blog post covering the effect of using C++ final on a ray

Raytracing  Articles
 this page serves as a starting point for the articles of the author

Radeon™ GPU Profiler 2.1 adds interoperability with Radeon™ GPU Analyzer (and more)!
 the article introduces how shaders from GPU Profiler captures can now be opened in the GPU Analyze...

Alan Wake 2: A Deep Dive into Path Tracing Technology
 the video presentation (free login required) discusses the implementation details of Path Tracing ...

Transforming a NonDifferentiable Rasterizer into a Differentiable One with Stochasti...
 the paper presents a method that allows existing non

VNDF importance sampling for an isotropic SmithGGX distribution
 the article introduces a specialization for the isotropic distribution of visible normals for GGX

Colour Science Precis for the CGI Artist
 a collection of summaries about color science aimed at computer graphics artists

Realtime Seamless Object Space Shading
 the paper introduces an object space shading method based on per

[video] Terrain Tessellation Shaders // Terrain Rendering Episode 13
 the video explains how to use OpenGL tessellation shaders to implement a dynamic level of detail f...

[video] An Optimisation 6 Years In The Making
 the video presents techniques to represent light shafts

GM Shaders Guest: Radiance Cascades
 the blog post explains the Radiance Cascades technique for global illumination

Flattening Bézier Curves and Arcs
 the post presents three methods to convert (Quadratic, Cubic) Bézier curves and elliptical arcs in...

3D Toon Rendering in 'HiFi RUSH'
 the GDC presentation provides an indepth view into how the visual stylized shading was implemente...

DirectX State of the Union Ft. Work Graphs and Introducing DirectSR (Presented by Mic...
 the GDC 2024 presentation covers the problems with Draw Indirect and how Work Graphs are designed ...

[video] Coding Adventure: Rendering Text
 the video deep dives into font rendering  starts by exploring the True Type Font format

Graphics Programming Conference
 a new graphics programming conference to happen in Breda (Netherlands) in November

Recreating Nanite: Runtime LOD selection
 the blog post discusses how to implement a continuous LOD system for meshlet

Optimizing UE5: Rethinking Performance Paradigms for HighQuality Visuals  Part 1: N...
 the presentation provides an overview of the Nanite and Lumen systems

[video] Dithered Transparency in Unity Shader Graph
 the video explains the difference between alpha blending and dithered transparency

RenderDoc  Version v1.32
 the latest version adds support for Slang with Vulkan, additional extensions support, D3D12 Pixel ...

Copy Queue woes.
 the article presents how usage patterns of copy queues to upload and download data from the GPU ca...

RealTime Lighting with Gaussian Splats
 the blog post describes a method to apply lighting to Gaussian Splats

[video] DJ! Swap that chain!!! // Vulkan For Beginners #7
 the latest video in the series explains how to create a Vulkan Swapchain

Game optimization with the AMD radeon developer tool suite
 the GDC presentation provides an overview of the profiler tools available from AMD

Moebiusstyle postprocessing and other stylized shaders
 the article presents a walkthrough of how to implement a post

Open sourcing the WinPixEventRuntime under MIT
 the blog post announces that the Windows PIX runtime has been released as OpenSource

Sampling the disk from a square: The adoption method
 the article introduces an alternative low discrepancy sampling strategy for circles

Efficient CUDA Debugging: Using NVIDIA Compute Sanitizer with NVIDIA Tools Extension ...
 the blog post describes how to use the CUDA Compute Sanitizer to implement a resize

[video] GDC 2024  Shader Instrumentation with GPU Reshape
 the GDC presentation discusses how the GPU Reshape tool enables GPU timeline validation

Ray Marching: Menger Sponge Breakdown
 the article provides an introduction to ray marching

Mesh shaders in AMD RDNA 3 architecture
 the presentation discusses mesh shaders and the techniques they enable

[pdf] Postmortem GPU crash analysis with AMD radeon GPU detective (RGD)
 the presentation presents why debugging GPU issues is difficult

Upgrade Your Graphics: Explore New Ray Tracing Features for NVIDIA Nsight Tools
 the article discusses updates in the Nvidia developer tools

Procedural grass rendering
 the blog post describes how to implement a procedural grass system using mesh shaders

GI1.1 adds support for glossy reflection rendering
 the blog post provides a brief overview of how glossy reflection got added to the GI 1.1 release

GDC 2024: We reveal incredible Work Graphs performance, AMD FSR 3.1, GI with Brixeliz...
 the article provides an overview of the announcements AMD made during GDC

Adventures with Differentiable Mesh Rendering
 the article explains how to approach differentiable rendering for mesh

Graphics Programming – Where To Start?
 the article provides a suggested collection of resources for beginners in graphics programming

[video] It is illogical (device) // Vulkan For Beginners #6
 the video provides a brief overview of the difference between physical and logical Vulkan device

[video] Too Many Developers Ignore These Optimisations
 the video provides a walkthrough of the steps when optimizing a voxel renderer

Unlock Seamless Material Interchange for Virtual Worlds with OpenUSD, MaterialX, and ...
 the article provides an overview of the different models available to describe the appearance of a...

Agility SDK 1.613.0 Available Now, Including Support for GDC 2024 Showcase Features
 the article provides an overview of all new features available in the D3D12 Agility SDK update

Work Graphs in Direct3D 12: A Case Study of Deferred Shading
 the article provides an overview of how a GBuffer classification system for BRDF selection can be...

GDC 2024: Work graphs, mesh shaders, FidelityFX™, dev tools, CPU optimization, and mo...
 AMD provides a list of talks they will be presenting at GDC (starting today)

Font and vectorart rendering with mesh shaders
 the article provides a detailed walkthrough of how to implement Loop’s and Blinn’s font rendering ...

Random walk method for quaternions
 the blog post discusses a method for generating uniformly distributed quaternions

CrossStage Shader Optimization
 the whitepaper presents which tools and optimizations passes in spirv

Recreating Nanite: LOD generation  faster, better, simpler
 second part in an article series about creating a LODing system that allows per

[video] 3D Gaussian Splatting!  Computerphile
 the video provides an explanation of Gaussian Splatting and how it connects to point clouds and ne...

PIX 2403.08 – New D3D12 features + misc PIX improvements
 the blog post provides an overview of new features and improvements in PIX

About fast 2D CDF construction
 the article presents a method for efficiently calculating the Cumulative Distribution Function or ...

Solar Storm Rendering
 the article provides a brief overview of the rendering engine architecture of the indie game Solar...

Vulkan Foliage rendering using GPU Instancing
 the blog post provides a walkthrough of the author's implementation of grass rendering using compu...

Screen Space Reflection
 the article presents how to implement screen space reflections using a single shader pass

The SmoothMinimum operator or SmoothUnion
 the article provides an indepth look at the Smooth

Inside Snapdragon 8+ Gen 1’s iGPU: Adreno Gets Big
 the article provides an indepth look at the hardware details of the Snapdragon 8+ Gen 1 GPUs

[video] Let's Get Physical (Device) // Vulkan For Beginners #5
 the video tutorial explains the concepts related to GPU hardware detection

RayTracing Validation at the Driver Level
 the article presents a new driverlevel validation for Ray

[video] How Persona Combines 2D and 3D Art
 presents a complete walkthrough of the forward rendering model employed by Persona 3 Reload

How video games use LUTs and how you can too
 the article explains the concept of Look Up Textures (LUT)

Look, Ma, No Matrices!
 the article discusses the feasibility of replacing 4X4 Matrix multiplications with Geometric Algeb...

DirectX Innovation on Display at GDC 2024
 Microsoft presents what will be discussed at GDC 2024

How (Not) To Optimize Shaders
 the article presents the importance of profiling when optimizing

Creating a Surface Handle // Vulkan For Beginners #4
 the short video tutorial explains how to create and destroy a surface handle from a GLTF window

On Light, Colors, Mixing Paints, and Numerical Optimization.
 the article provides an indepth discussion of how light behaves, how it interacts with the human ...

Vulkanised 2024 Playlist released
 the video recordings of the talks from the Vulkanised 2024 conference have been released

Shadeup Crash Course
 the article introduces the Shadeup language that aims to minimize boilerplate code required when a...

[video] Creating a Debug Callback Function // Vulkan For Beginners #3
 the video tutorial explains the necessary steps to ensure that all Vulkan validation messages will...

[video] Underwater Caustics Part 2  Advanced Materials  Episode 42
 the second part of a video tutorial about the implementation of Caustics using Unreal and Unity

Graphite internships: announcing participation in GSoC 2024
 the Rustbased 2D editor Graphite is looking for Students to join the Google Summer of Code projec...

Collaborative Control for GeometryConditioned PBR Image Generation
 The paper introduces a machine learning model that generates a set of PBR Textures (albedo, Roughn...

GPU synchronization in Godot 4.3 is getting a major upgrade
 the article discusses the new RenderGraph implementation in Godot 4.3

GM Shaders: Blur Philosophy
 the blog post article discusses the implementation of a box blur shader

REAC 2024 Conference  Call for Submissions!
 the Rendering Engine Architecture Conference is looking for speakers for the 2024 edition

GPU Programming Primitives for Computer Graphics (course)
 the course presents an introduction to GPU compute shader algorithms

[video] Tech Focus: TAA  Blessing Or Curse? Temporal AntiAliasing Deep Dive
 the video provides a history of antaliasing techniques used in games

Gradient Descent With Adam in Plain C++
 the article explains the extension method to gradient descents called Adam

Vulkanised 2024
 The slides for the talks of the 2024 Edition of the Vulkanised conference have been released

[video] Creating an Instance // Vulkan for Beginners #2
 the video in a series of Vulkan tutorials explains how to create a Vulkan Instance

[video] Water Foam  Advanced Materials  Episode 40
 the video tutorial explains how to add surface foam around the edges of objects that intersect the...

Building the DirectX shader compiler better than Microsoft?
 the article presents the authors' work on allowing the DXC compiler to be built into a static libr...

Toward a nextgen vulkan shading language: our journey with slang
 the presentation shows an overview of the Slang shading language

[video] Explaining my game engine in 2023  Part3: Tilebased light culling, compute ...
 the video explains Forward+ shading techniques  shows how to express frustum culling, how compute...

TRIPS: Trilinear Point Splatting for RealTime Radiance Field Rendering
 the paper presents a novel approach to the Point Splatting rendering technique

Breakdown: Syndicate (2012)
 the blog post presents a frame investigating into a frame of the game syndicate from 2012

[video] I made a Compression Algorithm for Heightmap Terrain
 the video explains a compression technique developed for height field compression

The Apparent Simplicity of RGB Rendering
 the blog post describes the observer correlation and coupling that is introduced into computer gra...

Examining AMD’s RDNA 4 Changes in LLVM
 the blogpost discusses the changes AMD made to LLVM

[video] Vulkan For Beginners Tutorial #1
 the video introduces a new Vulkan tutorial  the video focuses on the introduction of the audience...

[video] When Optimisations Work, But for the Wrong Reasons
 the video provides an indepth explanation of why LOD (Level of Detail) for 3D models helps to imp...

An Introduction To BCn Texture Compression, Part 1: BC4
 the article presents the start into a series of explaining BC (DDS, Block Compression) formats

Streamlining Subpasses
 the new Vulkan extension allows developers to express local dependencies between sub

Khronos Releases Maximal Reconvergence and Quad Control Extensions for Vulkan and SPI...
 Khronos released two new SPIRV extensions  the first extension guarantees reconvergence behavior...

Portals are misunderstood
 the blog post describes the history of Portals and BSP trees

Don't Use Moving Averages
 the article presents issues with moving averages and suggests using binomial averages instead

Profiling WebGPU with PIX
 the article shows how PIX can be used to debug WebGPU applications

Efficient GPU Rendering for Dynamic Instances in Game Development
 the author discusses a method to use indirect drawing to draw a dynamic number of instances of eac...

Shining a light on Caustics with Shaders and React Three Fiber
 the blog post provides a detailed walkthrough of the implementation of a caustics effect using Web...

Mesh shaders: optimization and best practices
 the article presents an overview of mesh shaders and amplification shaders

Modernizing Granite’s mesh rendering
 the article presents a detailed look at implementing a mesh shader based rendering pipeline

Reprojection in a Ray Tracer
 the author presents an alternative method to calculate the previous frame screen space position gi...

Introducing GPU Reshape  shader instrumentation for everyone
 the blog post introduces a new GPUbased debugging tool to make finding shader issues easier

[video] Machine Learning for Game Developers
 the video provides an overview and introduction to machine learning from a game development perspe...

Creating Rhoxel Meshes From Integer Coordinates
 the article presents a method to construct rhombic dodecahedral honeycomb elements from an integer...

HLSL Constant Buffer Packing Rules
 the article explains the packing rules for Constant buffers when used with D3D11/D3D12

GPU Sorting  Overview
 the article provides an overview of GPU sorting algorithms

Shader Printf in HLSL and DX12
 the article discusses how to implement a printf statement that can be used from a shader

GM Shaders: Noise 3
 the article presents a walkthrough on the steps required to generate simplex noise

Hash Noise stability in GPU Shaders
 the article discusses the portability of different methods to calculate noises/hashes across GPUs

[video] How does Quad Tessellation work in OpenGL?
 the video provides an overview of different tessellation modes

[video] Vertex Animated Water  Advanced Materials  Episode 36
 the video tutorial shows how to create a water surface through the use of vertex displacement

Around The World, Part 11: Everything is harder on a sphere
 the article discusses the complexities of using operations on the surface of a sphere

Quaternion Weighted Average
 the article presents how to accurately calculate the average of a set of quaternions

Siggraph 2023 Courses  Videos released
 ACM has released the video recording for the SIGGRAPH 2023 courses

A Gentle Introduction to ReSTIR Path Reuse in RealTime
 ACM released the video recording of the Siggraph course on the introduction to ReSTIR

[video] Inside Alan Wake 2: How Remedy Delivered A Visual Masterpiece
 the Digitial Foundry interview with a Technical Director and Lead Graphics Programmer from t...

[video] Vertex Displacement  Advanced Materials  Episode 35
 the video tutorial presents several use cases that vertex offset enables

[video] This Is Ray Tracing Supercharged!
 the article presents an overview of recent advances in light transport and compute graphics ...

DiffusionLight: Light Probes for Free by Painting a Chrome Ball
 the paper presents a method to estimate HDR EnvironmentMap (Chrome Ball) from a single input image...

Lowlevel thinking in highlevel shading languages 2023
 the article presents how different shader constructs are converted into instruction on RDNA2

3D shape matching with quaternions
 the article discusses a technique that calculates the transformation required between a known base...

Creating a Directed Acyclic Graph from a Mesh
 the article discusses how to generate LODs using a meshlet

[video] How do Video Game Graphics Work?
 the video provides a great visual breakdown of the rendering pipeline

Beyond SAH — Building Optimal BVHs
 the article provides an overview of different heuristics to choose from when building a BVH for ra...

Dynamic diffuse global illumination
 the article provides a walkthrough of the practical tweaks and tricks used to implement a ReStir

Denoising raytraced images using OIDN
 the article provides insights into how to convert OpenImageDenoise into HLSL compute shaders

Mesh Shaders on RDNA™ Graphics Cards
 the blog post is the beginning of a series covering mesh shaders and how they map to the RDNA hard...

Occupancy explained
 the article provides an indepth look at understanding shader occupancy on RDNA hardware

Optimizing Shaders in Unreal Engine
 the article presents techniques to help identify the performance cost of shaders created from unre...

Interpolation Using Wave Intrinsics
 the article presents a shader function that uses wave intrinsic to calculate interpolation of the ...

An update to our Render Graph
 the article provides an overview of the implementation of a render graph implementation

Vulkan Video Decode: First Frames
 the blog discusses the implementation of Vulkan video decoding to get the first frame of a video

Surface Gradient Bump Mapping Framework Overview
 the paper presents a retelling of the Surface Gradient Bump Mapping Framework paper from the autho...

Ray tracing animated crowds
 the blog post discusses how GPUbased animation for large crowds is implemented

[video] Digital Foundry's Best Game Graphics of 2023  PC, PS5, Xbox, Switch  Anothe...
 yearend video that discusses the standout graphical games of the year

A gentler introduction to ReSTIR
 the blog post aims to introduce and explain the ReSTIR technique with a focus on implementation an...

Knockout City Frame Breakdown
 the article presents a breakdown of the primary render passes of the Knockout City frame

Advanced API Performance: Swap Chains
 the blog post collects advice on how to achieve the most stable presentation results when using DX...

How to programmatically check graphics driver version
 the article discusses several ways to query the driver version and how to interpret the results

Avatar: Frontiers of Pandora  the big developer tech interview
 the interview between DigitialFoundry and some of the developers of the developers from Massive pr...

Introduction to micromeshes for mesh compression
 the article presents how to use Simplygon to generate micro

Simulating Fluids, Fire, and Smoke in RealTime
 the blog provides an introduction to fluid dynamics and rendering

[video] Using Textures In The Vertex Shader  Advanced Materials  Episode 34
 the video tutorial explains how to sample textures from a vertex shader

Exploring the design space of remote scene approximation
 the blog presents a walkthrough of the author's R&D process when approaching the issue of generati...

Use the GPU, Luke!
 the blog post provides an overview of GPU programming concepts for non

Performance Comparison of Meshlet Generation Strategies
 the research paper presents the performance impact of different vertex clustering (meshlets) on th...

[video] GPU Crash Debugging in Unreal Engine: Tools, Techniques, and Best Practices ...
 the presentation shows the complexity of debugging issues that cause crashes that originate from G...

Shader on The Sphere
 a small website that allows the authoring of GLSL shaders and running them on a virtual "The Spher...

WebGPU/WebGL performance comparison best practices
 the article provides best practices to follow when comparing WebGL and WebGPU workloads

[video] How Games Have Worked for 30 Years to Do Less Work
 the video provides an explanation of techniques used by rendering systems to reduce the number of ...

DirectX? On my Linux??
 brief example blog post that presents how it's possible to use DXVK to build a native Linux elf th...

[video] Vertex Shader Optimization  Advanced Materials  Episode 33
 the video tutorial shows how to move computations from a pixel shader into a vertex shader

Introducing Radeon™ GPU Profiler 2.0!
 the blog post shows the release of the new version of the AMD GPU profiler

Our brandnew DirectStorage sample is available now
 AMD released a sample for DirectStorage that was presented during GDC 2023

Announcing AMD RenderStudio  supporting collaborative 3D creation and rendering in t...
 the blog post announces USD integration into the AMD RenderStudio

Coverage Bitmasks for Efficient Rendering Algorithms
 the presentation provides an overview of bitmasks and their uses in rendering

[video] Lengths, angles, projection, correlation  Linear algebra episode 2
 the video provides an excellent and detailed overview of the dot product

GM Shaders Mini: OkLab
 the article presents the issues when creating a color gradient from sRGB and linear color spaces

[video] How to Render a Wireframe On a Solid Mesh
 the video explains how to use a geometry shader to render a wireframe overlay on a mesh using a si...

[video] What Is A Graphics Programmer?
 the video provides the story of the author becoming a professional graphics programmer

[video] Introduction To Vertex Shaders  Advanced Materials  Episode 32
 start of a new shader tutorial series covering vertex shaders

[video] When Your Game Is Bad But Your Optimisation Is Genius
 the video presents techniques used to optimize terrain rendering

How We Render Extremely Large Point Clouds
 the article discusses a system to compute shader rasterize large point cloud datasets at interacti...

How do I become a graphics programmer?  A small guide from the AMD Game Engineering ...
 the article gives some advice on how to get started with graphics programming

(Graphics) Programming Resource List
 a start of a collection of books and resources for (graphics) engine programmers that I recommend

GM Shaders Mini: Phi
 the article presents Phi and the Golden Angle  shows how to use these numbers for a point distri...

Interpolating Color Image Histograms Using Sliced Optimal Transport
 the article provides a visual explanation of what an optimal transport problem is

WebGPU Render Bundle best practices
 the article describes the concept of renderbundles and how they can be used to reduce CPU overhea...

A library for creating and manipulating spherical and zonal harmonics.
 The author updated his library for spherical harmonics and zonal harmonics

Improved Multithreading in wgpu  Arcanization Lands on Trunk
 the article presents a look into the internals of the gfx

Performance tricks
 short blog post lists a couple of tricks to use when writing shaders for higher performance

Unlocking GPU Intrinsics in HLSL
 the blog post shows how to use Nvidiaspecific intrinsics with D3D11 and D3D12

Dynamic vertex formats
 the article presents a couple of methods that can be used to read vertex information from shaders

Tiled pertriangle soft shadow volumes
 the article discusses an approach for the calculation of sun

[video] Optimize Your Meshes!
 the video tutorial presents how to use Mesh Optimizer to optimize meshes for faster rasterization

Interactive 3D Graphics and Games  Call for Participation
 The I3D conference for 2024 is looking for papers

GM Shaders Mini: The Matrix
 the tutorial provides a brief overview of matrix operations

Changing the game for Black hair
 the guide provides a collection of reference materials for different black hairstyles and advice f...

[video] code.talks 2023  Making pretty things with code: Getting started as Technica...
 the talk presents an insight into the job of a technical artist

AMD  UE  Performance guide
 AMD released a performance guide that helps developers with profiling work when using UE

Physically Based Rendering: Fourth Edition
 the 4th edition of the Physically Based Rendering has been released to read on the web for free

Advanced API Performance: Intrinsics
 a brief blog post that describes what advantages Wave intrinsics can have

Secrets of Direct3D 12: Do RTV and DSV descriptors make any sense?
 the article provides an overview of the way D3D12 deals with resource descriptors

Intuiting Latency and Throughput
 video of the PerformanceAware Programming series that presents in real

Explore GPU advancements in M3 and A17 Pro
 the video presents an overview of the hardware changes in new Apple hardware generations

Discover new Metal profiling tools for M3 and A17 Pro
 the video discusses updates to the profiling capabilities of hardware/software updates

Why Cities: Skylines 2 performs poorly
 the article provides a breakdown of the GPU scene rendering of Cities: Skylines 2

Extending Materials in Bevy 0.12 with MaterialExtension
 the video tutorial presents how to extend the generic bevy rendering material to support custom ef...

[video] How do Major Video Games Render Grass?
 the video provides an overview of how Ghost of Tsushima rendered grass

[pptx] The Rendering of The Callisto Protocol
 the slides for the advances of rendering presentation have been released

NVIDIA MicroMesh Vulkan Sample
 Nvidia released a sample that explains how to render Micro

OpenPBR v0.2 Now Publicly Available
 the blog post describes the first public release of the Open Physically

Realtime dreamy Cloudscapes with Volumetric Raymarching
 the article presents the story of the development of a cloud shader that uses raymarching to rende...

Finding Real Polynomial Roots on GPUs
 the article discusses the implementation details of an efficient method to compute roots of Polyno...

PIX 2310.30: a faster PIX with many raytracing + other improvements
 the blog post discusses the changes in the latest significant PIX release

[video] Alan Wake 2 PC Path Tracing: The Next Level In Visual Fidelity?
 the video shows the visual fidelity of the PC version of Alan Wake 2

[video] How Are Games Rendering Fur?
 the video discusses the nature of hair and the aspects that make it a complex topic to reproduce

[video] OpenGL [Episode 30] [Theory] The View Matrix
 the video provides a beginnerlevel view of how a camera orientation can be represented and transf...

[video] Animated Flag Part 2  Advanced Materials  Episode 27
 part 2 of the animated flag series extends the effect from the previous video

[video] Why can't you multiply vectors?
 the talk presents an overview of linear algebra

Machine Learning for Game Devs: Part 1
 the blog post introduces a new series about machine learning that aims to connect different discip...

Study Notes On The Marschner Hair Shading Model
 the blog post describes the The Marschner Hair Shading Model

GM Shaders Mini: Tonemaps
 the article presents the importance of tone mapping to reduce color clamping

Efficient CUDA Debugging: Memory Initialization and Thread Synchronization with NVIDI...
 the article presents the types of checks available by the NVIDIA Compute Sanitizer

Advanced API Performance: Descriptors
 the article presents a collection of recommendations for descriptor usage on Nividia using D3D12 a...

[video] RE:2023 Shader Translator: Implementation and Use
 the video presents how shaders are translated between HLSL and the target shading languages

[video] RE:2023 Is Rendering Still Evolving?
 the video presents an overview of the RE ENGINE graphics stack

The Best Darn Grid Shader (Yet)
 the indepth article presents how to render a high

Setting up PSO Precaching & Bundled PSOs for Unreal Engine
 the article provides an overview of the methods available in UE5 to deal with Pipeline loading

[video] Animated Flag  Advanced Materials  Episode 26
 the video tutorial shows how to animate a flag using vertex shaders

[pdf] Bounded VNDF Sampling for Smith–GGX Reflections
 the paper introduces a method to reduce the amount of rejected rays for tracing rays following a v...

The white furnace test
 the article presents the white furnace test  discusses what the purpose of the test is and provid...

Book (w/ Turnable Pages) Breakdown
 the blog post presents how to set up a book with turnable pages

Doing dynamic resolution scaling? Watch out for texture memory size!
 the article discusses dynamic resolution scaling and its effect on memory usage

New Implementation of LTC Line Lights
 the article presents three issues with linearly transformed cosine (LTC) Line Lights

Designing Slang’s automatic differentiation
 the blog post introduces the new automatic differentiation feature for the slang shading language

The new sokolgfx WebGPU backend
 the blog post discusses the implementation of WebGPU into the sokol

[video] Introduction To Tessellation in OpenGL
 the article provides an overview of the tesselation pipeline

LocallyAdaptive LOD for HardwareAccelerated Ray Tracing
 the paper introduces a level of detail technique for triangular meshes for use with ray tracing wo...

Work graphs API – compute rasterizer learning sample
 the blog post shows how to implement a scan

Voxy tool development so far...
 the article discusses the author's development of a real

Advanced API Performance: Debugging
 the blog post discusses advice to help debug issues with GPU workloads

Unity 4D #4: Creating 4D Objects
 the article covers how to generate a 4D hypersphere

Dynamic Resolution Scaling (DRS) Implementation Best Practice
 the article discusses ten implementation details to consider when working on a Dynamic Resol...

Vulkan Documentation Just Got Easier!
 the blog post introduces the updated Vulkan documentation website

[video] WornOut LCD Screen Shader  Advanced Materials  Episode 25
 the video tutorial presents how to implement a material effect that simulates an old LCD scr...

Master Thesis  Volumetric data structures for realtime ray tracing
 The master thesis provides an overview of the different trade

[video] AMD FSR3 HandsOn: Promising Image Quality, But There Are Problems  DF First...
 the video provides an overview of the FSR3 frame generation

SimLOD: Simultaneous LOD Generation and Rendering
 the paper presents a method to incrementally construct a LOD structure for point clouds directly o...

Ray Tracing Spherical Harmonics Glyphs
 the paper introduces a new method to render Spherical harmonics glyphs efficiently

USD and glTF Resources Page
 the website presents a collection of USDs and glTF information

A Micrograin BSDF Model for the Rendering of Porous Layers
 the paper introduces the concept of micro grains to approximate layered materials

Stable Fiddusion  Frequencydomain blue noise generator
 the indepth article discusses noise generation  presents a generation approach based on generati...

GPU driven rendering in AnKi: A high level overview
 the blog post discusses issues encountered when moving AnKi object visibility onto the GPU

Unity 4D #3: Rendering 4D Objects
 This article explains in detail how to render 4D objects in 3D space

From the archive: Notes on environment lighting occlusion.
 the article discusses Parallaxcorrected cube maps and their related approximations

Introducing Desmos Studio's 3D Calculator (Beta)
 the article introduces that the Desmos calculator now supports 3D visualizations

GM Shaders Mini: Vector Spaces
 the blog post provides a summary of common spaces found in graphics operations

[video] Sampling of Environment Maps for Imagebased Lighting [Shaders Monthly #13]
 the video shows how to sample texture lighting information stored in environment maps using import...

Toon Shading Fundamentals  From CelShading to bidirectional toon ramps
 the article presents the basic steps for a toon shading implementation

Combining Resampled Importance and Projected Solid Angle Samplings for Many Area Ligh...
 The paper presents a combination of Resampled Importance Sampling (RIS) and Projected Solid Angle ...

Nonlinear Ray Tracing for Displacement and Shell Mapping
 the paper introduces a new approach to perform acceleration structure traversal and intersection t...

Making Gaussian Splats more smaller
 the blog describes how to compress the Gaussian splat SH data by using clusters and color palettes...

Chrome Graphics as Seen By Attackers
 the article provides an indepth discussion about how WebGPU is implemented within Chrome

You’re calculating framerate percentiles wrong!
 the blog post describes the importance of considering the total runtime when calculating performan...

AMD FSR 3 game integrations out now + more details for developers
 the article provides a brief overview of the FSR algorithm implementation

[video] Game Engine Programming 060.3  Explaining block compression formats and sRGB...
 the video explains BC texture compression  covers how the compression format works and the differ...

Reach For the Spheres: TangencyAware Surface Reconstruction of SDFs
 the paper introduces a new method for the triangle mesh reconstruction from an SDF representation

Interlocked min/max on HLSL single precision floats (Part II)
 the article presents improvements to using floating point atomic operations if all inputs have the...

Worley and His Noise (Worley Noise/Voronoi Noise)
 the article presents how to implement Worley/Voronoi noise

From WebGL to WebGPU
 the article presents a set of differences between WebGL and WebGPU

Radeon™ Raytracing Analyzer 1.3 is now available
 the latest version of the raytracing analyzer adds support for visualizing the rays in the scene

Radeon™ Memory Visualizer 1.7 is out now
 the latest edition of the Memory Visualizer adds improved support for resource aliasing

Radeon™ GPU Profiler 1.16 is here!
 the article presents changes in the latest AMD GPU profiler update

Introduction to 3D Gaussian Splatting
 the blog post provides an introduction to the Gaussian Splatting rasterization technique

Painting with Math: A Gentle Study of Raymarching
 the blog post provides a visual introduction to Raymarching

GM Shaders Mini: Math
 the article provides a brief overview of alpha blending and weighted averages

Making Gaussian Splats smaller
 the article discusses how to compress the data for the Gaussian Splats technique for reduced memor...

Onboarding floatingpoint
 the series of blog posts covers floating points and fixed point representations for numbers

[video] How I implemented MegaTextures on real Nintendo 64 hardware
 the video presents an overview of virtual texturing

Vulkanised 2024  Call for Submissions
 the 2024 Vulkan conference Vulkanised is looking for speakers

Call for Authors GPU Zen 3
 the latest edition of the GPU Zen books is looking for authors

[pdf] Authoring Materials That Matters  Substrate in Unreal Engine 5
 The presentation covers the development of a new material model based on Slaps, Operators, and Tre...

What we talk about when we talk about Ray Tracing?
 The article provides an overview of ray tracing rendering concepts

Gaussian Splatting is pretty cool!
 The blog post describes a brief overview of the Gaussian Splatting technique

Interlocked min/max on HLSL single precision floats
 The article discusses a technique to implement atomic min/max operations on HLSL (that doesn't sup...

GM Shaders Mini: Imagination
 The blog post shows the importance of thinking in gradients

Constant Time Stateless Shuffling and Grouping
 The article introduces how to encrypt/decrypt are methods to allow reversible changes to data

[video] Wow, NVIDIA’s Rendering, But 10X Faster!
 The video presents a comparison of 3D Gaussian Splatting for Real

[video] I Tried Simulating The Entire Ocean
 The video provides a discussion of ocean simulation and shading

At A Glance: The Aliasing Problem in ComputerGenerated Shaded Images
 The article presents a brief discussion of Aliasing in computer graphic

[pdf] HypeHype Mobile Rendering Architecture
 The presentation provides a detailed look at how the rendering API for HypeHype was rewritten for ...

[pdf] LargeScale Terrain Rendering in Call of Duty
 The presentation covers the terrain rendering methods used in previous Call of Duty and shows the ...

GFXReconstruct on Android  HowTo Guide
 The article presents the steps necessary to use the GFXReconstruct on Android

[video] CUDA Tutorials I Profiling and Debugging Applications
 The video tutorial contains a highlevel overview of the profiling tools available for Cuda worklo...

New Work Graphs sample and Radeon GPU Profiler support for GPU Work Graphs
 The article presents a new D3D12 work graph sample to demonstrate how to classify screen space mat...

BroadLeaf: Developing a RealTime Solution for Rendering Trees
 The article explains the Tencent tree rendering system

Solving SelfIntersection Artifacts in DirectX Raytracing
 the article presents a robust solution to resolve self

Advanced API Performance: Shaders
 the blog post provides best practices for shader performance

[video] Starfield: The Digital Foundry Tech Review
 the video presents a deep dive into the technical aspects of Starfield

[video] Billboarding With The Geometry Shader // Intermediate OpenGL Series
 the article presents how to use geometry shaders from OpenGL

Bezier curves
 The article provides an interactive explanation and exploration of Bezier curves

[video] MaterialX 2023 Virtual Town Hall
 Video recording of MaterialXrelated developments in the virtual town hall meeting

vsync simulator
 The simulator provides the ability to experiment with different factors that affect the vsync effe...

Inside bend: screen space shadows
 The presentation and source code for the screen space shadows used in Days Gone have been released...

Rayaligned Occupancy Map Array for Fast Approximate Ray Tracing
 The paper introduces a Rayaligned Occupancy Map Array as an alternative to BVH

Radiance Cascades: A Novel Approach to Calculating Global Illumination[WIP]
 The paper presents a global illumination technique based on radiance cascades

Rendering Technologies behind Gran Turismo 7: VR, Ray Tracing and Sky Simulation
 the slides cover the difficulties of VR and what is required for a good user experience

Camera and lens definitions for VFX
 the article discusses the concept of focal length, presenting how different definitions of focal l...

[video] Mathematical Magic Mirrorball #SoME3
 the video explains how mirror balls enable the representation of 360

Optimizing Metal: Stitch several Metal functions into a single shader using MTLFuncti...
 the article presents how to use MTLFunctionStitchingGraph to allow the creation of a final shader ...

Hardcore Vulkan debugging – Digging deep on Linux + AMDGPU
 the blog post gives insights into debugging crashes originating on the GPU

Getting Started with Radeon™ GPU Detective 1.0
 AMD released a new tool to help with debugging GPU crashes

[SCC] Next Gen Development for Games  Sony Official
 a combination of three conference presentations recordings from the sony creator event

HLSL 2021 Migration Guide
 the latest version of DXC switches the default HLSL version to 2021

ShaderCrashingAssert
 release of a small header helper to implement a basic assert for GPU shader code

A Gentle Introduction to ReSTIR: Path Reuse in Realtime
 the course notes and slides for the ReStir course from Siggraph are available

Reverse Z (and why it's so awesome)
 the article presents how projection matrixes are expressed in different APIs

Interviewing Graphics Programmers
 the article presents a way to categorize graphics programmers into four broad groups

Speed Up GPU Crash Debugging with NVIDIA Nsight Aftermath
 Nsight Aftermath now supports applicationspecific markers to be inserted and accessed from the cr...

GM Shaders Mini: CRT
 the article presents how to create a postprocessing effect that simulates the look of CRT TVs

Bringing shaders to contest programming
 the article presents how the author organized an online shader programming contest

[video] SIGGRAPH 2023  Latest in Graphics Development and GPU Profiling with NVIDIA ...
 the video presents a short overview of the new developer features in Nvidia tools

[video] Skydome // Terrain Rendering episode #12
 the video presents the theory behind Skydomes and how they compare to sky boxes

Optimize 3D Assets with Khronos’ New glTFCompressor Tool
 Khronos released a new tool to improve the experience when working with KTX compression

[video] The rendering techniques of Path of Exile (Alexander Sannikov)
 the presentation covers an overview of many rendering techniques used in Path of Exile

[pdf] Shadow Techniques from Final Fantasy XVI
 the paper discusses the Shadow Techniques used by Final Fantasy XVI

Occluding Contour Breakthroughs, Part 1: A Surprisingly Hard Problem
 the first part of a 3 part series that discusses occluding contour rendering

Why your GPU can (and probably should) do real function calls
 the article presents a discussion of functions calls in shaders

Learnings As a Graphics Lead
 the blog post provides an overview of leadership topics aimed at new graphics leads

DenoisingAware Adaptive Sampling for Monte Carlo Ray Tracing
 The paper proposes an adaptive sampling technique for efficient Monte Carlo rendering with deep

Radiant Flux, Intensity, Irradiance, Radiance, and the Rendering Equation
 the blog post presents the rendering equation and derives the meaning by following the physical un...

Using decals to drive object shaders and postprocessing.
 the blog post presents the idea of using decals to drive where post

Pixar, Adobe, Apple, Autodesk, and NVIDIA Form Alliance for OpenUSD to Drive Open Sta...
 the blog post presents the announcement of the formation of an organization for fostering the stan...

Approximate projected bounds [Updated]
 the article has been updated with improvements  covers efficient, conservative projected bounds f...

Advanced API Performance: Synchronization
 Nvidia presents the best practices for asynchronous compute queue work scheduling

Raytraced order independent transparency part 2
 the article presents a method that uses any hit shaders to implement order

Announcing GPU Work Graphs in Vulkan
 AMD announced the release of a Vulkan extension to support the experimental D3D12 Work Graph conce...

Korean edition of RTR4 available
 the blog post announces that the book RealTime Rendering is now also available in Korean

Float to int casts for data compression
 the article discusses different methods that are available to convert from f32 to u32 data formats...

GM Shaders Mini: Dither
 the article presents an overview of dithering techniques

Unity 4D #1: Understanding the Fourth Dimension
 the article presents an introduction to the fourth dimension and explains how to imagine mathemati...

A Whirlwind Tour of Games Color Management
 the article provides a comprehensive overview of game color management and encoding complexities

PROGRAMMING: SDMV (Single Draw Multiple Viewport) Instanced Cubemap Rendering
 the article presents how to render geometry to the six faces of a cubemap from a single draw call

Roblox to Present 3D Motion and Rendering Research at SIGGRAPH 2023
 the blog post shows the talks Roblox will be presenting at SIGGRAPH

[video] Art Optimization: How FatShark constructed their central asset pipeline with ...
 the GDC presentation covers geometrical limitations and techniques that can be used to solve the b...

Rendering ‘God of War Ragnarök’
 the talk presents is a combination of leadership methods and rendering techniques of God of War Ra...

Advanced API Performance: Pipeline State Objects
 the article provides a list of best practice recommendations for usage of PSOs with D3D12

Calculate how many helper pixels a pixel quad has
 small twitter thread that presents how to use Quad intrinsics and IsHelperLane to visulize how eff...

[video] Nuclear's graphics tricks #1: simple outline rendering
 the quick video presents a method to render an outline of an object by taking advantage of wirefra...

Computational complexity of texture encoding
 the article explains how most tecture encoding formats operate in blocks, presenting how this redu...

Santa Monica Studio  Our GDC 2023 presentations
 Santa Monica Studio release the slides for all GDC 2023 presentations

Subpixel Distance Transform  High quality font rendering for WebGPU
 the article presents an indepth look at SDF font rendering techniques

MicroMesh Overview (Part 1)
 the blog post provides a first high level overview of the micro

Effective use of the new D3D12_HEAP_TYPE_GPU_UPLOAD flag
 the article presents what ReBAR is and how it allows GPU resource to be directly CPU adressable

RealTime Neural Texture Upsampling in ‘God of War Ragnarök’
 the presentation present a neural network approach used to upscale textures

[video] User Clip Planes // OpenGL Intermediate Series
 the video tutorial presents how one can use clip planes to cut geomeetry along plane equations

Raytraced order independent transparency
 the articles continues the exploration into order independent transparency techniques

[video] The Art of Linear Programming
 the video tutorial provides a visual introduction into linear programming

Marching Cubes, Explained Using Marching Squares
 the articles aims to provide an intuitive understanding of the marching cubes algorithmn

[video] It Takes Two, lava lamps, Raymarching in Godot 4.1
 the video describes how to use raymarching to draw a lava lamp effect

High Performance Graphics 2023 papers on the web
 collections of papers from the High Performance Graphics 2023 conference

The AMD FidelityFX™ SDK 1.0 is now available on GPUOpen
 AMD has released FidelityFX SDK that was announced during GDC 2023

Eurographics Symposium on Rendering 2023 papers on the web
 collections of papers from the Eurographics Symposium on Rendering 2023 conference

InGame GPU Profiling for DirectX 12 Using SetBackgroundProcessingMode
 the blog post presents how to use available D3D12 APIs to create stable applications for profiling...

Tilebased Lightweight Integer Compression in GPU
 the paper introduces a tilebased decompression scheme aimed to allow data queries to operate in a...

Intermediate Graphics Library (IGL)
 Meta opensourced their crossplatform library that provides a common graphics API abstraction

GPU 2D Drawing Part 2: Rectangle SDF. Masking. Rotations.
 the blog post discusses signed distance fields (SDF) for rectangles as well as how to render borde...

Rain Effects Breakdown
 the article provides a breakdown of how to implement a rain effect using Unity visual shaders

Skeletal animation in glTF
 the article provides an overview of skeleton animation in

[video] Windows Gaming On Mac: Game Porting Toolkit Tested! Cyberpunk, Hogwarts, Dead...
 the Digital Foundry video provides an overview of the Apple Game Porting Toolkit

[video] Skybox // Terrain Rendering episode #11
 the video tutorial presents how to render a skybox using OpenGL

[video] Building Roads Procedurally Using Unity's Spline Package
 the video tutorial presents how to build a road network using a spline system

Debugging CUDA More Efficiently with NVIDIA Compute Sanitizer
 This article discusses a code sanitizer in CUDA that is similar to one used in C++

Behind the Pretty Frames: Diablo IV
 the article provides an indepth study of a Diablo IV frame rendering on PC

An Approximate Mie Scattering Function for Fog and Cloud Rendering
 The paper introduces a new method for representing scattering with varying particle sizes using un...

[video] Make Your Renders Unnecessarily Complicated
 the video shows an humerous overview of what is required to model a camera, with functioning lenes...

Signed Distance Function (Field)
 the article dicusses how to use signed distance functions to render a circle

Neural Intersection Function
 the paper introduces a replacement for bottomlevel BVH traversal based on neural network techniqu...

[pdf] Path tracing in Production  The Path of Water
 the Siggraph 2023 course notes discuss the challenges faced related to water rendering on Avatar: ...

[video] Convolutions and adding random variables, visually explained
 the video explains the concept of convolution functions/filters

RealTime Ray Tracing of MicroPoly Geometry with Hierarchical Level of Detail
 the paper introduces a method that enables micropoly geometry for raytracing workloads

D3D12 Work Graphs Preview
 the blog post announces the first public release of a new D3D12 feature called Work Graphs

GPU Work Graphs in Microsoft DirectX® 12
 the AMD guide provides a more indepth look at the practical use of D3D12 Work Graphs

PIX 2306.21preview: Work Graphs support
 the blog post announces support for the new d3d12 work graphs feature in the preview version

From 0 to glTF with WebGPU: Rendering the Full glTF Scene
 another part of the glTF rendering series  part focuses on how to interpret the scene hierarchy a...

[video] Let's Code a Realtime Fluid Simulation in Unity
 the video tutorial presents a walkthrough on the integration of a real

Task Graph Renderer at Activision
 the talk discusses the design of the Task Graph architecture used by Activision

Overview of Nitrous’ Decoupled Rendering Architecture
 the presentation slides explain the improvements done to decoupled shading

RealTime Rendering of Glinty Appearances using Distributed Binomial Laws on Anisotro...
 the paper presents a new method to render glittery materials

Line Rendering Deep Overview  Part 1  Extraction
 the article presents an overview of line extraction techniques

A note on Metal shader converter
 the article presents a discussion of the limitations of metal hardware related to barriers across ...

Sampling Visible GGX Normals with Spherical Caps
 the paper introduces a novel importance sampling algorithm for the GGX microfacet BRDF

Far Cry Dunia Engine Shader Pipeline  Longterm Vision & Lessons Learned
 the presentation covers the development story of the Far Cry shader system

Modern Mobile Rendering @ HypeHype
 the talk covers how the author designed a new rendering architecture aimed at mobile hardware

Day Night Cycle using LUT in Fragment Shader of Materials
 the article presents how a LUT (Look Up Table) can be used to apply a color transformation to conv...

CG Spotlight Slides  Screen Space Indirect Lighting with Visibility Bitmask
 slides covering Screen Space Indirect Lighting with Visibility Bitmask

Peeling back the varnish: The graphics of Diablo IV
 the blog post covers a highlevel overview of topics covering Diablo IV graphics techniques

Bring your game to Mac, Part 2: Compile your shaders
 the presentation presents how to convert the D3D12 shader for use with metal

[video] OpenGL vs. Direct3D  Servan Keondjian & Casey Muratori
 the 2hour interview discusses the history of the development of Graphics APIs

[video] I3D 2023 Keynote A Glimpse of Neural Rendering's Future by Marco Salvi
 the keynote presents an overview of the state of the art in neural rendering

[video] An introduction to Shader Art Coding
 the video tutorial explains shader programming aimed at newcomers

A Quickstart Guide to CUDA
 the article provides a tutorial on how to use CUDA for beginners

Stochastic Subsets for Bounding Volume Hierarchy (BVH) Construction
 The paper presents a new approach for constructing Bounding Volume Hierarchies (BVH) by leveraging...

GM Shaders Mini: Scaling
 the tutorial provides common scaling, stretching, and centering patterns when using pixel and UV c...

Iterative 𝛼(de)Blending: a Minimalist Deterministic Diffusion Model
 the paper presents a rederivation of diffusion models with more straightforward concepts of mixing...

[video] Where did my intersections go?
 the short video presents how raysphere intersection points behave when expressed with imaginary n...

[video] I3D 2023 Papers Session 4  Ray Tracing
 the video recording ACM SIGGRAPH Symposium on Interactive 3D Graphics and Games 2023 for Ray Traci...

Rendering Engine Architecture Conference  2023
 open, digital, and freely accessible conference covering many rendering engine architectures is ha...

[video] Frustum Culling // Terrain Rendering episode #9
 the video tutorial explains two different techniques of frustum culling

Khronos Osaka Dev Day Video and LunarG Presentation Slides Available
 slides and videos from the Khronos Osaka Dev Day have been released

Deus Ex – Alpha Terrain
 the article presents how the terrain in Deus Ex is quite different compared to other solutions

[video] [OpenGL Episode 25] Rotation Matrices (using glm)
 the video shows how rotation matrices are defined in mathematics and glm + OpenGL

[video] Halton LowDiscrepancy Sequence [Shaders Monthly #12]
 the video explains the effect of the Halton Sequence compared to random and grid sampling

Waterfall Shader Breakdown
 the article explains how to create a stylized waterfall effect

MicroMesh Construction
 the paper presents how to construct micro meshes from high

Unit Gradient Fields: SDFs, UGFs, and their friends
 the article provides a formal definition of a Unit Gradient Field

Advanced API Performance: CPUs
 the article presents CPU performance consideration for efficient usage of APIs

Introducing Vulkan Ray Tracing Position Fetch Extension
 the blog post describes a new Vulkan raytracing extension that allows the retrieval of positions f...

[video] I3D 2023 Papers Session 1  Neural Rendering and Image Warping
 video recording for the first I3D conference paper session has been released

From 0 to glTF with WebGPU: Rendering the First glTF Mesh
 the second part of the glTF mesh series covers how to interpret mesh data and render from WebGPU

Shader Execution Reordering: Nvidia Tackles Divergence
 the article presents the effect of Shader Execution Reordering (SER) on GPU performance

Introducing AMD Capsaicin Framework  our ARR Research Framework which includes our G...
 AMD released a new research framework aimed at the rapid development of multiple rendering impleme...

A Rough Idea of How Photon Mapping Works
 the article provides an overview of the Photon Mapping technique

Stochastic Texture Filtering
 the paper investigates and presents the quality and performance influence of stochastic texture fi...

GPU Hang Exploration: Splitgate
 the article provides a walkthrough of how to investigate a GPU hang found in Splitgate on Steam De...

[video] GDC 2023  TwoLevel Radiance Caching for Fast and Scalable RealTime Global ...
 the GDC presentation present a GI solution that aims to cache radiance into a cache hierarchy

[video] The LOD Manager // Terrain Rendering episode #8
 the video tutorial expands on the terrain rendering series by adding support for calculating LOD l...

RPS SDK Tutorial
 AMD released an extensive tutorial on how to use the Render Pipeline Shaders SDK

Microfacet theory for nonuniform heightfields
 the paper proposes a new method for the combination of rough surface NDFs

RealTime Neural Appearance Models
 The paper presents a new method to represent materials utilizing learned hierarchical textures com...

I want to talk about WebGPU
 the article presents a history of graphics API and how WebGPU fits into the history

Advanced API Performance: Sampler Feedback
 the guide contains best practices for using Sample Feedback on Nvidia hardware

Vulkan Video Decoding
 the article presents the video functionality that Vulkan exposes

Unit Gradient Fields: What do we mean by offset?
 the article presents an overview of Unit Gradient Fields (UGFs)

Cyberpunk 2077’s Path Tracing Update
 the article presents an indepth look at the performance of the latest Cyberpunk 2077 update

[video] Level Of Detail // Terrain Rendering episode #7
 the video tutorial about rendering terrain using OpenGL continues by explaining how LODs can be im...

Finegrained backface culling
 Article discusses implementing backface culling in mesh shaders

Building a new graphics engine in Rust  Part 4
 the article presents progress on a Rustbased home graphics engine project

Radeon™ GPU Profiler 1.15 provides an enhanced ISA view experience and more
 the article presents improvements done to the AMD GPU profiler

[video] A neat realtime water caustics technique using partial derivatives in UE!
 the video explains how to use partial derivatives in HLSL shaders to calculate the amount of light...

[video] A visual explanation for 3D transformation matrix multiplications
 the video tutorial explains how matrices are combined

[video] Quake's PVS: A hidden gem of rendering optimization
 the video explains how PVS (Potential Visibility Set) used by Quake is implemented

Battlefront II: Layered Explosion
 the article explains how star wars battlefront explosion VFX has been implemented

Cubic Interpolation of Quaternions
 the article explains a series of Interpolation and shows how they build up to cubic Quaternion int...

Symposium on Interactive 3D Graphics and Games 2023 papers on the web
 a collection of papers from the I3D 2023 presentation

[video] Math in Game Development Summit: A Visual Guide to Quaternions and Dual Quate...
 the GDC talk explains how Quaternions and Dual Quaternions work and how they affect objects under ...

Advanced Graphics Summit: Realistic RealTime Sky Dome Rendering in 'Gran Turismo 7'
 the GDC presentation discusses the new sky rendering model developed for GT7

GM Shaders Mini: FXAA
 the short tutorial presents how the FXAA algorithm is implemented

Simplifying Bézier paths
 the article discusses techniques to calculate Bézier that use fewer segments than the existing ori...

MaterialX  Version 1.38.7
 the latest version released from the Open MaterialX standards adds support for MaterialX Graph Edi...

The many ways of converting FP32 to FP16
 the article presents several different methods to convert between 32 and 16

Mipmap Generation
 the tutorial explains how to use WebGPU to use compute shaders to calculate the MIP maps for textu...

Contributing to Godot  Visual Shaders Nodes
 the article presents how to introduce custom shader nodes into the Godot Visual shader graph

New playground: integer.exposed
 the article introduces two new interactive playgrounds for integer and floating point numbers

[video] Advanced Graphics Summit: 'Marvel's SpiderMan' Remastered: A PC Postmortem
 the talk discusses how the PC port approaches PSO management to reduce stutter and manage memory w...

[video] Everyone can understand transformation matrices  and how it works
 the video explains visually to read and understand 4x4 transformation matrixes

Half baked and a half: a small update
 the blog post describes the approach of incrementally accumulating voxel data to augment the repro...

Direct3D 12: Adventures in Shaderland
 the article describes how Godot converts SPIRV shaders to DXIL for D3D12

[video] I3D 2023 Papers Preview
 the video presents an overview of the papers that will be presented during the I3D 2023 in Bellevu...

[video] Cyberpunk 2077 Ray Tracing: Overdrive Technology Preview on RTX 4090
 the video presents the visual difference the overdrive (ReStir

NVIDIA Displacement MicroMap Toolkit
 Nvidia released the Displacement MicroMap Toolkit SDK

From 0 to glTF with WebGPU: The First Triangle  Updated for Chrome 113 Release
 the tutorial shows how to render a first triangle with WebGPU

Web3D Survey
 the website collects information about the API and extension availability for Web

Matrix Compendium
 the article provides a central place for matrix understanding for computer graphics

Random Sampling Experiments: Avoid The Sides!
 the blog post shows different sampling strategies

Shader Tutorial: Color Correction
 the tutorial explains how to apply color modifications in shaders

[video] Stylized Grass and the many techniques available in UE to reach the desired s...
 the long Video explains detailed how to render a Stylized grass

Subspace Culling for Ray–Box Intersection
 the paper proposes a new solution to accelerate AABB when used as BVH for objects that are thin an...

Efficient Spatial Resampling Using the PDF Similarity
 the paper introduces a new rejection method based on the PDF shape similarity between pixels for s...

World Space Path Resampling
 the article presents an overview of ReSTIR/ReGIR, explaining similarities and differences between ...

let's talk about normals
 the article presents the difference between Object Normals, Tangent Normals as well as World Norma...

Mesh Shaders and Meshlet Culling in Metal 3
 the article presents an overview of use cases for mesh shaders

You Can Use Vulkan Without Pipelines Today
 the blog post introduces the VK_EXT_shader_object extension that allows Vulkan to be used without ...

A Generalized Ray Formulation For WaveOptics Rendering
 the paper introduces a generalized ray concept into wave

Agility SDK 1.710.0preview: GPU Upload Heaps and Nonnormalized Sampling
 the new D3D12 SDK adds support for CPU and GPU shared heaps on iGPUs and GPUs with re

GM Shaders Mini: Derivatives
 the article explains what function derivatives are and how they are helpful in shaders

Practical Projective Geometric Algebra
 slides of the GDC talking covering Geometric Algebra have been released

[video] Coding Adventure: Ray Tracing
 the detailed video tutorial shows how to implement raytracing applications

PIX and ID3D12ManualWriteTrackingResource
 the new API allows applications to disable the use of kernel WRITE_WATCH for CPU

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

Realtime sparse distance fields for games
 the presentation introduces the implementation of Brixelizer, an AMD real

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

DNND 2: Tensors and Convolution
 the second article of the series continues uncovering how Deep Neural Networks are implemented

[video] Geomipmapping // Terrain Rendering episode #6
 the terrain video tutorial series introduces a continuous level of detail for geometric details

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...

Half baked: Dynamic Occlusion Culling
 the blog post discusses designs and considerations for occlusion Culling techniques

Leveraging Rust and the GPU to render user interfaces at 120 FPS
 the article discusses the implementation of the GPUI library

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

Notes on FFTs: for users
 the article presents different use cases of Fourier Transforms from a user perspective

[Video] Iridescent Bubble Shader  Advanced Materials  Episode 18
 the video tutorial explains the effect of iridescence, why it happens, and how to replicate it

[Unreal] GameCubeStyle Stencil Lights
 the article discusses how to implement a lighting model as found in the Legend of Zelda: The Wind ...

DNND 1: a Deep Neural Network Dive
 the article discusses the basics of Convolutional Neural Networks

Depthonly Screen Space Ambient Occlusion (SSAO) for Forward Renderers
 the article shows how to implement SSAO using WebGL 2

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

Generalization of Adobe's Fresnel Model
 the short paper presents an extension to the Adobe Standard Material model that allows specific re...

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

[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...

The Year of the Vulkan Book
 the article discusses the author's experience of writing "Mastering Graphics Programming with Vulk...

Vectors, Matrices & Matrix Order
 the article discusses matrix and vector representation

Float Compression 7: More Filtering Optimization
 the article continues the series on float compression topics

PIX 2303.02: You asked, we listened! A bumper PIX release
 new release of PIX contains a vast list of new developments

Understanding Vulkan device buffer address alignment
 the article explains the alignment requirements of buffer loads from VK_KHR_buffer_device_address

Realtime Cluster Path Tracing for Remote Rendering
 the presentation covers a realtime clusterbased path

[video] Simple Lighting in Defold  Screen Space Light Maps
 the video tutorial presents a simple lighting model that uses sprites to define light effects

Vulkan all the way: Transitioning to a modern lowlevel graphics API in academia
 the paper explains the experience of transitioning university classes to be taught using Vulkan in...

[video] How to Improve Shader Performance by Resolving LDC Divergence
 the video discusses the problem of nonuniform constant loads within a single wrap

CUDA LOD Generation
 the paper presents how to use GPUbased techniques to implement LOD construction of point clouds

[video] Lighting // Terrain Rendering episode #5
 the latest part of the video tutorial discusses how to apply lighting to a terrain using OpenGL

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...

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

Reading Veach’s Thesis, Part 2
 the article continues a series of understanding the Robust Monte Carlo Methods for Light Transport...

Twopass Gaussian blur coeffifients generator
 the article provides a calculator that generates offsets and weights for a separable Gaussian blur...

WebGPU Error Handling best practices
 the article describes the error handling techniques that are available when using WebGPU

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

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...

Impressions from Vulkanised 2023 Conference
 the author presents his impression from the Vulkanied conference

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

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

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

[video] Calculating RaySphere Intersections
 the video tutorial explains how to implement raysphere intersection testing

Fast RealTime Shading for Polygonal Hair
 the paper presents a technique to approximate hair lighted by an environment map, direct lighting,...

Float Compression 6: Filtering Optimization
 the blog post continues the series on float compression techniques

[video] Parallax Occlusion Optimization  Advanced Materials  Episode 15
 the video discusses the difference between Parallax Occlusion and normal mapping

Screen Space Indirect Lighting with Visibility Bitmask
 the paper proposes an expansion of Horizonbased indirect illumination by using visibility bitmask...

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

GM Shaders Mini: Blendmodes
 the short tutorial shows how to recreate photoshop blend modes using GLSL shader code

A fast and precise triangle rasterizer
 the article presents how to implement a software triangle rasterizer

Getting Started with Vulkan Compute Acceleration
 the tutorial explains the basics of compute shader usage with Vulkan by implementing a compu...

Technically Art: Issue 138 (11.02.2023)
 a collection of tech art tweets covering topics such as procedural modeling, volumetric motion blu...

[video] Texturing // Terrain Rendering episode #4
 the video tutorial explains how to apply textures to a terrain system

Float Compression 0: Intro
 the start of a series of blog posts that explores the space of compressing floating point data

GM Shaders Mini: Normal Maps
 short tutorial explains the concept of normal maps and how it influences the lighting computations...

Shader Tutorial: Subsurface Scattering
 the article explains how to create a shader in Unity that gives an object a subsurface scattering ...

Compute Shader thread index to 2D coordinate
 the blog post explains how to convert a onedimension threadIndex from compute shader into a 2D co...

[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...

WebGL / WebGPU Jan 2023 meetup highlights
 the article presents a summary of what was discussed at the WebGL / WebGPU meetup

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...

PS2 Vector Unit Lighting on Shadowman2
 the article presents a look back at the Shadowman game implementation for the PS2

Teardown Frame Teardown  Rendering analysis
 the article presents a rendering analysis of the game Teardown

Accelerated Photon Mapping for Hardwarebased Ray Tracing
 the paper presents how to take advantage of ray tracing hardware for progressive photon mapper

Bringing Nanite to Fortnite Battle Royale in Chapter 4
 the article explains updates required for Chapter 4 of Battle Royale

Introducing Compressonator v4.3
 the new release introduces support for the Brotli

[video] Imagebased Lighting (IBL) of PBR Materials [Shaders Monthly #11]
 the video presents how to implement imagebased lighting of the Cook

Infinite Quadtrees – Fractal Coordinates
 the article introduces the idea of expression quadtrees in terms of a collection of square grids

Lumen brings realtime 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...

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

[video] SIGGRAPH 2022  Advances in Spatial Hashing
 the video explains how Spatial hashing applies to storing sparse spatial data

Fast, Near Lossless ‘Compression’ of Normal Floats
 the article explains a method to compress 32bit floats into 24

HighPerformance Graphics 2023  Call for Participation
 the HighPerformance Graphics 2023 conference is open for submissions

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)

[video] Midpoint Displacement // Terrain Rendering episode 3
 the video explains a second technique to generate terrains taken from the Focus on 3D Terrain Prog...

Rotation with three shears
 the article shows how to rotate a 2D sprite using 3 shear operations

AMD RDNA™ 3 Instruction Set Architecture (ISA) reference guide is now available
 the new AMD hardware guide for RDNA3 has been released

Approximate projected bounds
 the article shows techniques implement conservative techniques to project bounding boxes and spher...

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

Tangent Spaces and Diamond Encoding
 the article provides an overview of Tangen Space Encodings

Optimize Your Graphics with RenderDoc Meta Fork
 the article presents the Meta Quest exclusive features of the RenderDoc fork

An Introduction to Vulkan: A Full Day Tutorial
 during the Vulkanised 2023 conference in Munich, a full

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

Random thoughts after moving from GLSL to HLSL
 the author describes the personal experience with GLSL and HLSL gained through moving AnKi 3D betw...

Min/Max Buffer Precision Improvement
 the blog post explains how to improve the precision when encoding min

How to accelerate AI applications on RDNA 3 using WMMA
 the article covers how Wave Matrix Multiply Accumulate (WMMA)

Practical Tips for Optimizing Ray Tracing
 the article provides techniques to speedup raytracing workloads

Let’s talk about (GPU) crashes
 the article presents a discussion of different sources of GPU hangs

[pptx] Deep Dive into FidelityFX Super Resolution 2
 the presentation contains a stepbystep walkthrough of the FSR implementation

Updates in d3dx12.h: Nuget Packaging, Header Bloat Reduction, and D3DX12GetCopyableFo...
 a new version of the D3D Agility SDK has been released

[video] Fault Formation // Terrain Rendering episode 2
 the video shows how to implement a Fault Formation algorithm for a procedural terrain using OpenGL...

[video] niagara: Culling optimization
 another part of the Vulkan series that implement GPU culling

Experimenting with fp16, part 2
 the blog post continues the discussion of the effects of using 16

Requiem for pietgpuhal
 the article discusses the reasoning why Vello (a GPU compute

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

Improving color quantization heuristics
 the article discusses techniques for improving color quantization algorithms

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...

Screenspace Variable Rate Shading in Unity with DirectX 12.
 The article discusses screenspace variable rate shading (VRS), a technique that can improve perfo...

Column Major and Row Major Vectors and Matrices (for games)
 the article explains the difference between rowmajor and column

[video] Hexagonal Tiling Explained!
 The video explains how to create a hexagon using SDFs in shadertoy

Unity Mobile Game Performance Optimization: Balance between Graphics Performance and ...
 the article discusses strategies for optimizing the performance of mobile games in Unity

TwoPass Occlusion Culling
 the blog posts describes how Hierarchical ZBuffer (HZB) Occlusion Culling uses a depth buffer to ...

Ghost of Tsushima SIGGRAPH Talks
 summary of two Siggraph talks by the author covering Ghost of Tsushima

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

[video] niagara: Triangle culling
 the stream covers the implementation and exploration of triangle culling into a GPU culling pipeli...

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

[video] Coding a Bezier curve from scratch!
 the video presents how to implement Bezier Interpolation

Introduction of the Raytracing Technology Part 2
 the article continues the series by covering an overview of raytracing techniques

Meshlet sizing theory
 the article presents metrics to calculate to judge the optimal size for meshlets

[video] Compute Shaders in Bevy
 the video presents how to integrate a compute shader into the Rust

Stream compaction using wave intrinsics
 the article presents how to use wave intrinsics to reduce the number of atomic operations required...

Introducing AMD Render Pipeline Shaders SDK
 This article provides an overview of the Render Pipeline SDK design and implementation

Introduction of the Raytracing Technology Part 1
 the article provides an overview and history of raytracing

[video] Heightmaps // Terrain Rendering episode 1
 the video is the start of a new video series to render a height map using OpenGL

[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 ...

[video] CUDA 12 New Features and Beyond
 the video discusses new features in Cuda 12 and a look at future developemnts

GM Shaders Mini: Fluids
 the article presents a technique to improve the look of a particle based fluid system

Bringing Nvidia® and AMD support to oneAPI
 the article explains how the oneAPI API can be used to target intel, nvidia and AMD GPUs

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...

Understanding The Math Behind ReStir DI
 the indepth article explains the mathematics behind the original ReStir and an in

UE5.1  New shading models and changing the GBuffer
 the article presents how to integrate a custom toon shading model into UE5.1

[video] Live Coding: 3d Truchet Weave
 the video presents a walkthrough of how to replicate a Truchet Weave pattern using ShaderToy

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...

[video] The Continuity of Splines
 the detailed video explains splines and concepts derived/extended from these

[video] Shader Code and Maths to Node Graphs
 the presentation focuses on how to approach the implementation of abstract code/math expressions t...

ECCV 2022 Tutorial  Neural Volumetric Rendering for Computer Vision
 slides and videos for the Neural Volumetric Rendering for Computer Vision have been released

Behind the Pretty Frames: Death Stranding
 the article provides a detailed look into a frame breakdown from the Decima engine

MIPNet: Neural NormaltoAnisotropicRoughness MIP Mapping
 the paper presents a new method to calculate texture MIP maps that preserves compatibility with ex...

[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...

Studying 'Spectral Primary Decomposition'
 the article continues the series on spectral rendering

[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

[video] How I Made The World with SINE
 the video focuses on the definition of a procedural terrain from a vertex shader

[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...

Shaders Explained: Dithering
 the article explains how two implements two different types of dithering in metal shaders

[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...

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...

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

Technically Art: Issue 135 (25.11.2022)
 contains a collection of tweets covering procedural texturing with MaterialX, shader VFX examples

[video] Car Paint Shader  Advanced Materials  Episode 9
 the video tutorial presents several techniques for creating a car paint shader

Shader Reflection using the DirectX Shader Compiler
 the article presents how to use the DXC library to compile and gather information from compiled D3...

BrotliG: An opensource compression/decompression standard for digital assets that i...
 AMD introduces a GPUcompatible implementation of the Brotli lossless compression algorithm

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

[video] But what is a convolution?
 the video provides a great visual explanation of convolution filters

Spherical Elevation Adjusting Arbitrary Normals
 the article explains how to offset normals along spheres so that displacement doesn't cause self

Radeon™ Raytracing Analyzer source code available + meet amdrdf
 the AMD Radeon Raytracing Analyzer has been opensourced

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...

VK_EXT_descriptor_buffer
 new Vulkan proposal outlines improvements to the managem