-
[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 management of descriptor memory
-
[video] GCAP22 Highlights: Expert Level Debugging
- the presentation provides an overview of x64 assembly
-
AMD lab notes
- the series of blog posts aimed to share the lessons learned from tuning applications for AMD GPUs
-
Decompiling Nvidia shaders, and optimizing
- the article presents how to decompile NVidia OpenGL and Vulkan shader
-
Technically Art: Issue 134 (18.11.2022)
- a collection of tweets covering a flood filling, VFX breakdowns, unit shader books
-
[video] Metal Shader - Advanced Materials - Episode 7
- the video tutorial explains how to create a metal material
-
BC1 Compression Revisited
- the article describes how to compress high-quality BC1 images efficiently
-
Accelerating Load Times for DirectX Games and Apps with GDeflate for DirectStorage
- the article presents an overview of GPU-based GDeflate compression
-
Graphics API secrets: format casting
- the article presents the API rules for casting between texture formats in both Vulkan and D3D12
-
GPU submission strategies
- the presentation shows how submitting/recording commands lists from the API to the GPU affects per...
-
Triplanar, Dithered Triplanar, and Biplanar Mapping in Unreal
- the article provides an overview of the implementation of three different techniques for procedura...
-
[video] Physically Based Rendering // Intermediate OpenGL Series
- the video provides an overview of a Physically Based shading model
-
Bindless rendering — validation
- the blog post describes the design of a validation system for bindless shader resource access
-
[video] SIGGRAPH 2022 Real-Time Live!
- recording of the Siggraph showcase of original, interactive projects of the year
-
Nubis, Evolved: Real-Time Volumetric Clouds for Skies, Environments, and VFX
- the slides for the Real-Time Volumetric Clouds of Horizon Zero West from SIGGRAPH have been releas...
-
[video] Deferred Lights - Pixel Renderer Devlog #1
- the video explains the implementation of a 2D deferred shading system
-
GM Shaders Mini: Noise 2
- the article explains how to generate Worley, Voronoi, and fractal noise in a GLSLS shader
-
[video] Global Lecture with Ed Catmull - The Wild, Unexpected, Exponential Ride Throu...
- the lecture presents an overview of computer-graphics technology of the last 50 years as experienc...
-
GM Shaders Mini: Noise
- the tutorial covers how to generate different noise type in shaders
-
[video] Shader Sauce: How to Use Shaders to Create Stylized VFX
- the video talk introduces a collection of fundamental shader concepts and tricks aimed at the crea...
-
Vector text rendering in Unreal Engine
- the article covers how to extend UE4 with a custom vertex format and shading pass
-
[video] Investigating and Dispelling Shader Myths... with Science!
- the talk presents a set of common misconceptions about shader code patterns
-
Write your first GPU Kernel using Metal
- the tutorial explains the basic steps required to execute a metal compute shader kernel
-
Unreal Engine Game Optimization on a Budget
- the presentation provides an overview of essential concepts when optimizing an Unreal Engine game
-
MeshTaichi: A Compiler for Efficient Mesh-based Operations (SIGGRAPH Asia 2022)
- the paper presents a mesh computation compiler that separates mesh operations from the data partit...
-
[video] ICC Colour Profiles, AdobeRGB & sRGB, and \"Colour Management\" on Windows. T...
- the video shows the importance of color profiles
-
[video] Intel’s New AI: Amazing Ray Tracing Results!
- the video presents a new upsampling technique developed by intel (Temporally Stable Real
-
Shader Tutorial: Enter The Matrix
- the tutorial presents how to rotate a texture in 2D space
-
Low Discrepancy Color Sequences
- the article describes a possible solution to generate a color palette with neighboring colors bein...
-
Performance Comparison of Bounding Volume Hierarchies for GPU Ray Tracing
- the paper presents a comparison of a large number of methods for the construction of BVHs for ray ...
-
FSR 2.1 UE plugin enhancements part 1: Intro & improving foliage appearance using the...
- the 5 part series provides a walkthrough of common issues when using the FSR 2.0 upscaler in Unrea...
-
binary search for sdfs - 2018, 2022
- the article presents the story of how the author experimented with binary search in a shader for a...
-
Godot SDFGI - Solving the accessible Global Illumination problem in Godot
- the slides discussing the new GI solution implemented for Godot
-
Opening HLSL Planning
- the blog post announces that a new, more open model for HLSL language development
-
SIGGRAPH Asia 2022 papers on the web
- a collection of papers from SIGGRAPH Asia 2022 - the list is updated every couple of days at this ...
-
Snowy Rock Shader - Advanced Materials - Episode 4
- the video shader tutorial series covers how to create a shader that allows procedural rock shading...
-
GI-1.0: A Fast Scalable Two-Level Radiance Caching Scheme for Real-Time Global Illumi...
- the AMD paper presents the findings for a new dynamic GI solution
-
stanford - Computer Science cheatsheets
- a collection of cheatsheets on the high-level concepts of topics such as AI, machine learning, and...
-
Ray Tracing: How NVIDIA Solved the Impossible!
- the video presents a history of light transport algorithms development
-
Emulating Double Precision on the GPU to Render Large Worlds
- the article presents that the Godot engine supports compilation in double
-
My mesh shaders talk at XDC 2022
- the blog post provides the text version of the mesh shader talk presented
-
Better outline rendering using surface IDs with WebGL
- the article presents how to improve an outline rendering technique by using surface IDs instead of...
-
Improve Shader Performance and In-Game Frame Rates with Shader Execution Reordering
- the article presents how the Nvidia hardware feature Shader Execution Reordering (SER) can be leve...
-
Transparent and Crystal Clear: Writing Unity URP Shaders with Code, Part 3
- the article (and video) explains how to author and integrate shaders with transparency support for...
-
DirectStorage 1.1 Coming Soon
- the article presents that the next DirectStorage release will start to support GPU
-
[video] Sparkling Snow Shader - Advanced Materials - Episode 2
- the video tutorial series covers how to build a complex rock shader
-
Intel® Arc™ Graphics Developer Guide for Real-Time Ray Tracing in Games
- the Developer Guide provides a functional description of Intel’s hardware ray
-
Upscale SDK comparison
- the blog post provides a comparison of DLSS 2.4, FSR 2.1.1, and Intel XeSS upscaling techniques
-
[video] What is NVIDIA DLSS 3? | The Performance Multiplier
- the video provides a high-level explanation of the DLSS 3 system
-
Lighting Test for Unreal Engine 5
- a collection of simple test scenes for light conditions in UE5 and NVIDIA Falcor 5.2 Mogwai path t...
-
My take on shaders: Compute shaders
- the article presents how to implement a compute shader that can be used to paint on vertex meshes ...
-
[video] How to blend skeletal animations // Intermediate OpenGL Series
- the video explains how to implement blending between two skeletal animations
-
Post-Processing – In-Depth Camera Distortion Effects
- the article provides examples of different camera distortion effects (with code examples)
-
PIX 2210.10-preview: Initial support for Preview Agility SDK v706
- PIX adds a separate preview branch of the tool that supports the Preview Agility SDKs
-
[video] How Ray Tracing (Modern CGI) Works And How To Do It 600x Faster
- the video provides a walkthrough of ray tracing fundamentals
-
Progressive Material Caching
- the paper introduces a progressive technique to cache material evaluations at runtime
-
On AlphaTensor’s new matrix multiplication algorithms
- the article discusses recent AlphaTensor’s discovery on matrix multiplication
-
Real-time distance field builder twitter thread
- the Twitter thread summarises the real-time distance field generator used by AMD research work
-
Fused BVH to Ray Trace Level of Detail Meshes
- the paper presents a method to extend a mesh BVH with additional data so that it can be shared bet...
-
Combining GPU Tracing Methods within a Single Ray Query
- the paper presents a method that combines distance field tracing with hardware ray tracing
-
Technically Art: Issue 128 (07.10.2022)
- a collection of Twitter posts about a large variety of tech artist topics
-
Notes about Nanite in UE5.1 preview
- the article presents an overview of ongoing Nanite developments the developer noticed in the UE5.1...
-
Simulating Wind on Procedural Terrain using GPU Accelerated Lattice Boltzmann Method
- the blog post discusses a numerical method for fluid flow to simulate wind flow over terrain
-
Notes on screenspace reflections with FidelityFx SSSR
- the article provides an overview of the implementation underlying AMDs' FidelityFx screen space re...
-
[video] Introduction to Raytracing with the Radeon Developer Tools Suite
- the video provides an introduction to the AMD raytracing tool
-
Screen Post-processing Effects: Gamma Space and Linear Space
- the article provides a summary of two plots for the existence of gamma space related to CRT and hu...
-
Screen Post-processing Effects: Color Models and Color Grading
- the article discusses the RGB and HSV color spaces
-
[video] An In-Depth look at Lerp, Smoothstep, and Shaping Functions
- the video presents visual explanations of lerp (linear interpolation)
-
Bindless Rendering in DirectX12 and SM6.6
- the blog post provides an introduction level guide to using the D3D12 bindless model
-
An Algorithm for Polygon Intersections
- the article presents how to calculate the intersection between axis
-
[video] Nvidia DLSS 3 on RTX 4090 - Exclusive First Look - 4K 120FPS and Beyond
- the video explains how DLSS uses motion vectors and optical flow fields to implement AI Frame Gene...
-
Vulkanised conference - call for submissions
- the 2023 Vulkanised conference has been announced for in
-
Intel(R) Xe Super Sampling (XeSS) SDK
- Intel has released the SDK for the XeSS upscaler
-
Ray Tracing of Signed Distance Function Grids
- the paper presents a comparison of traversal and voxel intersection testing of signed distance fun...
-
Color-Perception-Guided Display Power Reduction for Virtual Reality
- the paper presents a method designed for VR applications that adjust colors to reduce display colo...
-
Animation Retargeting
- the blog post provides a method to allow the retargeting of animations between models that share a...
-
[video] Post Process VHS Filter Part 3 - Shader Graph Basics - Episode 62
- the video tutorial presents how to implement a noise that recreates the interference of unshielded...
-
Advances in Real-Time Rendering in Games 2022
- the slides for the Siggraph 2022 Advances in Real
-
Quaternions: a geometrical interpretation.
- the article presents a visual interpretation of Quaternion mathematics
-
[video] Easily Remaster Classic Games with NVIDIA RTX Remix
- the video introduces the NVIDIA RTX Remix engine
-
[video] Soft Shadows - PCF & Random Sampling // OpenGL Advanced Rendering Series
- the video tutorial explains how to improve an OpenGL shadow mapping implementation to allow softer...
-
Improving raytracing performance with the Radeon Raytracing Analyzer (RRA)
- the post provides insights into ray tracing BVH performance
-
Vulkan Render-Queues and how they Sync
- the article presents how a render graph gets updated to handle exclusive resource ownership betwee...
-
[video] SIGGRAPH 2022 Talk - A Fast & Robust Solution for Cubic & Higher-Order Polyno...
- the video presentation provides a walkthrough of methods to find the real roots of polynomials
-
Defeat Banding – Part II
- the article discusses a method to detect artifacts in video
-
[video] Pixelation Filter - Shader Graph Basics - Episode 61
- the video tutorial presents how to create a fullscreen post
-
Fast Post-Processing on the Oculus Quest and Unity
- a short article that shows an option to apply tone mapping in forward shading without wanting to u...
-
Screen Post-processing Effects: Depth of Field (DOF) and Its Implementation
- the article provides an overview of depth of field effects
-
[video] Practical Skeletal Animation // Intermediate OpenGL Series
- the video tutorial provides a walkthrough of issues in supporting animated models
-
Visualizing General Relativity
- the article explains a method to simulate and render different warped space
-
Rendering my balls in a fragment shader
- the blog post provides a walkthrough of how to render 2D billiard balls in a pixel shader
-
Parallel curves of cubic Béziers
- the article describes a method to generate a cubic Bézier curve that is parallel with a defined of...
-
Improving Vulkan graphics state tracking in Mesa
- the article discusses how API pipeline state maps onto different hardware types
-
Technically Art: Issue 124 (9.09.2022)
- a collection of tweets about tech art, VFX, and related topics
-
Gradient-descent optimized recursive filters for deconvolution / deblurring
- the post discusses infinite impulse response (IIR filter)
-
[video] Post Process VHS Filter Part 2 - Shader Graph Basics - Episode 60
- the second video of the series VHS filter series adds support for worn
-
[video] Ray Marching, and making 3D Worlds with Math
- the short video provides a great visual introduction to distance functions and ray marching
-
Lighting participating media with thousands of lights
- the article shows the Grid-Based Reservoirs sampling technique for dynamic lights in participating...
-
Mesh Shading for Vulkan
- mesh shader support has been added to Vulkan through VK_EXT_mesh_shader
-
[video] Intel Arc Graphics | Intel Arc A-Series Graphics Ray Tracing Technology Deep ...
- the video starts with a visual overview of rasterization, raytracing, and hybrid rendering techniq...
-
Progressive image stippling and greedy blue noise importance sampling
- the article presents a method to generate Progressive blue noise samples that follow the image con...
-
[video] Post Process VHS Filter - Shader Graph Basics - Episode 59
- the video presents how to implement two VHS effects, interlacing lines and YIQ color grading, in a...
-
Compressing global illumination with neural networks
- the blog presents the idea of using a simple neural network to encode diffuse indirect light for a...
-
[archive] Practical Aspects of Spectral Data in Digital Content Production - SIGGRAPH...
- second year of the spectral rendering Siggraph course
-
Technically Art: Issue 123 (2.09.2022)
- a collection of tweets about tech art, VFX, and related topics
-
Barycentric Quad Rasterization
- presents why and when a quad is being drawn as two triangles can cause discontinuities along the e...
-
Practical Real-Time Hex-Tiling
- the paper introduces an adaptation of the Heitz and Neyret texture tiling technique
-
Clip control on the Apple GPU
- the blog post provides an insight into how the apple metal driver is separated into components
-
[video] Creating an Outline Effect as a Post-Process in Unity
- the video tutorial explains how to implement an outline effect in Unity
-
HPG 2022 Keynote: The Journey to Nanite - Brian Karis, Epic Games
- the talk discusses the issues artist encounter and how Nanite goals are designed to resolve them
-
CoG 2022: Automatic Testing and Validation of LoD Reductions Through Supervised Learn...
- the paper introduces two convolutional neural networks (CNN) based techniques that can detect LOD ...
-
The GPU Banana Stand
- the article presents an overview of the composable declarative GPU authoring
-
My personal hell of translating DXIL to SPIR-V – finale
- the article continues the series of translating DXIL to SPIR
-
Exploring Shaders with Compiler Explorer
- the article presents how to integrate new compilers into the compiler explorer infrastructure (whi...
-
[video] Let There Be Light (And Shadow) | Writing Unity URP Code Shaders Tutorial [2/...
- the video tutorial presents how to write universal rendering pipeline shaders in HLSL
-
Deconstructing Bézier curves
- the article explains the underlying theory for Bézier curves and shows how the different component...
-
Journey to Lumen
- the article discusses the different approaches that were tried during the development of lumen
-
[video] Resampled Importance Sampling: Foundations of ReSTIR
- the video presents the foundation how to general ReSTIR sampling
-
[video] Coding a crazy weave pattern
- the video shows how to implement a Truchet effect using shadertoy
-
Lightweight Multidimensional Adaptive Sampling for GPU Ray Tracing
- the paper presents how to adapt multidimensional adaptive sampling for interactive real
-
[video] Fog Rendering - Part 2 // 'ShaderX2 In Practice' series
- the OpenGL fog rendering series extends the previous works and implements Layered and animated fog...
-
[video] Post Process Cartoon Outlines - Shader Graph Basics - Episode 57
- the video tutorial shows how to implement cartoon outlines in screen space
-
NVIDIA Announces Full Open Source of Material Definition Language to Streamline Graph...
- Nvidia open-sources MDL distiller and the GLSL backend
-
Physically Based: a Database of PBR Values for Real-World Materials
- A database of physically based values for CG artists (materials, Light Sources, Cameras)
-
PIX 2208.10: SM 6.7 support, GPU and Timing Capture Improvements
- new PIX release allows profiling to target different GPU clock rates (controlled by the hardware m...
-
Using performance budgets in the Timing Capture metrics view
- the post explains how to set up budgets for pix metrics
-
Screen Post Processing Effects Chapter 1 – Basic Algorithm of Gaussian Blur and Its I...
- the article explains the theory of a Gaussian blur algorithm
-
Descriptors are hard
- the article presents a description of the texture/buffer/sampler binding model supported by differ...
-
Real-Time Path Tracing and Beyond
- the presentation provides a brief overview of the implementation details for the Nvidia path trace...
-
Beyond Linear Perspective: Art, Human Vision, and Computer Graphics
- discusses the limitations of linear perspective and how classical artists rarely used it
-
Explosion Decals
- the article presents a technique to generate explosion decals aimed at a 3D topdown game
-
[video] Bloom & Glow Post Process Effect - Shader Graph Basics - Episode 56
- video tutorial shows how to implement a bloom effect using Unreal and Unity shader graphs
-
High-Performance Graphics 2022
- the program has been updated with links to the recording of all talks
-
Vertex packing
- the article describes the trade-offs between storing vertex information in a single buffer compare...
-
Paper Digest: SIGGRAPH 2022 Highlights
- a collection of papers presented at SIGGRAPH 2022 with a one
-
Comparison of single image HDR reconstruction methods — the caveats of quality assess...
- the paper presents that common image metrics are not a great metric to detect the subjective quali...
-
[video] Microfacet BRDF: Theory and Implementation of Basic PBR Materials [Shaders Mo...
- the video shows how to implement the Cook-Torrance microfacet BRDF
-
HLSL Shader Model 6.7
- the spec for the new features of shader model 6.7 has been released
-
Shaders Explained: Gradients
- the article presents how to write a metal shader to generate a 1D gradient
-
Porting AnKi to Android… again after ~8 years
- the article contains a small overview of steps taken to port the AnKi engine to support Android
-
[video] Fog Rendering - Part 1 // ShaderX2 In Practice Series
- the video tutorial presents how to implement 3 different methods of distance fogs from the ShaderX...
-
[video] Compute Shaders || Lou Kramer || AMD
- the presentation introduces compute-shaders, explaining the software and hardware concepts
-
Introducing our brand new tool: Radeon™ Raytracing Analyzer 1.0
- new tool from AMD to provide more insights into the performance of raytracing applications
-
Synchronizing Present Calls Between Applications on Distributed Systems with DirectX ...
- the article presents an Nvidia API extension that allows multiple buffer swaps (between windows an...
-
Best Practices for Using NVIDIA RTX Ray Tracing (Updated)
- Nvidia has updated the performance best practices for RTX usage
-
GPU Memory Pools in D3D12
- the detailed article explains the different memory pools available and how they differ between dif...
-
A Rust shading language EDSL
- the article discusses the Rust shades crate that allows writing Rust domain
-
A better point light attenuation function
- the article presents a derivation of a light attenuation function to separately control the maximu...
-
UVs and You
- the article aimed at beginners explains how images are applied to 3D objects
-
GL_EXT_fragment_shader_barycentric: Wireframe
- the article presents an overview of barycentric coordinates
-
Adventures in Text Rendering: Kerning and Glyph Atlases
- the article provides an overview of font rendering
-
[video] Generation of simplified representations of the city, characters and vehicles...
- the presentation video discusses the LOD generation used in Cyberpunk 2077 (3D models and material...
-
Adventures with deferred texturing in horizon forbidden west
- slides for the GDC presentation talking about the deferred texturing solution has been released
-
zig-gamedev project
- a growing collection of graphics samples and libraries for the zig programming language
-
Efficently rendering glTF models
- the article discusses how to load and process glTF models for efficient execution
-
Behind the Pretty Frames: Resident Evil
- a super detailed analysis of the RE Engine used by Resident Evil
-
[video] Shadow Mapping Unleashed! // Intermediate OpenGL Series
- the video tutorial explains common shadow problems and why they occur
-
High Performance Graphics 2022 papers on the web
- list of papers presented at High-Performance Graphics 2022
-
[video] Rain Drips On The Lens Post-Process Effect - Shader Graph Basics - Episode 54
- the video tutorial presents how to implement a fullscreen camera space rain effect
-
[video] Spartan Engine Livestream #2: FSR 2.0 Integration
- the stream shows a practical example of how to implement FSR 2.0 into the authors' personal engine...
-
Swallowing the elephant into Blender
- collecting of optimizations done to reduce the Moana USD scene import time into Blender from 3 hou...
-
Some SIGGRAPH 2022 Info
- a collection of advice for SIGGRAPH 2022 (virtual) attendees
-
Performance Boosts and Enhanced Features in New Nsight Graphics, Nsight Aftermath Rel...
- article presents improvements in the new Nsight and Aftermath releases
-
[video] Procedural Grass in 'Ghost of Tsushima'
- the GDC presentation covers how the grass is procedurally generated in compute shaders
-
Order independent transparency: endgame
- the article presents a couple additional order-independent transparency algorithms
-
Advanced API Performance: SetStablePowerState
- Nvidia presents best practices to achieve stable performance results on NVIDIA hardware
-
[video] HPG 2022 Monday, Day 1 (enhanced)
- the video recording of the first day of the High
-
Agility SDK 1.606.3: Shader Model 6.7 is now publicly available!
- the article focuses on the new capabilities added in shader model 6.7
-
Preview Agility SDK 1.706.3-preview: SM 6.7, Enhanced Barriers and more
- a new preview of the Agility SDK improves the enhanced barrier API support, significantly better d...
-
AMD support for Shader Model 6.7 and enhanced barriers in the Agility SDK
- a brief summary of the main features of shader model 6.7 and what is supported by the new AMD pre
-
[video] How do you use shaders to dissolve a sphere?
- the video shows how to implement a custom material into the Rust
-
Creating a physically-based path tracer
- the article presents a brief overview of techniques that can be used to upgrade a simple raytracer...
-
Space Rangers with Cornrows
- the short paper presents the Pixar technique for Modeling Braids and Curls
-
EGSR 2022 Presentation – Generalized Decoupled Shading
- the paper discusses a decoupled shading implementation that separates rasterization from shading b...
-
Spatiotemporal Blue Noise Masks
- the paper presents how to generate multiple 2D blue noise textures so that the blue noise is both ...
-
[video] Vulkan 1.3 explained
- the 4-hour video stream discusses the evolution of the Vulkan API
-
Temporally Stable Real-Time Joint Neural Denoising and Supersampling
- the paper presents a neural network architecture that allows both denoising and supersampling to b...
-
GPU-Driven Real-Time Mesh Contour Vectorization
- the paper presents a new GPU-based method to generate 2D contour strokes from 3D meshes
-
Volume Rendering for Developers: Foundations
- the lesson provides the foundations of ray marching through a volume
-
Advanced Rendering Research Group at AMD
- the new home for the AMD research team - provides a collection of publications, projects, presenta...
-
Getting Started With DirectX Raytracing
- the post provides a walkthrough of all the D3D12 elements that are involved in getting started wit...
-
Planetary Shadow-Aware Distance Sampling
- the paper introduces a visibility-aware transmittance sampling technique for rendering atmospheric...
-
Order independent transparency, part 2
- the second part of the blog series that talks about order independence transparency
-
Seperation of mesh types
- the Twitter thread discusses the terminology that applies to meshes
-
[video] Creating Portals in Unreal for Psychonauts 2
- the Xfest presentation discusses the portal implementation for Psychonauts 2
-
Single-pass stratified importance resampling
- the paper presents a new method for stratified resampling
-
[video] Giving Personality to Procedural Animations using Math
- the video presents how to use second-order systems to allow dynamic motion control in procedural a...
-
Fog for Top-Down Games
- the article presents how to combine multiple tricks to create the appearance of volumetric fog
-
Advances in Real-Time Rendering in Games - 2022
- overview of the talks that will be presented at the Advances course as part of Siggraph 2022
-
Advanced API Performance: Vulkan Clearing and Presenting
- the article presents Nvidia's best practices for clearing textures and depth buffers
-
[video] Underwater Post-Process Effect - Shader Graph Basics - Episode 52
- the video tutorial presents how to create a post-processing effect that simulates an underwater lo...
-
Icosphere From Octahedron to Icosahedron
- the article presents how to generate a procedural Icosahedron mesh
-
Boosting Application Performance with GPU Memory Access Tuning
- the article presents how to improve compute shader performance when workloads are memory limited
-
Order independent transparency, Part 1
- the article presents how to use per-pixel linked lists to implement order
-
Physical Units for Lights
- the article presents a discussion of the different physical Units used for light description
-
Comparing BCn texture decoders
- the article compares BC decompression libraries - compares the level of format support, decoding p...
-
DirectML Plugin for TensorFlow 2 is here
- the blog posts announce the release of a first preview of the DirectML backend for the TensorFlow ...
-
It’s time to see the FSR 2 source code!
- AMD released FidelityFX™ Super Resolution 2 (FSR2) to the public
-
Khronos cross-vendor mesh shader extension update
- Khronos is sharing the first details about what the cross
-
[video] NVIDIA’s Ray Tracer: Wow, They Nailed It Again!
- the paper presents an overview of the NVidia Fast Volume Rendering with Spatiotemporal Reservoir R...
-
How to build a BVH – part 9b: Massive
- the last part of the series covers how to extend the ray
-
[video] What is 'Filmic' and how to fix broken digital photography. Part 1.
- the video discusses the importance of color transformations to final images
-
The Case for Use.GPU - Reinventing rendering one shader at a time
- the article presents work done to make GPU operations reactive, declarative, and composable and re...
-
[video] 16 - Simulation on the GPU
- the video explains how to implement a positional-based cloth simulation on the GPU
-
[video] Fullscreen Masks - Shader Graph Basics - Episode 50
- the video shows to create 3 types of fullscreen masks (square
-
Zero-waste single-pass packing of power-of-two textures
- the article presents a method to pack individual power
-
[video] Shadow Mapping Strikes Back // Intermediate OpenGL Series
- the video tutorial explains how to use an orthographic projection to implement directional light s...
-
The latest Vulkan SDK now ships with Vulkan Memory Allocator (VMA)
- the Vulkan Memory Allocator is now included as an optional component in the Vulkan SDK
-
Real-time rendering - past, present and a probable future.
- the article presents an overview of the problems and solutions of real
-
A Gentle Introduction to D3D12 (2022)
- the article introduces D3D12Lite, a library that is meant to streamline the introduction to D3D12
-
QMC(Magic square, Glois field, QMC)
- the article presents a method to generate stratified samples of arbitrary dimensionality
-
WWDC22 - Metal sessions
- list of all metal sessions at WWDC22 - covering new metal features, HDR/EDR handling, bindless res...
-
Writing Unity URP Shaders with Code Part 1: The Graphics Pipeline and You
- the text and video tutorial is the start of a new beginner
-
[video] Basic Post-Processing Effects - Shader Graph Basics - Episode 49
- the video tutorial shows the steps required to set up to create post
-
[video] God of War PC: AMD FSR 2.0 vs Nvidia DLSS Image/ Motion Quality Face-Off
- the Digitial Foundry video provides an in-depth comparison between FSR 2.0, native TAA as well as ...
-
Bridging the synchronization gap on Linux
- the article discusses why the explicit synchronization nature of Vulkan is a significant problem o...
-
sRGB, Pre-Multiplied Alpha, and Compression
- the article clarifies the meaning of sRGB encoded textures
-
Overview of global illumination in kajiya renderer
- the article provides a high-level description of the techniques used
-
[video] SIGGRAPH 2022: Technical Papers Trailer
- video showing an overview of some of the papers to be presented at Siggraph 2022
-
How to build a BVH – part 9a: To the GPU
- the article presents the first part on how to convert a C++ raytracing kernel to OpenCL
-
[Twitter Thread] D3D12 - specialization constants
- the Twitter thread discusses a restricted version of specialization constants for D3D12 usage
-
An Idea for Visualization of Frame Times
- a short article that discusses some ideas to represent frame time in graphs
-
[video] Hex Grid Normal Tiling - Shader Graph Basics - Episode 48
- the video tutorial shows the issue when hex-tiling (as discussed in the previous part) is applied ...
-
OpenGL Introduction - GPU Computing
- a beginner level focused article that introduces OpenGL compute shaders
-
[video] NVIDIA Renders Millions of Light Sources!
- the video paper summary presents the ReSTIR introductory paper
-
[video] How to turn your 2d fractal into 3d!
- the video shows how to extend a 2D Koch curve SDF into 3D using shadertoy
-
Accelerating raytracing using software vrs
- the article presents how to use compute-shader based Variable Rate shading techniques to reduce th...
-
How to build a BVH – part 8: Whitted-Style
- the article extends the BVH constructed over the last couple of posts to implement a more complete...
-
Removing blur from images – deconvolution and using optimized simple filters
- the detailed post presents the basis knowledge required for a single image deconvolution (remove b...
-
PIX 2205.24: Unlocking Arm and Qualcomm development
- the blog post presents that PIX is now supported on Arm devices
-
Basic Shadow Mapping // Intermediate OpenGL Series
- the video tutorial presents how to implement shadow mapping using OpenGL
-
Meshlets and How to Shade Them: A Study on Texture-Space Shading
- the paper presents the idea of the usage of a meshlet atlas for texture space shading
-
WebGPU Buffer upload best practices
- the blog post describes the different methods WebGPU offers to upload data from the CPU to the GPU...
-
Behind the Pretty Frames: Elden Ring
- the article presents a frame breakdown of the PC version of Elden Ring
-
[video] The Road to Vulkan: Teaching Modern Low-Level APIs in Introductory Graphics C...
- the video provides a summary of the findings of teaching both OpenGL and Vulkan as part of the Int...
-
[video] Rust Graphics Meetup 2
- the second edition of the Rust graphics developer meetup
-
[video] Texture Tiling Without Repetition - Shader Graph Basics - Episode 47
- the video explains how to use hexagonal texture sampling/blending to create a shader that allows l...
-
DirectStorage speculations & myths
- the article shows what the DirectStorage API enables on PC
-
Permutation Coding for Vertex-Blend Attribute Compression
- 15 min video explaining the concept has been added
-
How to build a BVH – part 7: Consolidate
- the article expands the the previous BVH implementation with the necessary logic to support UV and...
-
[video] I3D 2022 Day 1 — Tuesday, May 3
- video recording of the I3D 2022 conference, all 3 days are available
-
[video] AMD's Ray Tracing Research
- the video provides a summary of AMD rayracing research
-
Advanced API Performance: Variable Rate Shading
- the article provides a brief overview of VRS modes available
-
Advanced API Performance: Clears
- the article presents performance advice from Nvidia for clear operations
-
Integrating VRS in The Riftbreaker
- the article discusses how the AMD FidelityFX Variable Shading library was integrated into The Rift...
-
Comparing .obj parse libraries
- the article compares several .obj parsers for loading speed and memory usage
-
Reading list on ReSTIR
- the post presents a list of articles/papers that discusses Reservoir
-
How to build a BVH – part 6: All Together Now
- the article expands the capabilities of the BVH construction to support a more significant number ...
-
[video] GPU Texture Compression
- the video shows a summary of block compressed formats and why they are a good fit for GPUs
-
[video] Vulkan Synchronization | Understand Fences, Semaphores, Barriers,... | Vulkan...
- the video lecture contains a detailed description of Vulkan Synchronization topics
-
Render Graph 101
- the article describes a how a system can derive execution order from rendered resource dependencie...
-
[video] Toon Shading & Rim Lighting // OpenGL Beginners Series
- the video tutorial explains the theory of toon shading and rim lighting effects
-
Derivatives in compute shader
- the article discusses how to calculate UV derivatives in compute
-
Let’s Stop Calling it GGX
- the blog post raises the point that GGX was introduced in a 1975 paper by Trowbridge and Reitz
-
How to build a BVH – part 5: TLAS & BLAS
- the article presents how to extend the BVH structure to allow multiple objects in the same structu...
-
High Performance Graphics 2022 - Student Competition
- the High-Performance Graphics conference is running a student contest
-
Various analytic expressions for collimated light scattered in fog (participating med...
- the article presents the underlying mathematical modeling commonly used to represent volumetric ef...
-
Efficiency-aware multiple importance sampling for bidirectional rendering algorithms
- the paper presents a method to adapt the set of sampling techniques in multi importance sampling t...
-
Sampling the hemisphere
- the blog post explains the derivations of importance sampling schemes for multiple functions
-
ReSTIR El-Cheapo
- the article presents the idea of using ReSTIR for a checkerboard style pattern for shadow ray gene...
-
Increasing wave coherence with ray binning
- the article presents the implementation of a ray-binning technique
-
Generalized Resampled Importance Sampling (GRIS)
- the paper introduces a generalized approach to resampled importance sampling for correlated sample...
-
[video] Sprite Batching In OpenGL // Uniform Buffer Objects
- the video shows how to pack sprites into a 2D texture atlas to reduce the number of draw calls req...
-
Faster Visibility Buffer/Deferred Material Rendering via Analytical Attribute Interpo...
- the post presents a method for reducing the size of visibility output buffers and the effect on pe...
-
How to build a BVH – part 4: Animation
- the article presents how to update a BVH tree for an animated mesh
-
Identifying Shader Limiters with the Shader Profiler in NVIDIA Nsight Graphics
- the article presents a walkthrough of how to use GPU Trace Analysis and GPU Profiler to identify p...
-
A Dataset and Explorer for 3D Signed Distance Functions
- the paper presents a database of 63 optimized and regularized SDF functions of varying complexity
-
A driver on the GPU
- the article discusses the complexities of implementing ExecuteIndirect from a driver's perspective...
-
[video] Using Ray Casting To Move 3D Objects
- the video on how to implement ray-casting from the cursor position into a 3D world to allow the mo...
-
Agility SDK 1.602.0
- the blog post presents the new capabilities of the agility SDK
-
Twitter Thread: Games for the original #PS1 had a unique visual look
- the thread explains the history of the PS1 hardware and how it defined the look of the games of th...
-
Windows Graphics News – 2022 Q1
- a collection of news from the graphics windows development world
-
Shader compiler tools
- the article presents an overview of the shader compilation pipeline in Wicked Engine
-
A remake of the famous Sponza scene for open, collaborative and reproducible research
- the Sponza rendering scene has been updated - it now contains 4K PBR texture sets and high
-
Dynamic, Noise Free, Screen Space Diffuse Global Illumination
- the article presents the screen space solution for Global Illumination
-
Compute shaders in graphics: Gaussian blur
- the article presents the authors' first experience with writing a compute shader to implement a Ga...
-
How to build a BVH – part 2: Faster Rays
- the article presents how to use a Surface Area Heuristic (SAH) to improve the quality of the BVH g...
-
Radeon™ GPU Profiler 1.13 and Radeon Developer Panel 2.6
- the article presents improvements to the new profiler version
-
How to build a BVH – part 3: Quick Builds
- the article presents how to reduce the time required for the presented BVH build from seconds to m...
-
Moving, Rotating, and Scaling UVs - Shader Graph Basics - Episode 43
- the video tutorial explains how to modify UVs from a shader graph in both Unity and Unreal Engine ...
-
Slang Shading Language Advances
- the talk presents the Slang Shading language - presents how generics and interfaces are implemente...
-
i3D 2022 - Program
- program for the ACM SIGGRAPH Symposium on Interactive 3D Graphics and Games has been released
-
Unreal Engine 5 Matrix City Sample PC Analysis: The Cost of Next-Gen Rendering
- the Digital Foundry video analyses the performance of the UE5 Engine
-
Modern OpenGL Tutorial - Tessellation Shaders
- the video provides an overview of tessellation shader concepts
-
My personal hell of translating DXIL to SPIR-V – part 5
- the article introduces standard terms and concepts used in compiler literature
-
Eurographics 2022 papers on the web
- a collection of papers to be presented at Eurographics 2022
-
Adventures with Deferred Texturing in 'Horizon Forbidden West'
- the GDC presentations talk about the implementation of the Deferred Texturing
-
Permutation Coding for Vertex-Blend Attribute Compression
- the paper presents a new approach to compressing vertex data at a fixed bit
-
My personal hell of translating DXIL to SPIR-V – part 4
- the article presents a detailed look at how different D3D12 ConstantBuffer patterns are mapped int...
-
Exponentially Better Rotations
- the article presents a summary of different methods to express rotations
-
[video] Taking the Slang Shading Language from Research to Production
- the video presents an overview of the challenges in shader development
-
Introducing HIP RT – a ray tracing library in HIP
- AMD released a library to enable applications that use Heterogeneous
-
How to build a BVH – Part 1: Basics
- the article describes how to construct a BVH from a collection of triangles
-
Bringing Linearly Transformed Cosines to Anisotropic GGX
- the paper introduces an LTC (Linearly Transformed Cosines) approximation to anisotropic GGX using ...
-
ReSTIR GI for Specular Bounces
- the blog posts demonstrate how to implement ReSTIR (Spatiotemporal reservoir resampling)
-
Realtime Fluid Simulation: Projection
- the article provides a showcase of the importance of a projection solver for a real
-
[video] Interactive Graphics 24 - Refractions, Transparency, Blending, & Alpha Testin...
- the video explains the concept of refraction and existing techniques to implement the effect
-
Graphics Pipeline, Techniques, & Algorithms in Vortice
- the visual graph provides a visual representation of the different passes from the fluid simulatio...
-
[video] Painting a Landscape using Mathematics
- the video provides a complete walkthrough of the creation of a large outdoor environment using sha...
-
Raytracing, a 4 year retrospective
- the article presents a retrospective of raytracing experiments done using compute shader implement...
-
Bindless rendering — Templates
- the article presents an abstraction system to allow shaders to author bindings without having to b...
-
Entropy decoding in Oodle Data: Huffman decoding on the Jaguar
- the article provides an in-depth look at the core loop optimizations of the Oodle decoding step fo...
-
[video] Unreal Engine 5 Guided Tour | Feature Highlight | State of Unreal 2022
- the 30min video provides a summary and examples of the new features in Unreal Engine 5 (UE5) to bu...
-
[video] 10 Shaders in 10 Minutes - Unity Shader Graph
- the video tutorial shows how to implement ten different effects using UnityShader graphs
-
[video] Tessellation and Displacement - Shader Graph Basics - Episode 41
- the video shader tutorial shows how to use tessellation and displacement to create dynamically det...
-
[video] Interactive Graphics 22 - Global Illumination
- a high-level overview of what Global Illumination is, the importance for the rendering results
-
[video] Interactive Graphics 23 - Ambient Occlusion & Soft Shadows
- discusses what Ambient Occlusion is, provides how it fits into the rendering equation and what it ...
-
[video] Procedurally Generating A Hexagon Grid in Unity
- the video tutorial shows how to generate a procedural hexagon shape mesh
-
Reducing Draw Time Hitching with VK_EXT_graphics_pipeline_library
- the blog post describes the functionality of the new pipeline library extension and how to use it ...
-
Software Rasterization of 2 Billion Points in Real Time
- the paper presents an improvement of compute shader
-
PIX 2203.30: Export to C++, UI changes and more!
- the blog post details the changes in the new PIX version
-
Authoring Efficient Shaders for Optimal Mobile Performance
- the GDC talk presents the Mali Offline Compiler and how to use it to analyze shader performance at...
-
[video] Interactive Graphics 20 - Compute & Mesh Shaders
- the video lecture explains the concepts of compute shaders
-
[video] Toon Shader Specular Highlights - Shader Graph Basics - Episode 40
- the video tutorial shows how to implement specular highlights for a toon shader
-
[video] Interactive Graphics 21 - Deferred, Variable-Rate, & Adaptive Shading
- the video lecture presents deferred shading, discussing the problems of forward shading and how de...
-
Texture sampling tips
- the article provides a collection of performance advice to consider with texture sampling
-
[video] How to Select 3D Objects With The Mouse Using OpenGL
- the video explains how to use render-to-texture to enable object selection
-
Discover 3D content optimization with Simplygon
- the talk provides an overview of different LOD concepts
-
Raytraced global illumination denoising
- the article provides an overview of a denoising solution for raytraced global illumination based o...
-
Rendering realtime caustics
- the article discusses a method for a simple non-PBR method to implement underwater caustics
-
Skybox tutorial part 1
- the article presents a walkthrough of the implementation of a complete skybox model, including tim...
-
Announcing Vulkan Memory Allocator 3.0.0 and Direct3D 12 Memory Allocator 2.0.0
- the article describes a large number of changes and improvements made to the AMD and Vulkan Memory...
-
1.3 Vulkan Loader Improvements
- Vulkan loader has been improved with more debugging capabilities and improved documentation
-
WebGPU and Graphics on the Web
- podcast discussing the development and design of WebGPU
-
Intel at the 2022 Game Developers Conference
- the page contains links to the presentations (slides and video) to the talks given by Intel at GDC...
-
NVIDIA Hopper Architecture In-Depth
- the article provides in-depth details about the new Hopper GPU architecture for data center usage
-
[video] Interactive Graphics 19 - Bump, Normal, Displacement, and Parallax Mapping
- the video presents an overview of techniques to represent more geometric details without having to...
-
Mach v0.1 - cross-platform Zig graphics in ~60 seconds
- the blog explains the graphics foundations of Mach, a zig graphics foundation layer
-
Fast Non-Uniform 3D Frame Representation
- the paper presents a derivation of a representation for rotation and non
-
[video] HOW TO DEBUG Your OpenGL Code
- the video tutorial provides a starting guide to OpenGL debugging
-
Transforming “noise” and random variables through non-linearities
- the article recaps the effects of linear transformations of random variables
-
[video] Live Coding an Alien Orb - God Rays & Translucency
- video tutorial presents a walkthrough of implementing volumetric god rays and subsurface scatterin...
-
PIX-2203.07: Support for DirectStorage
- the new release of Pix supports DirectStorage visualization on the timelines
-
DirectStorage API Now Available on PC
- Microsft has released the first public version of DirectStorage
-
How to add thousands of lights to your renderer and not die in the process
- the article presents an introduction into Reservoir
-
[video] Interactive Graphics 17 - Geometry Shaders
- the video course provides an understanding of the geometry shaders' capabilities
-
[video] Toon Shader Paint - Shader Graph Basics - Episode 38
- the video tutorial explains how to implement toon shading
-
[video] Interactive Graphics 18 - Tessellation Shaders
- the video tutorial covering Tessellation shaders
-
Fast, GPU friendly, antialiasing downsampling filter
- the article present how to derive a downsampling filter that uses eight bilinear samples
-
Optimizing Oklab gradients
- the article presents an overview of sRGB, Linear, and Oklab gradient interpolation
-
Abstracting the graphics api for a toy renderer
- the article discusses the authors' decision for a home renderer abstraction layer
-
Bindless rendering — Setup
- the article presents the implementation of a bindless binding model using D3D12 and Vulkan
-
A Better Approach to SDF Decomposition
- the article presents a compiler approach that takes an SDF representation and generates shaders fo...
-
Stochastic Light Culling for Single Scattering in Participating Media
- the paper extends the ideas of Stochastic Light Culling to compute single scattering in a homogene...
-
Multi-Resolution Geometric Representation using Bounding Volume Hierarchy for Ray Tra...
- the paper introduces a technique to lower the cost of ray tracing by using approximated geometry f...
-
Mali-G710: a developer overview
- the article presents hardware and shader compiler improvements for the new Malig G710 GPU
-
[RFC] Adding HLSL and DirectX support to Clang & LLVM
- the forum post presents the proposal to integrate HLSL and DXIL support into clang/LLVM
-
WebGPU — All of the cores, none of the canvas
- the article provides an introduction to WebGPU for compute shader workloads
-
AMD at GDC 2022
- the page contains information and links to all the talks that AMD will present at GDC22
-
Exposure Fusion – local tonemapping for real-time rendering
- the article presents an explanation of common tone mapping issues, comparing multiple local tone m...
-
Variable Rate Compute Shaders on Xbox Series X|S
- the presentation talks about techniques to use VRS (Variable Rate Shading) to reduce the cost of l...
-
Variable Rate Shading, Tales from the Trenches on Series X|S
- the presentations cover the experience of implementing VRS into Doom Eternal and Gears5
-
How Does Perspective Work in Pictures?
- the article discusses the effect that human perception and images appear different
-
Picking Fairly From a List of Unknown Size With Reservoir Sampling
- the article presents a collection of code samples that allow the selection of random samples from ...
-
Improved Accuracy for Prism-Based Motion Blur
- the paper presents a method for improving the quality of motion blur on dynamic triangulated objec...
-
Vulkan SC: Overview - and how it is different from the Vulkan you already know
- the article presents Vulkan for Safety-Critical applications
-
Beyond Sand & Spice: The VFX of Dune | DNEG Deep Dives
- the video panel discussion presents a look at the VFX development for Dune
-
Sampling in Floating Point (1/3): The Unit Interval
- the article presents a method to uniformly sample floats in the [0, 1) range
-
[video] Interactive Graphics 16 - Shadow Mapping
- the video tutorial explains the concepts required for shadow mapping
-
Tiling simplex noise and flow noise in two and three dimensions
- the paper presents a tileable implementation of simplex noise for 2D and 3D cases
-
Real-time Shading with Free-form Planar Area Lights using Linearly Transformed Cosine...
- the paper proposed a real-time shading calculation for area lights defined by cubic Bezier curves
-
Using Semaphore and Memory Sharing Extensions for Vulkan Interop with NVIDIA OpenCL
- the article presents a new set of OpenCL and Vulkan extensions to allow interaction between the AP...
-
[video] Clipping and viewport mapping in OpenGL
- the video tutorial explains the process that vertices passthrough after vertex processing
-
Untangling Direct3D 12 Memory Heap Types and Pools
- the article shows how GPU memory is exposed to D3D12 application developers
-
Why you can’t update Android’s GPU drivers like on your PC
- the article presents an overview of the Graphics driver development model on Android devices
-
Building a new graphics engine in Rust - Part 2
- the article presents the authors' API decisions while developing a D3D12 based graphics engine usi...
-
[video] Random Noise - Shader Graph Basics - Episode 35
- the video tutorial explains the concept of a noise hash
-
[video] Live Coding and Alien Orb - Modeling & Shadows
- the video tutorial presents a coding session of an extraterrestrial inspired Orb object
-
Ben Cloward - book recommendations
- the author presents his list of recommended books for technical artists
-
[video] Interactive Graphics 12 - The Rendering Equation
- the video lectures cover the history and motivation of the rendering equation
-
Shader translation benchmark
- the article presents a performance benchmark of the naga shader translation system
-
Cube Sphere Going from Cube to Sphere
- the article discusses an alternative way to procedurally generate spheres from a cube base divisio...
-
LunarG Releases New Vulkan 1.3.204.0 SDKs with Profiles Toolset and New Extensions
- new Vulkan SDK updates allows application developers to create their own profiles
-
Exploring the Vulkan 1.3 Software Development Kit (SDK)
- Vulkan webinars about Vulkan 1.3 on March 10th - covering Validation Layer Performance and Vulkan ...
-
A Review of Shader Languages
- the updated article presents a comparison of HLSL, GLSL, MSL, and WGSL
-
[video] Modern OpenGL - Compute Shaders
- the video tutorial explains the necessary concepts to use compute
-
Light transport matrices, SVD, spectral analysis, and matrix completion
- the article presents light transport matrices and how they relate to light transport concepts
-
Updates in Graphics and Gaming
- the article presents a new windows insider feature that will allow DX10/DX11 games to take advanta...
-
In the works: HLSL Shader Model 6.7
- the blog post presents the new features of shader model 6.7
-
Super Imposter shader: my journey to make a high quality imposter shader
- the article provides an overview of the development process of using a texture
-
[video] Real-Time Ray Tracing | RTX ON in Vulkan | Vulkan Lecture Series Ep. 6, Real-...
- Video lecture series of the real-time rendering course at TU Wien
-
A Shader Trick
- the article discusses a problem with effects caused by loss of floating
-
Technically Art: Issue 121 (11.02.2022)
- a collection of tweets about tech art, VFX, and related topics
-
[video] How Shaders Work (in OpenGL) | How to Code Minecraft Ep. 3
- video introduction tutorial to shader programming with OpenGL
-
[video] Interactive Graphics 10 - Textures on the GPU
- the video session explains Texture set up for usage from GPU shaders
-
Ray-tracing in 10ms: Ambient occlusion
- the article provides an overview of using raytracing to generate ambient occlusion
-
WebGPU January 2022 meetup — takeaways
- a roundup of WebGPU topics discussed at the January meetup
-
Speeding up Blender .obj export
- the article presents a walkthrough of the process that leads to the blender obj exporting being sp...
-
SIMD in the GPU world
- the article provides an overview of how SIMD execution models evolved over GPU generations
-
The road to 16-bit floats GPU is paved with our blood
- the article provides an overview of the state of 16
-
Two Low Discrepancy Grids: Plus Shaped Sampling LDG, and R2 LDG
- the article discusses more noise distributions functions, presents grid
-
Direct Light 2: integrating shadow rays into a path tracer
- the article presents why direct lighting computation should be separated from emitted light
-
Direct Light 3: what goes in the direct light function?
- the article presents components are defining the direct lighting component
-
2021 Vulkan Ecosystem Survey Results are in!
- the Vulkan survey presents a summary of the results and presents what next steps will be taken to ...
-
[video] Star Citizen Live: Graphics Engineering Q&A
- the developer interview answers a large number of user questions
-
[video] Interactive Graphics 08 - Lights & Shading
- video lecture presents an introduction explaining how surfaces are light from lights
-
[video] Skeletal Animation In OpenGL using Assimp - Part 5
- the final video of the skeletal animation series using OpenGL and Assimp
-
FXAA, SSAA, MSAA, and TXAA comic summary
- 4 slides for a brief summary of the 4 common anti
-
Direct3D 12: Long Way to Access Data
- the article presents the flow of data when a CPU generated value is accessed from an HLSL shader
-
UE5 Lumen Implementation Analysis
- the article provides a summary of the Lumen implementation found in UE5 (Unreal Engine 5)
-
Vulkan 1.3 and Roadmap 2022
- the article provides a summary of the features that are mandatory in Vulkan 1.3
-
In defense of NIR
- the article explains the history and evolution of the mesa shader compiler (internal representatio...
-
Advanced Kernel Profiling with the Latest Nsight Compute
- the new version of the Nsight Compute allows a better understanding of memory traffic and cache ev...
-
What is direct lighting (next event estimation) in a ray tracer?
- the article why randomly tracing rays leads to noisy results
-
WebGPU Best Practices
- the presentation contains a collection of best practices when working with WebGPU
-
[video] Useful functions for game designers - Cosine Interpolation
- the video explains the derivation of Cosine Interpolation
-
Shader tips and tricks
- the article contains a collection of 53 tips & tricks to consider when writing shaders
-
Removing Banding in Linelight
- the article discusses how noise can help to reduce banding in light gradients
-
[video] The Unreasonable Effectiveness of JPEG: A Signal Processing Approach
- the video provides a great introduction to image compression topics
-
Behind the Pretty Frames: God of War
- the WIP article presents a walkthrough of a frame of God of War (PC version)
-
Visualizing VGPR Pressure with Radeon™ GPU Analyzer 2.6
- the article presents the new VGPR Pressure Visualization view
-
The Perlin Problem: Moving Past Square Noise
- the article presents the shortcomings of Perlin noise and what causes these
-
[video] Tech Focus: Nvidia DLDSR - What Does AI Downsampling Actually Do?
- the video presents super sampling techniques - showing the issues introduced if super
-
[video] Talk - Practical Pigment Mixing for Digital Painting
- the paper presents the novel mixbox model for natural color mixing that matches the painting of oi...
-
Radeon™ GPU Profiler 1.12 released
- the article presents the new debug views that can visualize the wavefront execution patterns
-
Viewing DirectX® 12 Named Resources with Radeon™ Memory Visualizer 1.3
- the article presents how to show resource name usage in the AMD memory visualization
-
Texture Gathers and Coordinate Precision
- the article presents a deep dive into a gather related artifact
-
Instant Neural Graphics Primitives with a Multiresolution Hash Encoding
- the paper presents a multi-resolution hash table of trainable feature vectors
-
[video] Triplanar Projection Improvements - Shader Graph Basics - Episode 29
- the video improves the tri-planar projection shader (allows texture mapping without UVs)
-
[video] Interactive Graphics 01 - Introduction
- introduction to a university course that covers the fundamental concepts of real
-
[video] Useful functions for game designers - Lagrange Interpolation
- the video explains how to derive the Lagrange Interpolation functions
-
Technically Art: Issue 119 (14.01.2022)
- an extensive collection of a large variety of tech art tweets collected into a single post
-
[video] New Weather Simulator: Almost Perfect!
- Two Minute Papers video summary of the Weatherscapes: Nowcasting Heat Transfer and Water Continuit...
-
VK_KHR_dynamic_rendering tutorial
- the tutorial shows how to use the VK_KHR_dynamic_rendering extension in Vulkan
-
[video] Shader Coding for Beginners 2022 [Part 1]
- the first part of a shader coding course (6 hours!) focusing on textual shaders using Unity
-
[video] PhD Thesis Fast Forward 2021
- the video contains the summary and overviews of Siggraph PhD thesis
-
Cache and Bandwidth Aware Real-time Subsurface Scattering
- the PhD thesis provides an overview of Subsurface scattering techniques and proposes a taxon...
-
Sphere Scene in Unity URP
- the article explains how to set up an effect that allows meshes to appear cut at the boundaries of...
-
[video] You Might Be Thinking About Shader Performance Wrong
- the video focuses on visualizations of GPU performance considerations