-
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
-
Multi-process 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 micro-meshes)
- 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 WebGPU-powered puzzles that aim to teach graphics programming
-
Freya's Guide to XYZ Axes and Handedness
- a diagram that visually explains left-handed vs. right
-
Building Real-Time 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 screen-space 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 Production-Ready 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 machine-readable AMD GPU ISA specifications
- the short blog post presents how to use human-readable ISA documentation to decode one CDNA instru...
-
AMD GPU machine-readable ISA documentation
- AMD released ISA documentation for RDNA2 and CDNA ISA
-
Gigi: Rapid Prototyping Platform for Real-Time 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 cluster-based 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
-
Closed-Form 3x3 Matrix Decompositions
- the article discusses a closed-form 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: Hands-On 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: SPIR-V 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
-
GPU-friendly 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 Large-Scale Game Components
- the paper presents a concurrent binary tree (CBT) for adaptive triangulations of arbitrary (half
-
H-PLOC: Super-fast, high-quality BVH construction
- the paper presents an approach to BVH construction based on the parallel locally
-
DGF: A Dense, Hardware-Friendly Geometry Format for Lossily Compressing Meshlets with...
- the paper presents a block-compressed geometry format
-
Procedural generation
- the blog post provides an overview of generating a procedural world
-
Cache Points for Production-Scale Occlusion-Aware Many-Lights Sampling and Volumetric...
- This paper provides a deep dive into Disney's Hyperion Renderer's many
-
GigaVoxels DP : Starvation-Less 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 2-part 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
-
Real-Time 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.17-preview: 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
-
Real-Time 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 Order-Independent 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 Face-Off: 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 'Hi-Fi 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 programming-focused conference in Breda, Netherlands
-
[video] Exploring a New Approach to Realistic Lighting: Radiance Cascades
- the video explains visually step-by-step 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
-
GPU-friendly 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 Real-Time Model for Diffraction on Rough Surfaces
- the paper introduces a real-time 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 re-rendering
- the paper presents an approach for incremental re
-
High Performance Graphics - Conference Program
- the conference program for the High-Performance 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 high-level 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
-
Perspective-Correct 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 Real-time 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
-
Real-Time 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 high-level 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
-
Real-Time Path Guiding Using Bounding Voxel Sampling
- the paper introduces a path-guiding method that utilizes an irradiance voxel data structure
-
Area ReSTIR: Resampling for Real-Time 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 Fully-correlated Anisotropic Micrograin BSDF Model
- the paper presents an improved version of a BSDF developed for micro grain materials
-
[video] Beyond White Noise for Real-Time 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 cluster-based mesh rendering using mesh shaders
-
N-BVH: 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
-
Pre-condition block compressed textures with Brotli-G
- the blog post presents that the Brotli-G (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 trade-offs 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 Spatially-Varying Noise Patte...
- the paper discusses a generative model that is trained to generate multiple types of noise and ble...
-
Filter-Adapted Spatio-Temporal Sampling for Real-Time 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 GPU-driven materials
- the presentation is packed with detailed information about the process of implementing shader grap...
-
Real-time 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 Non-Differentiable Rasterizer into a Differentiable One with Stochasti...
- the paper presents a method that allows existing non
-
VNDF importance sampling for an isotropic Smith-GGX 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
-
Real-time 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 'Hi-Fi RUSH'
- the GDC presentation provides an in-depth 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 High-Quality 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...
-
Real-Time 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
-
Moebius-style post-processing 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] Post-mortem 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
-
GI-1.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 G-Buffer 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 vector-art 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
-
Cross-Stage 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 Smooth-Minimum operator or Smooth-Union
- the article provides an in-depth look at the Smooth
-
Inside Snapdragon 8+ Gen 1’s iGPU: Adreno Gets Big
- the article provides an in-depth 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
-
Ray-Tracing Validation at the Driver Level
- the article presents a new driver-level 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 in-depth 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 Rust-based 2D editor Graphite is looking for Students to join the Google Summer of Code projec...
-
Collaborative Control for Geometry-Conditioned 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 Anti-Aliasing Deep Dive
- the video provides a history of ant-aliasing 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 next-gen 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: Tile-based light culling, compute ...
- the video explains Forward+ shading techniques - shows how to express frustum culling, how compute...
-
TRIPS: Trilinear Point Splatting for Real-Time 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 in-depth 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 SPIR-V 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 GPU-based 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 Real-Time
- 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...
-
Low-level thinking in high-level 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 in-depth 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 GPU-based animation for large crowds is implemented
-
[video] Digital Foundry's Best Game Graphics of 2023 - PC, PS5, Xbox, Switch - Anothe...
- year-end 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 micro-meshes for mesh compression
- the article presents how to use Simplygon to generate micro
-
Simulating Fluids, Fire, and Smoke in Real-Time
- 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 brand-new 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 render-bundles 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 Nvidia-specific 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 per-triangle 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 Performance-Aware 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 Micro-Mesh 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
-
Real-time 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 beginner-level 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 in-depth 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 sokol-gfx 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
-
Locally-Adaptive LOD for Hardware-Accelerated 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] Worn-Out 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 real-time ray tracing
- The master thesis provides an overview of the different trade
-
[video] AMD FSR3 Hands-On: 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 - Frequency-domain blue noise generator
- the in-depth 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 Parallax-corrected 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 Image-based Lighting [Shaders Monthly #13]
- the video shows how to sample texture lighting information stored in environment maps using import...
-
Toon Shading Fundamentals - From Cel-Shading 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 in-depth 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: Tangency-Aware 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 floating-point
- 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 Computer-Generated 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] Large-Scale 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 - How-To 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 high-level 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 Real-Time Solution for Rendering Trees
- The article explains the Tencent tree rendering system
-
Solving Self-Intersection 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 MaterialX-related 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...
-
Ray-aligned Occupancy Map Array for Fast Approximate Ray Tracing
- The paper introduces a Ray-aligned 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 Real-time
- 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 application-specific markers to be inserted and accessed from the cr...
-
GM Shaders Mini: CRT
- the article presents how to create a post-processing 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 glTF-Compressor 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
-
Denoising-Aware 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 post-processing.
- 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 Real-Time 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
-
Sub-pixel Distance Transform - High quality font rendering for WebGPU
- the article presents an in-depth look at SDF font rendering techniques
-
Micro-Mesh 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
-
Real-Time 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
-
In-Game GPU Profiling for DirectX 12 Using SetBackgroundProcessingMode
- the blog post presents how to use available D3D12 APIs to create stable applications for profiling...
-
Tile-based Lightweight Integer Compression in GPU
- the paper introduces a tile-based decompression scheme aimed to allow data queries to operate in a...
-
Intermediate Graphics Library (IGL)
- Meta open-sourced their cross-platform 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 in-depth 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 bottom-level 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
-
Real-Time Ray Tracing of Micro-Poly Geometry with Hierarchical Level of Detail
- the paper introduces a method that enables micro-poly 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 in-depth look at the practical use of D3D12 Work Graphs
-
PIX 2306.21-preview: 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
-
Real-Time 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 - Long-term 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 high-level 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 2-hour 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 ray-sphere 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 Low-Discrepancy 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
-
Micro-Mesh 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 - Two-Level Radiance Caching for Fast and Scalable Real-Time 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 non-uniform heightfields
- the paper proposes a new method for the combination of rough surface NDFs
-
Real-Time 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 in-depth 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...
-
Fine-grained 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 Rust-based 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 Real-Time 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 Spider-Man' 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 SPIR-V 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 Micro-Map Toolkit
- Nvidia released the Displacement Micro-Map 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 Wave-Optics Rendering
- the paper introduces a generalized ray concept into wave
-
Agility SDK 1.710.0-preview: GPU Upload Heaps and Non-normalized 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
-
Real-time 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] GameCube-Style 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
-
Depth-only 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
-
Real-time Cluster Path Tracing for Remote Rendering
- the presentation covers a real-time cluster-based 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 low-level 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 non-uniform constant loads within a single wrap
-
CUDA LOD Generation
- the paper presents how to use GPU-based 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...
-
Two-pass 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 Ray-Sphere Intersections
- the video tutorial explains how to implement ray-sphere intersection testing
-
Fast Real-Time 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 Horizon-based 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 one-dimension 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 Hardware-based 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] Image-based Lighting (IBL) of PBR Materials [Shaders Monthly #11]
- the video presents how to implement image-based 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 real-time global illumination to Fortnite Battle Royale Chapter 4
- the blog post describes what changes were required to make Lumen work in 60 FPS mode for the new s...
-
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 32-bit floats into 24
-
High-Performance Graphics 2023 - Call for Participation
- the High-Performance 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 step-by-step 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 piet-gpu-hal
- the article discusses the reasoning why Vello (a GPU compute
-
Experimenting with fp16 in shaders
- The article discusses the use of 16-bit 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...
-
Screen-space Variable Rate Shading in Unity with DirectX 12.
- The article discusses screen-space variable rate shading (VRS), a technique that can improve perfo...
-
Column Major and Row Major Vectors and Matrices (for games)
- the article explains the difference between row-major 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
-
Two-Pass Occlusion Culling
- the blog posts describes how Hierarchical Z-Buffer (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 in-depth 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 Normal-to-Anisotropic-Roughness 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...
-
Brotli-G: An open-source compression/decompression standard for digital assets that i...
- AMD introduces a GPU-compatible implementation of the Brotli lossless compression algorithm
-
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 open-sourced
-
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