Graphics Programming Weekly

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


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

    archive / summary

  • 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

    archive / summary

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

    archive / summary

  • Worley and His Noise (Worley Noise/Voronoi Noise)

    - the article presents how to implement Worley/Voronoi noise

    archive / summary

  • From WebGL to WebGPU

    - the article presents a set of differences between WebGL and WebGPU

    archive / summary

  • Radeon™ Raytracing Analyzer 1.3 is now available

    - the latest version of the raytracing analyzer adds support for visualizing the rays in the scene

    archive / summary

  • Radeon™ Memory Visualizer 1.7 is out now

    - the latest edition of the Memory Visualizer adds improved support for resource aliasing

    archive / summary

  • Radeon™ GPU Profiler 1.16 is here!

    - the article presents changes in the latest AMD GPU profiler update

    archive / summary

  • Introduction to 3D Gaussian Splatting

    - the blog post provides an introduction to the Gaussian Splatting rasterization technique

    archive / summary

  • Painting with Math: A Gentle Study of Raymarching

    - the blog post provides a visual introduction to Raymarching

    archive / summary

  • GM Shaders Mini: Math

    - the article provides a brief overview of alpha blending and weighted averages

    archive / summary

  • Making Gaussian Splats smaller

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

    archive / summary

  • Onboarding floating-point

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

    archive / summary

  • [video] How I implemented MegaTextures on real Nintendo 64 hardware

    - the video presents an overview of virtual texturing

    archive / summary

  • Vulkanised 2024 - Call for Submissions

    - the 2024 Vulkan conference Vulkanised is looking for speakers

    archive / summary

  • Call for Authors GPU Zen 3

    - the latest edition of the GPU Zen books is looking for authors

    archive / summary

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

    archive / summary

  • What we talk about when we talk about Ray Tracing?

    - The article provides an overview of ray tracing rendering concepts

    archive / summary

  • Gaussian Splatting is pretty cool!

    - The blog post describes a brief overview of the Gaussian Splatting technique

    archive / summary

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

    archive / summary

  • GM Shaders Mini: Imagination

    - The blog post shows the importance of thinking in gradients

    archive / summary

  • Constant Time Stateless Shuffling and Grouping

    - The article introduces how to encrypt/decrypt are methods to allow reversible changes to data

    archive / summary

  • [video] Wow, NVIDIA’s Rendering, But 10X Faster!

    - The video presents a comparison of 3D Gaussian Splatting for Real

    archive / summary

  • [video] I Tried Simulating The Entire Ocean

    - The video provides a discussion of ocean simulation and shading

    archive / summary

  • At A Glance: The Aliasing Problem in Computer-Generated Shaded Images

    - The article presents a brief discussion of Aliasing in computer graphic

    archive / summary

  • [pdf] HypeHype Mobile Rendering Architecture

    - The presentation provides a detailed look at how the rendering API for HypeHype was rewritten for ...

    archive / summary

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

    archive / summary

  • GFXReconstruct on Android - How-To Guide

    - The article presents the steps necessary to use the GFXReconstruct on Android

    archive / summary

  • [video] CUDA Tutorials I Profiling and Debugging Applications

    - The video tutorial contains a high-level overview of the profiling tools available for Cuda worklo...

    archive / summary

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

    archive / summary

  • BroadLeaf: Developing a Real-Time Solution for Rendering Trees

    - The article explains the Tencent tree rendering system

    archive / summary

  • Solving Self-Intersection Artifacts in DirectX Raytracing

    - the article presents a robust solution to resolve self

    archive / summary

  • Advanced API Performance: Shaders

    - the blog post provides best practices for shader performance

    archive / summary

  • [video] Starfield: The Digital Foundry Tech Review

    - the video presents a deep dive into the technical aspects of Starfield

    archive / summary

  • [video] Billboarding With The Geometry Shader // Intermediate OpenGL Series

    - the article presents how to use geometry shaders from OpenGL

    archive / summary

  • Bezier curves

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

    archive / summary

  • [video] MaterialX 2023 Virtual Town Hall

    - Video recording of MaterialX-related developments in the virtual town hall meeting

    archive / summary

  • Dispatch IDs and you

    - Blog post explains the different compute shader semantics

    archive / summary

  • vsync simulator

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

    archive / summary

  • Inside bend: screen space shadows

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

    archive / summary

  • Ray-aligned Occupancy Map Array for Fast Approximate Ray Tracing

    - The paper introduces a Ray-aligned Occupancy Map Array as an alternative to BVH

    archive / summary

  • Radiance Cascades: A Novel Approach to Calculating Global Illumination[WIP]

    - The paper presents a global illumination technique based on radiance cascades

    archive / summary

  • 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

    archive / summary

  • Camera and lens definitions for VFX

    - the article discusses the concept of focal length, presenting how different definitions of focal l...

    archive / summary

  • [video] Mathematical Magic Mirrorball #SoME3

    - the video explains how mirror balls enable the representation of 360

    archive / summary

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

    archive / summary

  • Hardcore Vulkan debugging – Digging deep on Linux + AMDGPU

    - the blog post gives insights into debugging crashes originating on the GPU

    archive / summary

  • Getting Started with Radeon™ GPU Detective 1.0

    - AMD released a new tool to help with debugging GPU crashes

    archive / summary

  • rendering-bib

    - extensive bibliography of more than 3000 rendering papers

    archive / summary

  • [SCC] Next Gen Development for Games | Sony Official

    - a combination of three conference presentations recordings from the sony creator event

    archive / summary

  • HLSL 2021 Migration Guide

    - the latest version of DXC switches the default HLSL version to 2021

    archive / summary

  • ShaderCrashingAssert

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

    archive / summary

  • A Gentle Introduction to ReSTIR: Path Reuse in Real-time

    - the course notes and slides for the ReStir course from Siggraph are available

    archive / summary

  • SIGGRAPH 2023 Links

    - a growing collection of content from Siggraph 2023

    archive / summary

  • Reverse Z (and why it's so awesome)

    - the article presents how projection matrixes are expressed in different APIs

    archive / summary

  • Interviewing Graphics Programmers

    - the article presents a way to categorize graphics programmers into four broad groups

    archive / summary

  • Speed Up GPU Crash Debugging with NVIDIA Nsight Aftermath

    - Nsight Aftermath now supports application-specific markers to be inserted and accessed from the cr...

    archive / summary

  • GM Shaders Mini: CRT

    - the article presents how to create a post-processing effect that simulates the look of CRT TVs

    archive / summary

  • Bringing shaders to contest programming

    - the article presents how the author organized an online shader programming contest

    archive / summary

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

    archive / summary

  • [video] Skydome // Terrain Rendering episode #12

    - the video presents the theory behind Skydomes and how they compare to sky boxes

    archive / summary

  • Optimize 3D Assets with Khronos’ New glTF-Compressor Tool

    - Khronos released a new tool to improve the experience when working with KTX compression

    archive / summary

  • [video] The rendering techniques of Path of Exile (Alexander Sannikov)

    - the presentation covers an overview of many rendering techniques used in Path of Exile

    archive / summary

  • [pdf] Shadow Techniques from Final Fantasy XVI

    - the paper discusses the Shadow Techniques used by Final Fantasy XVI

    archive / summary

  • Occluding Contour Breakthroughs, Part 1: A Surprisingly Hard Problem

    - the first part of a 3 part series that discusses occluding contour rendering

    archive / summary

  • Why your GPU can (and probably should) do real function calls

    - the article presents a discussion of functions calls in shaders

    archive / summary

  • Learnings As a Graphics Lead

    - the blog post provides an overview of leadership topics aimed at new graphics leads

    archive / summary

  • Denoising-Aware Adaptive Sampling for Monte Carlo Ray Tracing

    - The paper proposes an adaptive sampling technique for efficient Monte Carlo rendering with deep

    archive / summary

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

    archive / summary

  • Using decals to drive object shaders and post-processing.

    - the blog post presents the idea of using decals to drive where post

    archive / summary

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

    archive / summary

  • Approximate projected bounds [Updated]

    - the article has been updated with improvements - covers efficient, conservative projected bounds f...

    archive / summary

  • Advanced API Performance: Synchronization

    - Nvidia presents the best practices for asynchronous compute queue work scheduling

    archive / summary

  • Raytraced order independent transparency part 2

    - the article presents a method that uses any hit shaders to implement order

    archive / summary

  • Announcing GPU Work Graphs in Vulkan

    - AMD announced the release of a Vulkan extension to support the experimental D3D12 Work Graph conce...

    archive / summary

  • Korean edition of RTR4 available

    - the blog post announces that the book Real-Time Rendering is now also available in Korean

    archive / summary

  • Float to int casts for data compression

    - the article discusses different methods that are available to convert from f32 to u32 data formats...

    archive / summary

  • GM Shaders Mini: Dither

    - the article presents an overview of dithering techniques

    archive / summary

  • Unity 4D #1: Understanding the Fourth Dimension

    - the article presents an introduction to the fourth dimension and explains how to imagine mathemati...

    archive / summary

  • A Whirlwind Tour of Games Color Management

    - the article provides a comprehensive overview of game color management and encoding complexities

    archive / summary

  • 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

    archive / summary

  • Roblox to Present 3D Motion and Rendering Research at SIGGRAPH 2023

    - the blog post shows the talks Roblox will be presenting at SIGGRAPH

    archive / summary

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

    archive / summary

  • Rendering ‘God of War Ragnarök’

    - the talk presents is a combination of leadership methods and rendering techniques of God of War Ra...

    archive / summary

  • Advanced API Performance: Pipeline State Objects

    - the article provides a list of best practice recommendations for usage of PSOs with D3D12

    archive / summary

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

    archive / summary

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

    archive / summary

  • Computational complexity of texture encoding

    - the article explains how most tecture encoding formats operate in blocks, presenting how this redu...

    archive / summary

  • Santa Monica Studio - Our GDC 2023 presentations

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

    archive / summary

  • Sub-pixel Distance Transform - High quality font rendering for WebGPU

    - the article presents an in-depth look at SDF font rendering techniques

    archive / summary

  • Micro-Mesh Overview (Part 1)

    - the blog post provides a first high level overview of the micro

    archive / summary

  • 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

    archive / summary

  • Real-Time Neural Texture Upsampling in ‘God of War Ragnarök’

    - the presentation present a neural network approach used to upscale textures

    archive / summary

  • [video] User Clip Planes // OpenGL Intermediate Series

    - the video tutorial presents how one can use clip planes to cut geomeetry along plane equations

    archive / summary

  • Raytraced order independent transparency

    - the articles continues the exploration into order independent transparency techniques

    archive / summary

  • [video] The Art of Linear Programming

    - the video tutorial provides a visual introduction into linear programming

    archive / summary

  • Marching Cubes, Explained Using Marching Squares

    - the articles aims to provide an intuitive understanding of the marching cubes algorithmn

    archive / summary

  • [video] It Takes Two, lava lamps, Raymarching in Godot 4.1

    - the video describes how to use raymarching to draw a lava lamp effect

    archive / summary

  • High Performance Graphics 2023 papers on the web

    - collections of papers from the High Performance Graphics 2023 conference

    archive / summary

  • The AMD FidelityFX™ SDK 1.0 is now available on GPUOpen

    - AMD has released FidelityFX SDK that was announced during GDC 2023

    archive / summary

  • Eurographics Symposium on Rendering 2023 papers on the web

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

    archive / summary

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

    archive / summary

  • Tile-based Lightweight Integer Compression in GPU

    - the paper introduces a tile-based decompression scheme aimed to allow data queries to operate in a...

    archive / summary

  • Intermediate Graphics Library (IGL)

    - Meta open-sourced their cross-platform library that provides a common graphics API abstraction

    archive / summary

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

    archive / summary

  • Rain Effects Breakdown

    - the article provides a breakdown of how to implement a rain effect using Unity visual shaders

    archive / summary

  • Skeletal animation in glTF

    - the article provides an overview of skeleton animation in

    archive / summary

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

    archive / summary

  • [video] Skybox // Terrain Rendering episode #11

    - the video tutorial presents how to render a skybox using OpenGL

    archive / summary

  • [video] Building Roads Procedurally Using Unity's Spline Package

    - the video tutorial presents how to build a road network using a spline system

    archive / summary

  • Debugging CUDA More Efficiently with NVIDIA Compute Sanitizer

    - This article discusses a code sanitizer in CUDA that is similar to one used in C++

    archive / summary

  • Behind the Pretty Frames: Diablo IV

    - the article provides an in-depth study of a Diablo IV frame rendering on PC

    archive / summary

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

    archive / summary

  • [video] Make Your Renders Unnecessarily Complicated

    - the video shows an humerous overview of what is required to model a camera, with functioning lenes...

    archive / summary

  • Signed Distance Function (Field)

    - the article dicusses how to use signed distance functions to render a circle

    archive / summary

  • Neural Intersection Function

    - the paper introduces a replacement for bottom-level BVH traversal based on neural network techniqu...

    archive / summary

  • [pdf] Path tracing in Production - The Path of Water

    - the Siggraph 2023 course notes discuss the challenges faced related to water rendering on Avatar: ...

    archive / summary

  • [video] Convolutions and adding random variables, visually explained

    - the video explains the concept of convolution functions/filters

    archive / summary

  • 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

    archive / summary

  • D3D12 Work Graphs Preview

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

    archive / summary

  • GPU Work Graphs in Microsoft DirectX® 12

    - the AMD guide provides a more in-depth look at the practical use of D3D12 Work Graphs

    archive / summary

  • PIX 2306.21-preview: Work Graphs support

    - the blog post announces support for the new d3d12 work graphs feature in the preview version

    archive / summary

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

    archive / summary

  • [video] Let's Code a Realtime Fluid Simulation in Unity

    - the video tutorial presents a walkthrough on the integration of a real

    archive / summary

  • Task Graph Renderer at Activision

    - the talk discusses the design of the Task Graph architecture used by Activision

    archive / summary

  • Overview of Nitrous’ Decoupled Rendering Architecture

    - the presentation slides explain the improvements done to decoupled shading

    archive / summary

  • Real-Time Rendering of Glinty Appearances using Distributed Binomial Laws on Anisotro...

    - the paper presents a new method to render glittery materials

    archive / summary

  • Line Rendering Deep Overview - Part 1 - Extraction

    - the article presents an overview of line extraction techniques

    archive / summary

  • A note on Metal shader converter

    - the article presents a discussion of the limitations of metal hardware related to barriers across ...

    archive / summary

  • Sampling Visible GGX Normals with Spherical Caps

    - the paper introduces a novel importance sampling algorithm for the GGX microfacet BRDF

    archive / summary

  • Far Cry Dunia Engine Shader Pipeline - Long-term Vision & Lessons Learned

    - the presentation covers the development story of the Far Cry shader system

    archive / summary

  • Modern Mobile Rendering @ HypeHype

    - the talk covers how the author designed a new rendering architecture aimed at mobile hardware

    archive / summary

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

    archive / summary

  • CG Spotlight Slides - Screen Space Indirect Lighting with Visibility Bitmask

    - slides covering Screen Space Indirect Lighting with Visibility Bitmask

    archive / summary

  • Peeling back the varnish: The graphics of Diablo IV

    - the blog post covers a high-level overview of topics covering Diablo IV graphics techniques

    archive / summary

  • Bring your game to Mac, Part 2: Compile your shaders

    - the presentation presents how to convert the D3D12 shader for use with metal

    archive / summary

  • [video] OpenGL vs. Direct3D - Servan Keondjian & Casey Muratori

    - the 2-hour interview discusses the history of the development of Graphics APIs

    archive / summary

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

    archive / summary

  • [video] An introduction to Shader Art Coding

    - the video tutorial explains shader programming aimed at newcomers

    archive / summary

  • A Quickstart Guide to CUDA

    - the article provides a tutorial on how to use CUDA for beginners

    archive / summary

  • Stochastic Subsets for Bounding Volume Hierarchy (BVH) Construction

    - The paper presents a new approach for constructing Bounding Volume Hierarchies (BVH) by leveraging...

    archive / summary

  • GM Shaders Mini: Scaling

    - the tutorial provides common scaling, stretching, and centering patterns when using pixel and UV c...

    archive / summary

  • Iterative 𝛼-(de)Blending: a Minimalist Deterministic Diffusion Model

    - the paper presents a rederivation of diffusion models with more straightforward concepts of mixing...

    archive / summary

  • [video] Where did my intersections go?

    - the short video presents how ray-sphere intersection points behave when expressed with imaginary n...

    archive / summary

  • [video] I3D 2023 Papers Session 4 - Ray Tracing

    - the video recording ACM SIGGRAPH Symposium on Interactive 3D Graphics and Games 2023 for Ray Traci...

    archive / summary

  • Rendering Engine Architecture Conference - 2023

    - open, digital, and freely accessible conference covering many rendering engine architectures is ha...

    archive / summary

  • [video] Frustum Culling // Terrain Rendering episode #9

    - the video tutorial explains two different techniques of frustum culling

    archive / summary

  • Khronos Osaka Dev Day Video and LunarG Presentation Slides Available

    - slides and videos from the Khronos Osaka Dev Day have been released

    archive / summary

  • Deus Ex – Alpha Terrain

    - the article presents how the terrain in Deus Ex is quite different compared to other solutions

    archive / summary

  • [video] [OpenGL Episode 25] Rotation Matrices (using glm)

    - the video shows how rotation matrices are defined in mathematics and glm + OpenGL

    archive / summary

  • [video] Halton Low-Discrepancy Sequence [Shaders Monthly #12]

    - the video explains the effect of the Halton Sequence compared to random and grid sampling

    archive / summary

  • Waterfall Shader Breakdown

    - the article explains how to create a stylized waterfall effect

    archive / summary

  • Micro-Mesh Construction

    - the paper presents how to construct micro meshes from high

    archive / summary

  • Unit Gradient Fields: SDFs, UGFs, and their friends

    - the article provides a formal definition of a Unit Gradient Field

    archive / summary

  • Advanced API Performance: CPUs

    - the article presents CPU performance consideration for efficient usage of APIs

    archive / summary

  • Introducing Vulkan Ray Tracing Position Fetch Extension

    - the blog post describes a new Vulkan raytracing extension that allows the retrieval of positions f...

    archive / summary

  • [video] I3D 2023 Papers Session 1 - Neural Rendering and Image Warping

    - video recording for the first I3D conference paper session has been released

    archive / summary

  • 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

    archive / summary

  • Shader Execution Reordering: Nvidia Tackles Divergence

    - the article presents the effect of Shader Execution Reordering (SER) on GPU performance

    archive / summary

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

    archive / summary

  • A Rough Idea of How Photon Mapping Works

    - the article provides an overview of the Photon Mapping technique

    archive / summary

  • Stochastic Texture Filtering

    - the paper investigates and presents the quality and performance influence of stochastic texture fi...

    archive / summary

  • GPU Hang Exploration: Splitgate

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

    archive / summary

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

    archive / summary

  • [video] The LOD Manager // Terrain Rendering episode #8

    - the video tutorial expands on the terrain rendering series by adding support for calculating LOD l...

    archive / summary

  • RPS SDK Tutorial

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

    archive / summary

  • Microfacet theory for non-uniform heightfields

    - the paper proposes a new method for the combination of rough surface NDFs

    archive / summary

  • Real-Time Neural Appearance Models

    - The paper presents a new method to represent materials utilizing learned hierarchical textures com...

    archive / summary

  • I want to talk about WebGPU

    - the article presents a history of graphics API and how WebGPU fits into the history

    archive / summary

  • Advanced API Performance: Sampler Feedback

    - the guide contains best practices for using Sample Feedback on Nvidia hardware

    archive / summary

  • Vulkan Video Decoding

    - the article presents the video functionality that Vulkan exposes

    archive / summary

  • Unit Gradient Fields: What do we mean by offset?

    - the article presents an overview of Unit Gradient Fields (UGFs)

    archive / summary

  • Cyberpunk 2077’s Path Tracing Update

    - the article presents an in-depth look at the performance of the latest Cyberpunk 2077 update

    archive / summary

  • [video] Level Of Detail // Terrain Rendering episode #7

    - the video tutorial about rendering terrain using OpenGL continues by explaining how LODs can be im...

    archive / summary

  • Fine-grained backface culling

    - Article discusses implementing backface culling in mesh shaders

    archive / summary

  • Building a new graphics engine in Rust - Part 4

    - the article presents progress on a Rust-based home graphics engine project

    archive / summary

  • Radeon™ GPU Profiler 1.15 provides an enhanced ISA view experience and more

    - the article presents improvements done to the AMD GPU profiler

    archive / summary

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

    archive / summary

  • [video] A visual explanation for 3D transformation matrix multiplications

    - the video tutorial explains how matrices are combined

    archive / summary

  • [video] Quake's PVS: A hidden gem of rendering optimization

    - the video explains how PVS (Potential Visibility Set) used by Quake is implemented

    archive / summary

  • Battlefront II: Layered Explosion

    - the article explains how star wars battlefront explosion VFX has been implemented

    archive / summary

  • Cubic Interpolation of Quaternions

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

    archive / summary

  • Symposium on Interactive 3D Graphics and Games 2023 papers on the web

    - a collection of papers from the I3D 2023 presentation

    archive / summary

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

    archive / summary

  • 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

    archive / summary

  • GM Shaders Mini: FXAA

    - the short tutorial presents how the FXAA algorithm is implemented

    archive / summary

  • Simplifying Bézier paths

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

    archive / summary

  • MaterialX - Version 1.38.7

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

    archive / summary

  • The many ways of converting FP32 to FP16

    - the article presents several different methods to convert between 32 and 16

    archive / summary

  • Mipmap Generation

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

    archive / summary

  • Contributing to Godot - Visual Shaders Nodes

    - the article presents how to introduce custom shader nodes into the Godot Visual shader graph

    archive / summary

  • New playground: integer.exposed

    - the article introduces two new interactive playgrounds for integer and floating point numbers

    archive / summary

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

    archive / summary

  • [video] Everyone can understand transformation matrices - and how it works

    - the video explains visually to read and understand 4x4 transformation matrixes

    archive / summary

  • Half baked and a half: a small update

    - the blog post describes the approach of incrementally accumulating voxel data to augment the repro...

    archive / summary

  • Direct3D 12: Adventures in Shaderland

    - the article describes how Godot converts SPIR-V shaders to DXIL for D3D12

    archive / summary

  • [video] I3D 2023 Papers Preview

    - the video presents an overview of the papers that will be presented during the I3D 2023 in Bellevu...

    archive / summary

  • [video] Cyberpunk 2077 Ray Tracing: Overdrive Technology Preview on RTX 4090

    - the video presents the visual difference the overdrive (ReStir

    archive / summary

  • NVIDIA Displacement Micro-Map Toolkit

    - Nvidia released the Displacement Micro-Map Toolkit SDK

    archive / summary

  • 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

    archive / summary

  • Web3D Survey

    - the website collects information about the API and extension availability for Web

    archive / summary

  • Matrix Compendium

    - the article provides a central place for matrix understanding for computer graphics

    archive / summary

  • Random Sampling Experiments: Avoid The Sides!

    - the blog post shows different sampling strategies

    archive / summary

  • Shader Tutorial: Color Correction

    - the tutorial explains how to apply color modifications in shaders

    archive / summary

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

    archive / summary

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

    archive / summary

  • Efficient Spatial Resampling Using the PDF Similarity

    - the paper introduces a new rejection method based on the PDF shape similarity between pixels for s...

    archive / summary

  • World Space Path Resampling

    - the article presents an overview of ReSTIR/ReGIR, explaining similarities and differences between ...

    archive / summary

  • let's talk about normals

    - the article presents the difference between Object Normals, Tangent Normals as well as World Norma...

    archive / summary

  • Mesh Shaders and Meshlet Culling in Metal 3

    - the article presents an overview of use cases for mesh shaders

    archive / summary

  • You Can Use Vulkan Without Pipelines Today

    - the blog post introduces the VK_EXT_shader_object extension that allows Vulkan to be used without ...

    archive / summary

  • A Generalized Ray Formulation For Wave-Optics Rendering

    - the paper introduces a generalized ray concept into wave

    archive / summary

  • 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

    archive / summary

  • GM Shaders Mini: Derivatives

    - the article explains what function derivatives are and how they are helpful in shaders

    archive / summary

  • Practical Projective Geometric Algebra

    - slides of the GDC talking covering Geometric Algebra have been released

    archive / summary

  • [video] Coding Adventure: Ray Tracing

    - the detailed video tutorial shows how to implement raytracing applications

    archive / summary

  • PIX and ID3D12ManualWriteTrackingResource

    - the new API allows applications to disable the use of kernel WRITE_WATCH for CPU

    archive / summary

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

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

    archive / summary

  • Real-time sparse distance fields for games

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

    archive / summary

  • Introduction to Spherical Gaussians

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

    archive / summary

  • DNND 2: Tensors and Convolution

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

    archive / summary

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

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

    archive / summary

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

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

    archive / summary

  • Half baked: Dynamic Occlusion Culling

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

    archive / summary

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

    - the article discusses the implementation of the GPUI library

    archive / summary

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

    - the Twitter thread discusses different methods to upload per

    archive / summary

  • Notes on FFTs: for users

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

    archive / summary

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

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

    archive / summary

  • [Unreal] GameCube-Style Stencil Lights

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

    archive / summary

  • DNND 1: a Deep Neural Network Dive

    - the article discusses the basics of Convolutional Neural Networks

    archive / summary

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

    - the article shows how to implement SSAO using WebGL 2

    archive / summary

  • Stylized Water Shader

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

    archive / summary

  • Generalization of Adobe's Fresnel Model

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

    archive / summary

  • Introduction to Spherical Harmonics

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

    archive / summary

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

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

    archive / summary

  • The Year of the Vulkan Book

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

    archive / summary

  • Vectors, Matrices & Matrix Order

    - the article discusses matrix and vector representation

    archive / summary

  • Float Compression 7: More Filtering Optimization

    - the article continues the series on float compression topics

    archive / summary

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

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

    archive / summary

  • Understanding Vulkan device buffer address alignment

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

    archive / summary

  • Real-time Cluster Path Tracing for Remote Rendering

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

    archive / summary

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

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

    archive / summary

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

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

    archive / summary

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

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

    archive / summary

  • CUDA LOD Generation

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

    archive / summary

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

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

    archive / summary

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

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

    archive / summary

  • Setting up a bindless rendering pipeline

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

    archive / summary

  • Reading Veach’s Thesis, Part 2

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

    archive / summary

  • Two-pass Gaussian blur coeffifients generator

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

    archive / summary

  • WebGPU Error Handling best practices

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

    archive / summary

  • Vulkanised 2023

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

    archive / summary

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

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

    archive / summary

  • Impressions from Vulkanised 2023 Conference

    - the author presents his impression from the Vulkanied conference

    archive / summary

  • [video] Vulkanised 2023

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

    archive / summary

  • Teardown Teardown

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

    archive / summary

  • Swapping Colours

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

    archive / summary

  • [video] Calculating Ray-Sphere Intersections

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

    archive / summary

  • Fast Real-Time Shading for Polygonal Hair

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

    archive / summary

  • Float Compression 6: Filtering Optimization

    - the blog post continues the series on float compression techniques

    archive / summary

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

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

    archive / summary

  • Screen Space Indirect Lighting with Visibility Bitmask

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

    archive / summary

  • Raymarching Clouds

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

    archive / summary

  • GM Shaders Mini: Blendmodes

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

    archive / summary

  • A fast and precise triangle rasterizer

    - the article presents how to implement a software triangle rasterizer

    archive / summary

  • Getting Started with Vulkan Compute Acceleration

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

    archive / summary

  • Technically Art: Issue 138 (11.02.2023)

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

    archive / summary

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

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

    archive / summary

  • Float Compression 0: Intro

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

    archive / summary

  • GM Shaders Mini: Normal Maps

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

    archive / summary

  • Shader Tutorial: Subsurface Scattering

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

    archive / summary

  • Compute Shader thread index to 2D coordinate

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

    archive / summary

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

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

    archive / summary

  • WebGL / WebGPU Jan 2023 meetup highlights

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

    archive / summary

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

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

    archive / summary

  • PS2 Vector Unit Lighting on Shadowman2

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

    archive / summary

  • Teardown Frame Teardown - Rendering analysis

    - the article presents a rendering analysis of the game Teardown

    archive / summary

  • Accelerated Photon Mapping for Hardware-based Ray Tracing

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

    archive / summary

  • Bringing Nanite to Fortnite Battle Royale in Chapter 4

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

    archive / summary

  • Introducing Compressonator v4.3

    - the new release introduces support for the Brotli

    archive / summary

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

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

    archive / summary

  • Infinite Quadtrees – Fractal Coordinates

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

    archive / summary

  • Learn WebGPU

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

    archive / summary

  • The LookAt Matrix

    - the article presents how to implement a camera look

    archive / summary

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

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

    archive / summary

  • Virtual Shadow Maps in Fortnite Battle Royale Chapter 4

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

    archive / summary

  • [video] SIGGRAPH 2022 - Advances in Spatial Hashing

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

    archive / summary

  • Fast, Near Lossless ‘Compression’ of Normal Floats

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

    archive / summary

  • High-Performance Graphics 2023 - Call for Participation

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

    archive / summary

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

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

    archive / summary

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

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

    archive / summary

  • Rotation with three shears

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

    archive / summary

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

    - the new AMD hardware guide for RDNA3 has been released

    archive / summary

  • Approximate projected bounds

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

    archive / summary

  • Use.GPU Goes Trad

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

    archive / summary

  • Tangent Spaces and Diamond Encoding

    - the article provides an overview of Tangen Space Encodings

    archive / summary

  • Optimize Your Graphics with RenderDoc Meta Fork

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

    archive / summary

  • An Introduction to Vulkan: A Full Day Tutorial

    - during the Vulkanised 2023 conference in Munich, a full

    archive / summary

  • Water Wave Simulation

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

    archive / summary

  • Random thoughts after moving from GLSL to HLSL

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

    archive / summary

  • Min/Max Buffer Precision Improvement

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

    archive / summary

  • How to accelerate AI applications on RDNA 3 using WMMA

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

    archive / summary

  • Practical Tips for Optimizing Ray Tracing

    - the article provides techniques to speedup raytracing workloads

    archive / summary

  • Snowglobe

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

    archive / summary

  • Let’s talk about (GPU) crashes

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

    archive / summary

  • [pptx] Deep Dive into FidelityFX Super Resolution 2

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

    archive / summary

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

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

    archive / summary

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

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

    archive / summary

  • [video] niagara: Culling optimization

    - another part of the Vulkan series that implement GPU culling

    archive / summary

  • Experimenting with fp16, part 2

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

    archive / summary

  • Requiem for piet-gpu-hal

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

    archive / summary

  • Experimenting with fp16 in shaders

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

    archive / summary

  • Improving color quantization heuristics

    - the article discusses techniques for improving color quantization algorithms

    archive / summary

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

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

    archive / summary

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

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

    archive / summary

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

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

    archive / summary

  • [video] Hexagonal Tiling Explained!

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

    archive / summary

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

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

    archive / summary

  • Two-Pass Occlusion Culling

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

    archive / summary

  • Ghost of Tsushima SIGGRAPH Talks

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

    archive / summary

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

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

    archive / summary

  • [video] niagara: Triangle culling

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

    archive / summary

  • Path tracing workshop

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

    archive / summary

  • rust-gpu v0.4

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

    archive / summary

  • [video] Coding a Bezier curve from scratch!

    - the video presents how to implement Bezier Interpolation

    archive / summary

  • Introduction of the Raytracing Technology Part 2

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

    archive / summary

  • Meshlet sizing theory

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

    archive / summary

  • [video] Compute Shaders in Bevy

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

    archive / summary

  • Deferred Shading

    - the article provides an explanation of deferred shading

    archive / summary

  • Stream compaction using wave intrinsics

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

    archive / summary

  • Introducing AMD Render Pipeline Shaders SDK

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

    archive / summary

  • Introduction of the Raytracing Technology Part 1

    - the article provides an overview and history of raytracing

    archive / summary

  • [video] Heightmaps // Terrain Rendering episode 1

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

    archive / summary

  • [video] World Normal Mix Shader in Godot

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

    archive / summary

  • [video] CUDA 12 New Features and Beyond

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

    archive / summary

  • GM Shaders Mini: Fluids

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

    archive / summary

  • Bringing Nvidia® and AMD support to oneAPI

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

    archive / summary

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

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

    archive / summary

  • Understanding The Math Behind ReStir DI

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

    archive / summary

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

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

    archive / summary

  • [video] Live Coding: 3d Truchet Weave

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

    archive / summary

  • Fast CDF generation on the GPU for light picking

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

    archive / summary

  • [video] The Continuity of Splines

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

    archive / summary

  • Area Lights

    - the tutorial explains how to implement area lighting using OpenGL

    archive / summary

  • [video] Shader Code and Maths to Node Graphs

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

    archive / summary

  • ECCV 2022 Tutorial - Neural Volumetric Rendering for Computer Vision

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

    archive / summary

  • Behind the Pretty Frames: Death Stranding

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

    archive / summary

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

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

    archive / summary

  • [video] How Big Budget AAA Games Render Clouds

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

    archive / summary

  • Studying 'Spectral Primary Decomposition'

    - the article continues the series on spectral rendering

    archive / summary

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

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

    archive / summary

  • [video] How I Made The World with SINE

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

    archive / summary

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

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

    archive / summary

  • Shaders Explained: Dithering

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

    archive / summary

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

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

    archive / summary

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

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

    archive / summary

  • VK_EXT_descriptor_buffer

    - discusses issues with the current Vulkan binding model

    archive / summary

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

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

    archive / summary

  • Technically Art: Issue 135 (25.11.2022)

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

    archive / summary

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

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

    archive / summary

  • Shader Reflection using the DirectX Shader Compiler

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

    archive / summary

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

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

    archive / summary

  • Introduction of the ASTC Texture Compression

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

    archive / summary

  • [video] But what is a convolution?

    - the video provides a great visual explanation of convolution filters

    archive / summary

  • Spherical Elevation Adjusting Arbitrary Normals

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

    archive / summary

  • Radeon™ Raytracing Analyzer source code available + meet amdrdf

    - the AMD Radeon Raytracing Analyzer has been open-sourced

    archive / summary

  • Agility SDK 1.608.0: Enhanced Barriers and more

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

    archive / summary

  • VK_EXT_descriptor_buffer

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

    archive / summary

  • [video] GCAP22 Highlights: Expert Level Debugging

    - the presentation provides an overview of x64 assembly

    archive / summary

  • AMD lab notes

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

    archive / summary

  • Decompiling Nvidia shaders, and optimizing

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

    archive / summary

  • Technically Art: Issue 134 (18.11.2022)

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

    archive / summary

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

    - the video tutorial explains how to create a metal material

    archive / summary

  • BC1 Compression Revisited

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

    archive / summary

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

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

    archive / summary

  • Graphics API secrets: format casting

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

    archive / summary

  • GPU submission strategies

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

    archive / summary

  • Implicit half edges

    - the presentation explains what Half edges data structure is

    archive / summary

  • Triplanar, Dithered Triplanar, and Biplanar Mapping in Unreal

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

    archive / summary

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

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

    archive / summary

  • Bindless rendering — validation

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

    archive / summary

  • [video] SIGGRAPH 2022 Real-Time Live!

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

    archive / summary

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

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

    archive / summary

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

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

    archive / summary

  • GM Shaders Mini: Noise 2

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

    archive / summary

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

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

    archive / summary

  • GM Shaders Mini: Noise

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

    archive / summary

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

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

    archive / summary

  • Vector text rendering in Unreal Engine

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

    archive / summary

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

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

    archive / summary

  • Write your first GPU Kernel using Metal

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

    archive / summary

  • Unreal Engine Game Optimization on a Budget

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

    archive / summary

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

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

    archive / summary

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

    - the video shows the importance of color profiles

    archive / summary

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

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

    archive / summary

  • Shader Tutorial: Enter The Matrix

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

    archive / summary

  • Low Discrepancy Color Sequences

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

    archive / summary

  • Performance Comparison of Bounding Volume Hierarchies for GPU Ray Tracing

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

    archive / summary

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

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

    archive / summary

  • binary search for sdfs - 2018, 2022

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

    archive / summary

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

    - the slides discussing the new GI solution implemented for Godot

    archive / summary

  • Opening HLSL Planning

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

    archive / summary

  • SIGGRAPH Asia 2022 papers on the web

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

    archive / summary

  • Snowy Rock Shader - Advanced Materials - Episode 4

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

    archive / summary

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

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

    archive / summary

  • stanford - Computer Science cheatsheets

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

    archive / summary

  • Ray Tracing: How NVIDIA Solved the Impossible!

    - the video presents a history of light transport algorithms development

    archive / summary

  • Emulating Double Precision on the GPU to Render Large Worlds

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

    archive / summary

  • My mesh shaders talk at XDC 2022

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

    archive / summary

  • Better outline rendering using surface IDs with WebGL

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

    archive / summary

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

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

    archive / summary

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

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

    archive / summary

  • DirectStorage 1.1 Coming Soon

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

    archive / summary

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

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

    archive / summary

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

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

    archive / summary

  • Upscale SDK comparison

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

    archive / summary

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

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

    archive / summary

  • Lighting Test for Unreal Engine 5

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

    archive / summary

  • My take on shaders: Compute shaders

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

    archive / summary

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

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

    archive / summary

  • Post-Processing – In-Depth Camera Distortion Effects

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

    archive / summary

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

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

    archive / summary

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

    - the video provides a walkthrough of ray tracing fundamentals

    archive / summary

  • Progressive Material Caching

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

    archive / summary

  • On AlphaTensor’s new matrix multiplication algorithms

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

    archive / summary

  • Real-time distance field builder twitter thread

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

    archive / summary

  • Fused BVH to Ray Trace Level of Detail Meshes

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

    archive / summary

  • Combining GPU Tracing Methods within a Single Ray Query

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

    archive / summary

  • Technically Art: Issue 128 (07.10.2022)

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

    archive / summary

  • Notes about Nanite in UE5.1 preview

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

    archive / summary

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

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

    archive / summary

  • Notes on screenspace reflections with FidelityFx SSSR

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

    archive / summary

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

    - the video provides an introduction to the AMD raytracing tool

    archive / summary

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

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

    archive / summary

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

    - the article discusses the RGB and HSV color spaces

    archive / summary

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

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

    archive / summary

  • Bindless Rendering in DirectX12 and SM6.6

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

    archive / summary

  • An Algorithm for Polygon Intersections

    - the article presents how to calculate the intersection between axis

    archive / summary

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

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

    archive / summary

  • Vulkanised conference - call for submissions

    - the 2023 Vulkanised conference has been announced for in

    archive / summary

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

    - Intel has released the SDK for the XeSS upscaler

    archive / summary

  • Ray Tracing of Signed Distance Function Grids

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

    archive / summary

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

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

    archive / summary

  • Animation Retargeting

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

    archive / summary

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

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

    archive / summary

  • Advances in Real-Time Rendering in Games 2022

    - the slides for the Siggraph 2022 Advances in Real

    archive / summary

  • Quaternions: a geometrical interpretation.

    - the article presents a visual interpretation of Quaternion mathematics

    archive / summary

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

    - the video introduces the NVIDIA RTX Remix engine

    archive / summary

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

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

    archive / summary

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

    - the post provides insights into ray tracing BVH performance

    archive / summary

  • Vulkan Render-Queues and how they Sync

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

    archive / summary

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

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

    archive / summary

  • Defeat Banding – Part II

    - the article discusses a method to detect artifacts in video

    archive / summary

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

    - the video tutorial presents how to create a fullscreen post

    archive / summary

  • Fast Post-Processing on the Oculus Quest and Unity

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

    archive / summary

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

    - the article provides an overview of depth of field effects

    archive / summary

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

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

    archive / summary

  • Visualizing General Relativity

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

    archive / summary

  • Rendering my balls in a fragment shader

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

    archive / summary

  • Parallel curves of cubic Béziers

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

    archive / summary

  • Improving Vulkan graphics state tracking in Mesa

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

    archive / summary

  • Technically Art: Issue 124 (9.09.2022)

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

    archive / summary

  • Gradient-descent optimized recursive filters for deconvolution / deblurring

    - the post discusses infinite impulse response (IIR filter)

    archive / summary

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

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

    archive / summary

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

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

    archive / summary

  • Lighting participating media with thousands of lights

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

    archive / summary

  • Mesh Shading for Vulkan

    - mesh shader support has been added to Vulkan through VK_EXT_mesh_shader

    archive / summary

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

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

    archive / summary

  • Progressive image stippling and greedy blue noise importance sampling

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

    archive / summary

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

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

    archive / summary

  • Compressing global illumination with neural networks

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

    archive / summary

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

    - second year of the spectral rendering Siggraph course

    archive / summary

  • Technically Art: Issue 123 (2.09.2022)

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

    archive / summary

  • Barycentric Quad Rasterization

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

    archive / summary

  • Practical Real-Time Hex-Tiling

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

    archive / summary

  • Clip control on the Apple GPU

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

    archive / summary

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

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

    archive / summary

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

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

    archive / summary

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

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

    archive / summary

  • The GPU Banana Stand

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

    archive / summary

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

    - the article continues the series of translating DXIL to SPIR

    archive / summary

  • Exploring Shaders with Compiler Explorer

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

    archive / summary

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

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

    archive / summary

  • Deconstructing Bézier curves

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

    archive / summary

  • Journey to Lumen

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

    archive / summary

  • [video] Resampled Importance Sampling: Foundations of ReSTIR

    - the video presents the foundation how to general ReSTIR sampling

    archive / summary

  • [video] Coding a crazy weave pattern

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

    archive / summary

  • Lightweight Multidimensional Adaptive Sampling for GPU Ray Tracing

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

    archive / summary

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

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

    archive / summary

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

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

    archive / summary

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

    - Nvidia open-sources MDL distiller and the GLSL backend

    archive / summary

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

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

    archive / summary

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

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

    archive / summary

  • Using performance budgets in the Timing Capture metrics view

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

    archive / summary

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

    - the article explains the theory of a Gaussian blur algorithm

    archive / summary

  • Descriptors are hard

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

    archive / summary

  • Real-Time Path Tracing and Beyond

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

    archive / summary

  • SIGGRAPH 2022 Links

    - a growing collection of content from SIGGRAPH 2022

    archive / summary

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

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

    archive / summary

  • Explosion Decals

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

    archive / summary

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

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

    archive / summary

  • High-Performance Graphics 2022

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

    archive / summary

  • Vertex packing

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

    archive / summary

  • Paper Digest: SIGGRAPH 2022 Highlights

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

    archive / summary

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

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

    archive / summary

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

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

    archive / summary

  • HLSL Shader Model 6.7

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

    archive / summary

  • Shaders Explained: Gradients

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

    archive / summary

  • Porting AnKi to Android… again after ~8 years

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

    archive / summary

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

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

    archive / summary

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

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

    archive / summary

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

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

    archive / summary

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

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

    archive / summary

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

    - Nvidia has updated the performance best practices for RTX usage

    archive / summary

  • GPU Memory Pools in D3D12

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

    archive / summary

  • A Rust shading language EDSL

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

    archive / summary

  • A better point light attenuation function

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

    archive / summary

  • UVs and You

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

    archive / summary

  • GL_EXT_fragment_shader_barycentric: Wireframe

    - the article presents an overview of barycentric coordinates

    archive / summary

  • Adventures in Text Rendering: Kerning and Glyph Atlases

    - the article provides an overview of font rendering

    archive / summary

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

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

    archive / summary

  • Adventures with deferred texturing in horizon forbidden west

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

    archive / summary

  • zig-gamedev project

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

    archive / summary

  • Efficently rendering glTF models

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

    archive / summary

  • Behind the Pretty Frames: Resident Evil

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

    archive / summary

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

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

    archive / summary

  • High Performance Graphics 2022 papers on the web

    - list of papers presented at High-Performance Graphics 2022

    archive / summary

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

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

    archive / summary

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

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

    archive / summary

  • Swallowing the elephant into Blender

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

    archive / summary

  • Some SIGGRAPH 2022 Info

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

    archive / summary

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

    - article presents improvements in the new Nsight and Aftermath releases

    archive / summary

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

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

    archive / summary

  • Order independent transparency: endgame

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

    archive / summary

  • Advanced API Performance: SetStablePowerState

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

    archive / summary

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

    - the video recording of the first day of the High

    archive / summary

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

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

    archive / summary

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

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

    archive / summary

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

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

    archive / summary

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

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

    archive / summary

  • Creating a physically-based path tracer

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

    archive / summary

  • Space Rangers with Cornrows

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

    archive / summary

  • EGSR 2022 Presentation – Generalized Decoupled Shading

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

    archive / summary

  • Spatiotemporal Blue Noise Masks

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

    archive / summary

  • [video] Vulkan 1.3 explained

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

    archive / summary

  • Temporally Stable Real-Time Joint Neural Denoising and Supersampling

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

    archive / summary

  • GPU-Driven Real-Time Mesh Contour Vectorization

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

    archive / summary

  • Volume Rendering for Developers: Foundations

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

    archive / summary

  • Advanced Rendering Research Group at AMD

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

    archive / summary

  • Getting Started With DirectX Raytracing

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

    archive / summary

  • Planetary Shadow-Aware Distance Sampling

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

    archive / summary

  • Order independent transparency, part 2

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

    archive / summary

  • Seperation of mesh types

    - the Twitter thread discusses the terminology that applies to meshes

    archive / summary

  • [video] Creating Portals in Unreal for Psychonauts 2

    - the Xfest presentation discusses the portal implementation for Psychonauts 2

    archive / summary

  • Single-pass stratified importance resampling

    - the paper presents a new method for stratified resampling

    archive / summary

  • [video] Giving Personality to Procedural Animations using Math

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

    archive / summary

  • Fog for Top-Down Games

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

    archive / summary

  • Advances in Real-Time Rendering in Games - 2022

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

    archive / summary

  • Advanced API Performance: Vulkan Clearing and Presenting

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

    archive / summary

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

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

    archive / summary

  • Icosphere From Octahedron to Icosahedron

    - the article presents how to generate a procedural Icosahedron mesh

    archive / summary

  • Boosting Application Performance with GPU Memory Access Tuning

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

    archive / summary

  • Order independent transparency, Part 1

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

    archive / summary

  • Physical Units for Lights

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

    archive / summary

  • Comparing BCn texture decoders

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

    archive / summary

  • DirectML Plugin for TensorFlow 2 is here

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

    archive / summary

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

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

    archive / summary

  • Khronos cross-vendor mesh shader extension update

    - Khronos is sharing the first details about what the cross

    archive / summary

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

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

    archive / summary

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

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

    archive / summary

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

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

    archive / summary

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

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

    archive / summary

  • [video] 16 - Simulation on the GPU

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

    archive / summary

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

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

    archive / summary

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

    - the article presents a method to pack individual power

    archive / summary

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

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

    archive / summary

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

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

    archive / summary

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

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

    archive / summary

  • A Gentle Introduction to D3D12 (2022)

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

    archive / summary

  • QMC(Magic square, Glois field, QMC)

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

    archive / summary

  • Discover Metal 3

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

    archive / summary

  • WWDC22 - Metal sessions

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

    archive / summary

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

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

    archive / summary

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

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

    archive / summary

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

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

    archive / summary

  • Bridging the synchronization gap on Linux

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

    archive / summary

  • sRGB, Pre-Multiplied Alpha, and Compression

    - the article clarifies the meaning of sRGB encoded textures

    archive / summary

  • Overview of global illumination in kajiya renderer

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

    archive / summary

  • [video] SIGGRAPH 2022: Technical Papers Trailer

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

    archive / summary

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

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

    archive / summary

  • [Twitter Thread] D3D12 - specialization constants

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

    archive / summary

  • An Idea for Visualization of Frame Times

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

    archive / summary

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

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

    archive / summary

  • OpenGL Introduction - GPU Computing

    - a beginner level focused article that introduces OpenGL compute shaders

    archive / summary

  • [video] NVIDIA Renders Millions of Light Sources!

    - the video paper summary presents the ReSTIR introductory paper

    archive / summary

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

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

    archive / summary

  • Accelerating raytracing using software vrs

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

    archive / summary

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

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

    archive / summary

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

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

    archive / summary

  • PIX 2205.24: Unlocking Arm and Qualcomm development

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

    archive / summary

  • Basic Shadow Mapping // Intermediate OpenGL Series

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

    archive / summary

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

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

    archive / summary

  • WebGPU Buffer upload best practices

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

    archive / summary

  • Behind the Pretty Frames: Elden Ring

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

    archive / summary

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

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

    archive / summary

  • [video] Rust Graphics Meetup 2

    - the second edition of the Rust graphics developer meetup

    archive / summary

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

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

    archive / summary

  • DirectStorage speculations & myths

    - the article shows what the DirectStorage API enables on PC

    archive / summary

  • Permutation Coding for Vertex-Blend Attribute Compression

    - 15 min video explaining the concept has been added

    archive / summary

  • How to build a BVH – part 7: Consolidate

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

    archive / summary

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

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

    archive / summary

  • [video] AMD's Ray Tracing Research

    - the video provides a summary of AMD rayracing research

    archive / summary

  • Advanced API Performance: Variable Rate Shading

    - the article provides a brief overview of VRS modes available

    archive / summary

  • Advanced API Performance: Clears

    - the article presents performance advice from Nvidia for clear operations

    archive / summary

  • Integrating VRS in The Riftbreaker

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

    archive / summary

  • Comparing .obj parse libraries

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

    archive / summary

  • Reading list on ReSTIR

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

    archive / summary

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

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

    archive / summary

  • [video] GPU Texture Compression

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

    archive / summary

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

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

    archive / summary

  • Render Graph 101

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

    archive / summary

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

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

    archive / summary

  • Derivatives in compute shader

    - the article discusses how to calculate UV derivatives in compute

    archive / summary

  • Let’s Stop Calling it GGX

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

    archive / summary

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

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

    archive / summary

  • High Performance Graphics 2022 - Student Competition

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

    archive / summary

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

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

    archive / summary

  • Efficiency-aware multiple importance sampling for bidirectional rendering algorithms

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

    archive / summary

  • Sampling the hemisphere

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

    archive / summary

  • ReSTIR El-Cheapo

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

    archive / summary

  • Increasing wave coherence with ray binning

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

    archive / summary

  • Generalized Resampled Importance Sampling (GRIS)

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

    archive / summary

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

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

    archive / summary

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

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

    archive / summary

  • How to build a BVH – part 4: Animation

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

    archive / summary

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

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

    archive / summary

  • A Dataset and Explorer for 3D Signed Distance Functions

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

    archive / summary

  • A driver on the GPU

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

    archive / summary

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

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

    archive / summary

  • Agility SDK 1.602.0

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

    archive / summary

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

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

    archive / summary

  • Windows Graphics News – 2022 Q1

    - a collection of news from the graphics windows development world

    archive / summary

  • Shader compiler tools

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

    archive / summary

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

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

    archive / summary

  • Dynamic, Noise Free, Screen Space Diffuse Global Illumination

    - the article presents the screen space solution for Global Illumination

    archive / summary

  • Compute shaders in graphics: Gaussian blur

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

    archive / summary

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

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

    archive / summary

  • Radeon™ GPU Profiler 1.13 and Radeon Developer Panel 2.6

    - the article presents improvements to the new profiler version

    archive / summary

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

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

    archive / summary

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

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

    archive / summary

  • Slang Shading Language Advances

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

    archive / summary

  • i3D 2022 - Program

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

    archive / summary

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

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

    archive / summary

  • Modern OpenGL Tutorial - Tessellation Shaders

    - the video provides an overview of tessellation shader concepts

    archive / summary

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

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

    archive / summary

  • Eurographics 2022 papers on the web

    - a collection of papers to be presented at Eurographics 2022

    archive / summary

  • Adventures with Deferred Texturing in 'Horizon Forbidden West'

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

    archive / summary

  • Permutation Coding for Vertex-Blend Attribute Compression

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

    archive / summary

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

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

    archive / summary

  • Exponentially Better Rotations

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

    archive / summary

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

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

    archive / summary

  • Introducing HIP RT – a ray tracing library in HIP

    - AMD released a library to enable applications that use Heterogeneous

    archive / summary

  • How to build a BVH – Part 1: Basics

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

    archive / summary

  • Bringing Linearly Transformed Cosines to Anisotropic GGX

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

    archive / summary

  • ReSTIR GI for Specular Bounces

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

    archive / summary

  • Realtime Fluid Simulation: Projection

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

    archive / summary

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

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

    archive / summary

  • Graphics Pipeline, Techniques, & Algorithms in Vortice

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

    archive / summary

  • [video] Painting a Landscape using Mathematics

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

    archive / summary

  • Raytracing, a 4 year retrospective

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

    archive / summary

  • Bindless rendering — Templates

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

    archive / summary

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

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

    archive / summary

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

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

    archive / summary

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

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

    archive / summary

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

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

    archive / summary

  • [video] Interactive Graphics 22 - Global Illumination

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

    archive / summary

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

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

    archive / summary

  • [video] Procedurally Generating A Hexagon Grid in Unity

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

    archive / summary

  • Reducing Draw Time Hitching with VK_EXT_graphics_pipeline_library

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

    archive / summary

  • Software Rasterization of 2 Billion Points in Real Time

    - the paper presents an improvement of compute shader

    archive / summary

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

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

    archive / summary

  • Authoring Efficient Shaders for Optimal Mobile Performance

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

    archive / summary

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

    - the video lecture explains the concepts of compute shaders

    archive / summary

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

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

    archive / summary

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

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

    archive / summary

  • Texture sampling tips

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

    archive / summary

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

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

    archive / summary

  • Discover 3D content optimization with Simplygon

    - the talk provides an overview of different LOD concepts

    archive / summary

  • Raytraced global illumination denoising

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

    archive / summary

  • Rendering realtime caustics

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

    archive / summary

  • Skybox tutorial part 1

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

    archive / summary

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

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

    archive / summary

  • AMD - GDC2022

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

    archive / summary

  • 1.3 Vulkan Loader Improvements

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

    archive / summary

  • WebGPU and Graphics on the Web

    - podcast discussing the development and design of WebGPU

    archive / summary

  • Intel at the 2022 Game Developers Conference

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

    archive / summary

  • NVIDIA Hopper Architecture In-Depth

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

    archive / summary

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

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

    archive / summary

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

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

    archive / summary

  • Fast Non-Uniform 3D Frame Representation

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

    archive / summary

  • [video] HOW TO DEBUG Your OpenGL Code

    - the video tutorial provides a starting guide to OpenGL debugging

    archive / summary

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

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

    archive / summary

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

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

    archive / summary

  • PIX-2203.07: Support for DirectStorage

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

    archive / summary

  • DirectStorage API Now Available on PC

    - Microsft has released the first public version of DirectStorage

    archive / summary

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

    - the article presents an introduction into Reservoir

    archive / summary

  • [video] Interactive Graphics 17 - Geometry Shaders

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

    archive / summary

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

    - the video tutorial explains how to implement toon shading

    archive / summary

  • [video] Interactive Graphics 18 - Tessellation Shaders

    - the video tutorial covering Tessellation shaders

    archive / summary

  • Fast, GPU friendly, antialiasing downsampling filter

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

    archive / summary

  • Optimizing Oklab gradients

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

    archive / summary

  • Abstracting the graphics api for a toy renderer

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

    archive / summary

  • Bindless rendering — Setup

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

    archive / summary

  • A Better Approach to SDF Decomposition

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

    archive / summary

  • Stochastic Light Culling for Single Scattering in Participating Media

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

    archive / summary

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

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

    archive / summary

  • Mali-G710: a developer overview

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

    archive / summary

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

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

    archive / summary

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

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

    archive / summary

  • AMD at GDC 2022

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

    archive / summary

  • Exposure Fusion – local tonemapping for real-time rendering

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

    archive / summary

  • Variable Rate Compute Shaders on Xbox Series X|S

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

    archive / summary

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

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

    archive / summary

  • How Does Perspective Work in Pictures?

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

    archive / summary

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

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

    archive / summary

  • Improved Accuracy for Prism-Based Motion Blur

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

    archive / summary

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

    - the article presents Vulkan for Safety-Critical applications

    archive / summary

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

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

    archive / summary

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

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

    archive / summary

  • [video] Interactive Graphics 16 - Shadow Mapping

    - the video tutorial explains the concepts required for shadow mapping

    archive / summary

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

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

    archive / summary

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

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

    archive / summary

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

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

    archive / summary

  • [video] Clipping and viewport mapping in OpenGL

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

    archive / summary

  • Untangling Direct3D 12 Memory Heap Types and Pools

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

    archive / summary

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

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

    archive / summary

  • Building a new graphics engine in Rust - Part 2

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

    archive / summary

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

    - the video tutorial explains the concept of a noise hash

    archive / summary

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

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

    archive / summary

  • Ben Cloward - book recommendations

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

    archive / summary

  • [video] Interactive Graphics 12 - The Rendering Equation

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

    archive / summary

  • Shader translation benchmark

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

    archive / summary

  • Cube Sphere Going from Cube to Sphere

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

    archive / summary

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

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

    archive / summary

  • Exploring the Vulkan 1.3 Software Development Kit (SDK)

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

    archive / summary

  • A Review of Shader Languages

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

    archive / summary

  • [video] Modern OpenGL - Compute Shaders

    - the video tutorial explains the necessary concepts to use compute

    archive / summary

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

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

    archive / summary

  • Updates in Graphics and Gaming

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

    archive / summary

  • In the works: HLSL Shader Model 6.7

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

    archive / summary

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

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

    archive / summary

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

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

    archive / summary

  • A Shader Trick

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

    archive / summary

  • Technically Art: Issue 121 (11.02.2022)

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

    archive / summary

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

    - video introduction tutorial to shader programming with OpenGL

    archive / summary

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

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

    archive / summary

  • Ray-tracing in 10ms: Ambient occlusion

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

    archive / summary

  • WebGPU January 2022 meetup — takeaways

    - a roundup of WebGPU topics discussed at the January meetup

    archive / summary

  • Speeding up Blender .obj export

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

    archive / summary

  • SIMD in the GPU world

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

    archive / summary

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

    - the article provides an overview of the state of 16

    archive / summary

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

    - the article discusses more noise distributions functions, presents grid

    archive / summary

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

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

    archive / summary

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

    - the article presents components are defining the direct lighting component

    archive / summary

  • 2021 Vulkan Ecosystem Survey Results are in!

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

    archive / summary

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

    - the developer interview answers a large number of user questions

    archive / summary

  • [video] Interactive Graphics 08 - Lights & Shading

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

    archive / summary

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

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

    archive / summary

  • FXAA, SSAA, MSAA, and TXAA comic summary

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

    archive / summary

  • Direct3D 12: Long Way to Access Data

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

    archive / summary

  • UE5 Lumen Implementation Analysis

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

    archive / summary

  • Vulkan 1.3 and Roadmap 2022

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

    archive / summary

  • In defense of NIR

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

    archive / summary

  • Advanced Kernel Profiling with the Latest Nsight Compute

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

    archive / summary

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

    - the article why randomly tracing rays leads to noisy results

    archive / summary

  • WebGPU Best Practices

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

    archive / summary

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

    - the video explains the derivation of Cosine Interpolation

    archive / summary

  • Shader tips and tricks

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

    archive / summary

  • Removing Banding in Linelight

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

    archive / summary

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

    - the video provides a great introduction to image compression topics

    archive / summary

  • Behind the Pretty Frames: God of War

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

    archive / summary

  • Visualizing VGPR Pressure with Radeon™ GPU Analyzer 2.6

    - the article presents the new VGPR Pressure Visualization view

    archive / summary

  • The Perlin Problem: Moving Past Square Noise

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

    archive / summary

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

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

    archive / summary

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

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

    archive / summary

  • Radeon™ GPU Profiler 1.12 released

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

    archive / summary

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

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

    archive / summary

  • Texture Gathers and Coordinate Precision

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

    archive / summary

  • Instant Neural Graphics Primitives with a Multiresolution Hash Encoding

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

    archive / summary

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

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

    archive / summary

  • [video] Interactive Graphics 01 - Introduction

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

    archive / summary

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

    - the video explains how to derive the Lagrange Interpolation functions

    archive / summary

  • Technically Art: Issue 119 (14.01.2022)

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

    archive / summary

  • [video] New Weather Simulator: Almost Perfect!

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

    archive / summary

  • VK_KHR_dynamic_rendering tutorial

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

    archive / summary

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

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

    archive / summary

  • [video] PhD Thesis Fast Forward 2021

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

    archive / summary

  • Cache and Bandwidth Aware Real-time Subsurface Scattering

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

    archive / summary

  • Sphere Scene in Unity URP

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

    archive / summary

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

    - the video focuses on visualizations of GPU performance considerations

    archive / summary