Graphics Programming Weekly

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


  • Advanced API Performance: Clears

    - the article presents performance advice from Nvidia for clear operations

    archive / summary

  • Integrating VRS in The Riftbreaker

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

    archive / summary

  • Comparing .obj parse libraries

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

    archive / summary

  • Reading list on ReSTIR

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

    archive / summary

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

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

    archive / summary

  • [video] GPU Texture Compression

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

    archive / summary

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

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

    archive / summary

  • Render Graph 101

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

    archive / summary

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

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

    archive / summary

  • Derivatives in compute shader

    - the article discusses how to calculate UV derivatives in compute

    archive / summary

  • Let’s Stop Calling it GGX

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

    archive / summary

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

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

    archive / summary

  • High Performance Graphics 2022 - Student Competition

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

    archive / summary

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

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

    archive / summary

  • Efficiency-aware multiple importance sampling for bidirectional rendering algorithms

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

    archive / summary

  • Sampling the hemisphere

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

    archive / summary

  • ReSTIR El-Cheapo

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

    archive / summary

  • Increasing wave coherence with ray binning

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

    archive / summary

  • Generalized Resampled Importance Sampling (GRIS)

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

    archive / summary

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

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

    archive / summary

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

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

    archive / summary

  • How to build a BVH – part 4: Animation

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

    archive / summary

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

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

    archive / summary

  • A Dataset and Explorer for 3D Signed Distance Functions

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

    archive / summary

  • A driver on the GPU

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

    archive / summary

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

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

    archive / summary

  • Agility SDK 1.602.0

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

    archive / summary

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

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

    archive / summary

  • Windows Graphics News – 2022 Q1

    - a collection of news from the graphics windows development world

    archive / summary

  • Shader compiler tools

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

    archive / summary

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

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

    archive / summary

  • Dynamic, Noise Free, Screen Space Diffuse Global Illumination

    - the article presents the screen space solution for Global Illumination

    archive / summary

  • Compute shaders in graphics: Gaussian blur

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

    archive / summary

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

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

    archive / summary

  • Radeon™ GPU Profiler 1.13 and Radeon Developer Panel 2.6

    - the article presents improvements to the new profiler version

    archive / summary

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

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

    archive / summary

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

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

    archive / summary

  • Slang Shading Language Advances

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

    archive / summary

  • i3D 2022 - Program

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

    archive / summary

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

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

    archive / summary

  • Modern OpenGL Tutorial - Tessellation Shaders

    - the video provides an overview of tessellation shader concepts

    archive / summary

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

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

    archive / summary

  • Eurographics 2022 papers on the web

    - a collection of papers to be presented at Eurographics 2022

    archive / summary

  • Adventures with Deferred Texturing in 'Horizon Forbidden West'

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

    archive / summary

  • Permutation Coding for Vertex-Blend Attribute Compression

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

    archive / summary

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

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

    archive / summary

  • Exponentially Better Rotations

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

    archive / summary

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

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

    archive / summary

  • Introducing HIP RT – a ray tracing library in HIP

    - AMD released a library to enable applications that use Heterogeneous

    archive / summary

  • How to build a BVH – Part 1: Basics

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

    archive / summary

  • Bringing Linearly Transformed Cosines to Anisotropic GGX

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

    archive / summary

  • ReSTIR GI for Specular Bounces

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

    archive / summary

  • Realtime Fluid Simulation: Projection

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

    archive / summary

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

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

    archive / summary

  • Graphics Pipeline, Techniques, & Algorithms in Vortice

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

    archive / summary

  • [video] Painting a Landscape using Mathematics

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

    archive / summary

  • Raytracing, a 4 year retrospective

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

    archive / summary

  • Bindless rendering — Templates

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

    archive / summary

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

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

    archive / summary

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

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

    archive / summary

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

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

    archive / summary

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

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

    archive / summary

  • [video] Interactive Graphics 22 - Global Illumination

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

    archive / summary

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

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

    archive / summary

  • [video] Procedurally Generating A Hexagon Grid in Unity

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

    archive / summary

  • Reducing Draw Time Hitching with VK_EXT_graphics_pipeline_library

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

    archive / summary

  • Software Rasterization of 2 Billion Points in Real Time

    - the paper presents an improvement of compute shader

    archive / summary

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

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

    archive / summary

  • Authoring Efficient Shaders for Optimal Mobile Performance

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

    archive / summary

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

    - the video lecture explains the concepts of compute shaders

    archive / summary

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

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

    archive / summary

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

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

    archive / summary

  • Texture sampling tips

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

    archive / summary

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

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

    archive / summary

  • Discover 3D content optimization with Simplygon

    - the talk provides an overview of different LOD concepts

    archive / summary

  • Raytraced global illumination denoising

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

    archive / summary

  • Rendering realtime caustics

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

    archive / summary

  • Skybox tutorial part 1

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

    archive / summary

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

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

    archive / summary

  • AMD - GDC2022

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

    archive / summary

  • 1.3 Vulkan Loader Improvements

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

    archive / summary

  • WebGPU and Graphics on the Web

    - podcast discussing the development and design of WebGPU

    archive / summary

  • Intel at the 2022 Game Developers Conference

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

    archive / summary

  • NVIDIA Hopper Architecture In-Depth

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

    archive / summary

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

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

    archive / summary

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

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

    archive / summary

  • Fast Non-Uniform 3D Frame Representation

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

    archive / summary

  • [video] HOW TO DEBUG Your OpenGL Code

    - the video tutorial provides a starting guide to OpenGL debugging

    archive / summary

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

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

    archive / summary

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

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

    archive / summary

  • PIX-2203.07: Support for DirectStorage

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

    archive / summary

  • DirectStorage API Now Available on PC

    - Microsft has released the first public version of DirectStorage

    archive / summary

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

    - the article presents an introduction into Reservoir

    archive / summary

  • [video] Interactive Graphics 17 - Geometry Shaders

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

    archive / summary

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

    - the video tutorial explains how to implement toon shading

    archive / summary

  • [video] Interactive Graphics 18 - Tessellation Shaders

    - the video tutorial covering Tessellation shaders

    archive / summary

  • Fast, GPU friendly, antialiasing downsampling filter

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

    archive / summary

  • Optimizing Oklab gradients

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

    archive / summary

  • Abstracting the graphics api for a toy renderer

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

    archive / summary

  • Bindless rendering — Setup

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

    archive / summary

  • A Better Approach to SDF Decomposition

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

    archive / summary

  • Stochastic Light Culling for Single Scattering in Participating Media

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

    archive / summary

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

    - the paper introduces a technique to lower the cost of ray tracing by using approximated geometry f...

    archive / summary

  • Mali-G710: a developer overview

    - the article presents hardware and shader compiler improvements for the new Malig G710 GPU

    archive / summary

  • [RFC] Adding HLSL and DirectX support to Clang & LLVM

    - the forum post presents the proposal to integrate HLSL and DXIL support into clang/LLVM

    archive / summary

  • WebGPU — All of the cores, none of the canvas

    - the article provides an introduction to WebGPU for compute shader workloads

    archive / summary

  • AMD at GDC 2022

    - the page contains information and links to all the talks that AMD will present at GDC22

    archive / summary

  • Exposure Fusion – local tonemapping for real-time rendering

    - the article presents an explanation of common tone mapping issues, comparing multiple local tone m...

    archive / summary

  • Variable Rate Compute Shaders on Xbox Series X|S

    - the presentation talks about techniques to use VRS (Variable Rate Shading) to reduce the cost of l...

    archive / summary

  • Variable Rate Shading, Tales from the Trenches on Series X|S

    - the presentations cover the experience of implementing VRS into Doom Eternal and Gears5

    archive / summary

  • How Does Perspective Work in Pictures?

    - the article discusses the effect that human perception and images appear different

    archive / summary

  • Picking Fairly From a List of Unknown Size With Reservoir Sampling

    - the article presents a collection of code samples that allow the selection of random samples from ...

    archive / summary

  • Improved Accuracy for Prism-Based Motion Blur

    - the paper presents a method for improving the quality of motion blur on dynamic triangulated objec...

    archive / summary

  • Vulkan SC: Overview - and how it is different from the Vulkan you already know

    - the article presents Vulkan for Safety-Critical applications

    archive / summary

  • Beyond Sand & Spice: The VFX of Dune | DNEG Deep Dives

    - the video panel discussion presents a look at the VFX development for Dune

    archive / summary

  • Sampling in Floating Point (1/3): The Unit Interval

    - the article presents a method to uniformly sample floats in the [0, 1) range

    archive / summary

  • [video] Interactive Graphics 16 - Shadow Mapping

    - the video tutorial explains the concepts required for shadow mapping

    archive / summary

  • Tiling simplex noise and flow noise in two and three dimensions

    - the paper presents a tileable implementation of simplex noise for 2D and 3D cases

    archive / summary

  • Real-time Shading with Free-form Planar Area Lights using Linearly Transformed Cosine...

    - the paper proposed a real-time shading calculation for area lights defined by cubic Bezier curves

    archive / summary

  • Using Semaphore and Memory Sharing Extensions for Vulkan Interop with NVIDIA OpenCL

    - the article presents a new set of OpenCL and Vulkan extensions to allow interaction between the AP...

    archive / summary

  • [video] Clipping and viewport mapping in OpenGL

    - the video tutorial explains the process that vertices passthrough after vertex processing

    archive / summary

  • Untangling Direct3D 12 Memory Heap Types and Pools

    - the article shows how GPU memory is exposed to D3D12 application developers

    archive / summary

  • Why you can’t update Android’s GPU drivers like on your PC

    - the article presents an overview of the Graphics driver development model on Android devices

    archive / summary

  • Building a new graphics engine in Rust - Part 2

    - the article presents the authors' API decisions while developing a D3D12 based graphics engine usi...

    archive / summary

  • [video] Random Noise - Shader Graph Basics - Episode 35

    - the video tutorial explains the concept of a noise hash

    archive / summary

  • [video] Live Coding and Alien Orb - Modeling & Shadows

    - the video tutorial presents a coding session of an extraterrestrial inspired Orb object

    archive / summary

  • Ben Cloward - book recommendations

    - the author presents his list of recommended books for technical artists

    archive / summary

  • [video] Interactive Graphics 12 - The Rendering Equation

    - the video lectures cover the history and motivation of the rendering equation

    archive / summary

  • Shader translation benchmark

    - the article presents a performance benchmark of the naga shader translation system

    archive / summary

  • Cube Sphere Going from Cube to Sphere

    - the article discusses an alternative way to procedurally generate spheres from a cube base divisio...

    archive / summary

  • LunarG Releases New Vulkan 1.3.204.0 SDKs with Profiles Toolset and New Extensions

    - new Vulkan SDK updates allows application developers to create their own profiles

    archive / summary

  • Exploring the Vulkan 1.3 Software Development Kit (SDK)

    - Vulkan webinars about Vulkan 1.3 on March 10th - covering Validation Layer Performance and Vulkan ...

    archive / summary

  • A Review of Shader Languages

    - the updated article presents a comparison of HLSL, GLSL, MSL, and WGSL

    archive / summary

  • [video] Modern OpenGL - Compute Shaders

    - the video tutorial explains the necessary concepts to use compute

    archive / summary

  • Light transport matrices, SVD, spectral analysis, and matrix completion

    - the article presents light transport matrices and how they relate to light transport concepts

    archive / summary

  • Updates in Graphics and Gaming

    - the article presents a new windows insider feature that will allow DX10/DX11 games to take advanta...

    archive / summary

  • In the works: HLSL Shader Model 6.7

    - the blog post presents the new features of shader model 6.7

    archive / summary

  • Super Imposter shader: my journey to make a high quality imposter shader

    - the article provides an overview of the development process of using a texture

    archive / summary

  • [video] Real-Time Ray Tracing | RTX ON in Vulkan | Vulkan Lecture Series Ep. 6, Real-...

    - Video lecture series of the real-time rendering course at TU Wien

    archive / summary

  • A Shader Trick

    - the article discusses a problem with effects caused by loss of floating

    archive / summary

  • Technically Art: Issue 121 (11.02.2022)

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

    archive / summary

  • [video] How Shaders Work (in OpenGL) | How to Code Minecraft Ep. 3

    - video introduction tutorial to shader programming with OpenGL

    archive / summary

  • [video] Interactive Graphics 10 - Textures on the GPU

    - the video session explains Texture set up for usage from GPU shaders

    archive / summary

  • Ray-tracing in 10ms: Ambient occlusion

    - the article provides an overview of using raytracing to generate ambient occlusion

    archive / summary

  • WebGPU January 2022 meetup — takeaways

    - a roundup of WebGPU topics discussed at the January meetup

    archive / summary

  • Speeding up Blender .obj export

    - the article presents a walkthrough of the process that leads to the blender obj exporting being sp...

    archive / summary

  • SIMD in the GPU world

    - the article provides an overview of how SIMD execution models evolved over GPU generations

    archive / summary

  • The road to 16-bit floats GPU is paved with our blood

    - the article provides an overview of the state of 16

    archive / summary

  • Two Low Discrepancy Grids: Plus Shaped Sampling LDG, and R2 LDG

    - the article discusses more noise distributions functions, presents grid

    archive / summary

  • Direct Light 2: integrating shadow rays into a path tracer

    - the article presents why direct lighting computation should be separated from emitted light

    archive / summary

  • Direct Light 3: what goes in the direct light function?

    - the article presents components are defining the direct lighting component

    archive / summary

  • 2021 Vulkan Ecosystem Survey Results are in!

    - the Vulkan survey presents a summary of the results and presents what next steps will be taken to ...

    archive / summary

  • [video] Star Citizen Live: Graphics Engineering Q&A

    - the developer interview answers a large number of user questions

    archive / summary

  • [video] Interactive Graphics 08 - Lights & Shading

    - video lecture presents an introduction explaining how surfaces are light from lights

    archive / summary

  • [video] Skeletal Animation In OpenGL using Assimp - Part 5

    - the final video of the skeletal animation series using OpenGL and Assimp

    archive / summary

  • FXAA, SSAA, MSAA, and TXAA comic summary

    - 4 slides for a brief summary of the 4 common anti

    archive / summary

  • Direct3D 12: Long Way to Access Data

    - the article presents the flow of data when a CPU generated value is accessed from an HLSL shader

    archive / summary

  • UE5 Lumen Implementation Analysis

    - the article provides a summary of the Lumen implementation found in UE5 (Unreal Engine 5)

    archive / summary

  • Vulkan 1.3 and Roadmap 2022

    - the article provides a summary of the features that are mandatory in Vulkan 1.3

    archive / summary

  • In defense of NIR

    - the article explains the history and evolution of the mesa shader compiler (internal representatio...

    archive / summary

  • Advanced Kernel Profiling with the Latest Nsight Compute

    - the new version of the Nsight Compute allows a better understanding of memory traffic and cache ev...

    archive / summary

  • What is direct lighting (next event estimation) in a ray tracer?

    - the article why randomly tracing rays leads to noisy results

    archive / summary

  • WebGPU Best Practices

    - the presentation contains a collection of best practices when working with WebGPU

    archive / summary

  • [video] Useful functions for game designers - Cosine Interpolation

    - the video explains the derivation of Cosine Interpolation

    archive / summary

  • Shader tips and tricks

    - the article contains a collection of 53 tips & tricks to consider when writing shaders

    archive / summary

  • Removing Banding in Linelight

    - the article discusses how noise can help to reduce banding in light gradients

    archive / summary

  • [video] The Unreasonable Effectiveness of JPEG: A Signal Processing Approach

    - the video provides a great introduction to image compression topics

    archive / summary

  • Behind the Pretty Frames: God of War

    - the WIP article presents a walkthrough of a frame of God of War (PC version)

    archive / summary

  • Visualizing VGPR Pressure with Radeon™ GPU Analyzer 2.6

    - the article presents the new VGPR Pressure Visualization view

    archive / summary

  • The Perlin Problem: Moving Past Square Noise

    - the article presents the shortcomings of Perlin noise and what causes these

    archive / summary

  • [video] Tech Focus: Nvidia DLDSR - What Does AI Downsampling Actually Do?

    - the video presents super sampling techniques - showing the issues introduced if super

    archive / summary

  • [video] Talk - Practical Pigment Mixing for Digital Painting

    - the paper presents the novel mixbox model for natural color mixing that matches the painting of oi...

    archive / summary

  • Radeon™ GPU Profiler 1.12 released

    - the article presents the new debug views that can visualize the wavefront execution patterns

    archive / summary

  • Viewing DirectX® 12 Named Resources with Radeon™ Memory Visualizer 1.3

    - the article presents how to show resource name usage in the AMD memory visualization

    archive / summary

  • Texture Gathers and Coordinate Precision

    - the article presents a deep dive into a gather related artifact

    archive / summary

  • Instant Neural Graphics Primitives with a Multiresolution Hash Encoding

    - the paper presents a multi-resolution hash table of trainable feature vectors

    archive / summary

  • [video] Triplanar Projection Improvements - Shader Graph Basics - Episode 29

    - the video improves the tri-planar projection shader (allows texture mapping without UVs)

    archive / summary

  • [video] Interactive Graphics 01 - Introduction

    - introduction to a university course that covers the fundamental concepts of real

    archive / summary

  • [video] Useful functions for game designers - Lagrange Interpolation

    - the video explains how to derive the Lagrange Interpolation functions

    archive / summary

  • Technically Art: Issue 119 (14.01.2022)

    - an extensive collection of a large variety of tech art tweets collected into a single post

    archive / summary

  • [video] New Weather Simulator: Almost Perfect!

    - Two Minute Papers video summary of the Weatherscapes: Nowcasting Heat Transfer and Water Continuit...

    archive / summary

  • VK_KHR_dynamic_rendering tutorial

    - the tutorial shows how to use the VK_KHR_dynamic_rendering extension in Vulkan

    archive / summary

  • [video] Shader Coding for Beginners 2022 [Part 1]

    - the first part of a shader coding course (6 hours!) focusing on textual shaders using Unity

    archive / summary

  • [video] PhD Thesis Fast Forward 2021

    - the video contains the summary and overviews of Siggraph PhD thesis

    archive / summary

  • Cache and Bandwidth Aware Real-time Subsurface Scattering

    - the PhD thesis provides an overview of Subsurface scattering techniques and proposes a taxon...

    archive / summary

  • Sphere Scene in Unity URP

    - the article explains how to set up an effect that allows meshes to appear cut at the boundaries of...

    archive / summary

  • [video] You Might Be Thinking About Shader Performance Wrong

    - the video focuses on visualizations of GPU performance considerations

    archive / summary

  • Mali GPU Training

    - a collection of video resources for GPU development

    archive / summary

  • [video] Skeletal Animation In OpenGL using Assimp - Part 2

    - the second part of the series explains the mapping between vertices and bones

    archive / summary

  • Insider guide to tech interviews

    - the article provides an in-depth discussion of the interview process for more experienced develope...

    archive / summary

  • Temporal AA and the quest for the Holy Trail

    - the article presents a very detailed look at temporal anti

    archive / summary

  • Reader Question Answered 1 - Learning D3D12

    - the article provides a high-level learning guide for getting started with D3D12

    archive / summary

  • Finding Your Home in Game Graphics Programming

    - the article presents a high-level view of the graphics programming world

    archive / summary

  • Interleaved Gradient Noise: A Different Kind of Low Discrepancy Sequence

    - the article presents the characteristics of IGN(Interleaved Gradient Noise) that make it a good fi...

    archive / summary

  • Notes on occlusion and directionality in image based lighting

    - the article presents the findings of the importance of directionality and occlusion for IBL(Image

    archive / summary

  • What is an uber shader?

    - the article presents a look back at the emergence of the term uber shader

    archive / summary

  • Not All Blue Noise is Created Equal Part 2

    - the article compares different techniques to generate blue noise

    archive / summary

  • The History of Retro Game Consoles for Programmers

    - the article provides a history of game consoles in the First Generation 1972 to modern

    archive / summary

  • Branching on a GPU

    - the article presents branching on GPUs, clearing up that the cost of a branch depends on the kind

    archive / summary

  • Stalling a GPU

    - the blog discusses dependent texture reads and the impact on GPU performance

    archive / summary

  • Mixed Precision Algorithms in Numerical Linear Algebra

    - the paper presents a look at the half/single/double and quad precision for floating

    archive / summary

  • [video] The small detail behind Breath of the Wild's Thousands of Trees - Quick Answe...

    - one-minute long video shows the impostors used for far away vegetation in Zelda Breath of the Wild...

    archive / summary

  • Global shaders in Unreal without engine modification

    - the article shows how custom shader effects can be integrated into the UE4 pipeline

    archive / summary

  • Digital Dragons 2021: Adam Sawicki - Efficient Use of GPU Memory in Modern Games

    - talk discusses the available memory types in D3D12/Vulkan

    archive / summary

  • Debugging For Graphics Programmers

    - the article provides a collection of advice to help with debugging GPU issues

    archive / summary

  • Christmas Decoration for Graphics Engineers

    - the article describes a setup to use a software rasterizer to create winter decorations for tiny p...

    archive / summary

  • Debugging Your Renderer (4/n): End-to-end tests (or, why did that image change?)

    - the post presents the importance of testing images that allow the testing of a renderer

    archive / summary

  • Debugging Your Renderer (5/n): Rendering Deterministically

    - the article discusses sources of nondeterministic rendering in PBRT

    archive / summary

  • Homegrown rendering with Rust

    - the article presents the release of the kajiya experimental renderer written in Rust

    archive / summary

  • [video] Triplanar Projection - Shader Graph Basics - Episode 28

    - The shader video tutorial shows how to create a shader that projects textures from the top, front...

    archive / summary

  • Improved Triplanar projections

    - the article presents how to use barycentric coordinates to improve triplanar projections

    archive / summary

  • [video] Digital Foundry's Best Game Graphics of 2021 - PC, Xbox, PlayStation - Anothe...

    - video discussing the best graphical releases of the year

    archive / summary

  • Vulkan: Why some GPUs expose a dozen of identical memory types?

    - the article discusses why Vulkan drivers expose a single heap with multiple memory types

    archive / summary

  • From GLSL to WGSL: the future of shaders on the Web

    - the post describes the differences between the new WebGPU Shading language and GLSL

    archive / summary

  • Triangle Grid Triangles and Hexagons

    - the article presents alternative mesh structures to generate grid structures

    archive / summary

  • Rendering in Real Time with Spatiotemporal Blue Noise Textures, Part 1

    - the article introduces a technique and generated textures that enable the use of Spatiotemporal bl...

    archive / summary

  • Rendering in Real Time with Spatiotemporal Blue Noise Textures, Part 2

    - the article discusses Spatiotemporal blue noise in more depth

    archive / summary

  • [video] Coding the Game of Life - Part II

    - the second part of the game of life shadertoy implementation focuses on the improvement of the vis...

    archive / summary

  • [video] Pipelines and Stages - Inside Graphics, Compute, Ray Tracing Pipes - Vulkan L...

    - the video of the Vulkan lecture series introduces the stages of the graphics, compute, and raytrac...

    archive / summary

  • Frickin' Shaders With Frickin' Laser Beams

    - the author presents the design for a composable GLSL system based on the idea of closure

    archive / summary

  • How to Read Research Papers: A Pragmatic Approach for ML Practitioners

    - the article discusses advice for new research on how to effectively read research papers

    archive / summary

  • Technically Art: Issue 118 (18.12.2021)

    - a collection of tweets covering a large variety of tech art topics such as

    archive / summary

  • Modern (Bindless) Sprite Batch for Vulkan (and more!)

    - the article describes how to use a Vulkan bindless setup for 2D sprite batching

    archive / summary

  • World-space spatiotemporal reservoir reuse for ray-traced global illumination

    - the paper presents a technique that performs reservoir

    archive / summary

  • AMD GPUOpen - Publications

    - list of AMD research publications - contains papers starting in 2010

    archive / summary

  • Godot Rendering Pipelines

    - the article shows how to write data into an offscreen target and process it in a full

    archive / summary

  • Enhanced Barriers

    - Microsoft released the spec for the Enhanced D3D12 barrier API

    archive / summary

  • D3D12 Enhanced Barriers Preview

    - the blog post provides an introduction to the new enhanced barrier preview for D3D12

    archive / summary

  • Experimental Analysis of Multiple Scattering BRDF Models

    - the paper presents an analysis of multiple scattering BRDF models

    archive / summary

  • Announcing HLSL 2021

    - the article presents the new features released as part of the DXC update for December

    archive / summary

  • Announcing new DirectX 12 feature – Video Encoding!

    - the blog post presents the video encoding API that has been added to d3d12

    archive / summary

  • Introduction to Tessellation in Metal

    - the article presents an overview of tesselation shaders

    archive / summary

  • How to Build a Compute Rasterizer with WebGPU

    - the article presents how to implement 3D mesh rasterization in a WebGPU compute shader

    archive / summary

  • [video] Swizzle & Channel Manipulation - Shader Graph Basics - Episode 25

    - the video tutorial introduces swizzle operations

    archive / summary

  • fma: A faster, more accurate instruction

    - the article presents the shader multiply/add operation (fma/mad)

    archive / summary

  • The Definitive Weta Digital Guide to IBL

    - the tutorial describes the capturing process for image

    archive / summary

  • Building a PS1 style retro 3D renderer

    - the article describes the hardware characteristics of the PS1 renderer

    archive / summary

  • Tiled Reservoir Sampling for Many-Light Rendering

    - the paper introduces a combination of tile-based stochastic light culling and reservoir sampling

    archive / summary

  • Gradients in linear space aren't better

    - the article shows how gradients differ with different color spaces

    archive / summary

  • Arm Best Practice warnings in the Vulkan SDK

    - the article presents the Vulkan SDK layer architectures

    archive / summary

  • Why gamers and developers should care about ray tracing

    - the article provides an overview of use cases for ray tracing

    archive / summary

  • Debugging Your Renderer (3/n): Assertions (and on not sweeping things under the rug)

    - the article discusses the importance of asserts for debugging a renderer

    archive / summary

  • Understanding Graphs in GPUView and RGP

    - the article explains what information GPUView and Radeon GPU Profiler show

    archive / summary

  • Custom Bloom Post-Process in Unreal Engine

    - the article provides an overview of the bloom technique and implementations

    archive / summary

  • Skeletal Animation In OpenGL using Assimp - Part 1

    - the video tutorial provides an overview of the skinning animation technique

    archive / summary

  • Denoising Sprite Fright

    - the article presents the noise issues encountered when rendering out animated camera tracks

    archive / summary

  • [video] Reflection and Refraction Vectors - Shader Graph Basics - Episode 24

    - the video shows a visualization of reflection and refraction vectors

    archive / summary

  • Lossless Image Compression in O(n) Time

    - the article presents the overview of a small and simple lossless image compression

    archive / summary

  • Floating-point in mobile shaders

    - the article presents an overview of fp16 (16-bit floating

    archive / summary

  • Tessellation-Free Displacement Mapping for Ray Tracing

    - the paper presents a new approach that decouples displacement from the tessellation of the base me...

    archive / summary

  • A quick breakdown of lighting in the restir-meets-surfel branch

    - provides a rundown of the different stages of a WIP experiment combing surfels and ReSTIR for rend...

    archive / summary

  • Shader Assembly and D3D12 Root Signatures

    - the article presents a look at the RDNA2 assembly generated from a simple pixel shader that output...

    archive / summary

  • Debugging Your Renderer (2/n): Unit Tests

    - the article presents a starting point for developing unit tests for rendering algorithms

    archive / summary

  • Adventures in Hybrid Rendering

    - the article presents an overview of the implementation for various techniques found to mix raytrac...

    archive / summary

  • Vulkan Pills 1: Bindless Textures

    - the article presents the quickest way to implement fully bindless shaders using Vulkan

    archive / summary

  • Advanced Shading Techniques with Pixel Local Storage

    - the article shows how Pixel Local Storage can be used on ARM GPUs to implement Translucency and Or...

    archive / summary

  • Getting started with Metal-cpp

    - the article presents the official C++ interface for Metal

    archive / summary

  • How to Level Up Your Profiling With RenderDoc for Oculus

    - the article describes the RenderDoc fork for use with Oculus devices

    archive / summary

  • Prefix sum on portable compute shaders

    - the author presents his experience trying to run a prefix sum sorting algorithms portably using We...

    archive / summary

  • From NVIDIA DLSS 2.3 To NVIDIA Image Scaling: NVIDIA’s Full Stack Of Scaling Solution...

    - update on Nvidia scaling solutions - the NVIDIA Image Scaling SDK now provides an open

    archive / summary

  • Jump flooding with bgfx

    - the article shows an example of implementing a flood filling algorithm using the BGFX abstraction ...

    archive / summary

  • Strange Attractors on the GPU, Part 1: Implementation

    - the article presents how to implement GPU particles with movement tails without CPU interaction

    archive / summary

  • How to draw styled rectangles using the GPU and Metal

    - the article presents how to render rectangles with rounded edges

    archive / summary

  • The Repackaged Windows Vulkan SDK

    - the Vulkan SDK has been repackaged and now separates between core and optional components

    archive / summary

  • NVIDIA GTC: A Complete Overview of Nsight Developer Tools

    - provides an overview of the available Nvidia developer tools

    archive / summary

  • Streamlining Render Passes

    - the post summarizes the new VK_KHR_dynamic_rendering extension

    archive / summary

  • [video] Intro to Graphics 22 - Signal Processing

    - the video tutorial provides a beginner introduction to signal processing

    archive / summary

  • [video] Jonathan Ragan Kelley: Organizing Computation for High-Performance Visual Com...

    - the talk presents a discussion of performance tradeoffs

    archive / summary

  • [video] (Ab)using RTX for Element Point Location

    - provides an explanation of point queries and why point queries on unstructured data is a lot more ...

    archive / summary

  • Rendering text

    - the article provides a history of text rendering techniques

    archive / summary

  • [video] Rendering Lines in a Game Engine // Game Engine series

    - the video tutorial explains how to render lines using OpenGL

    archive / summary

  • Shaded vertex reuse on modern gpus

    - the article presents results comparing the vertex post

    archive / summary

  • New Quest Rendering Tech Promises Massive Gains in App Performance

    - summary of Occlulus Quest 2 Application SpaceWarp technology

    archive / summary

  • Shadow outlines tutorial

    - the Unity tutorial shows how to sample shadow maps and implement an edge detection filter

    archive / summary

  • Stencil Portal in Unity — VFX Breakdown

    - the article explains how to implement a portal look into a separate world using stencil buffers fo...

    archive / summary

  • Technically Art: Issue 115 (05.11.2021)

    - weekly round-up of tweets from a large variety of technical art and VFX topics

    archive / summary

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

    - the article presents the details of the D3D12 binding model and discusses the differences to Vulka...

    archive / summary

  • Working Around Constructors in HLSL (or lack thereof)

    - the article presents how constructor like functionality can be implemented in DXC HLSL

    archive / summary

  • [video] Intro to Graphics 20 - Shadows & Reflections

    - class in introduction to computer graphic series focusing on shadows

    archive / summary

  • [video] How Computers Draw Weird Shapes

    - the video tutorial explains how to implement metaball rendering

    archive / summary

  • [video] A Deep Dive into Nanite Virtualized Geometry

    - the video for the SIGGRAPH 2021 presentation about UE5 Nanite has been released

    archive / summary

  • VK_KHR_dynamic_rendering

    - Vulkan extension that allows the use of render passes in Vulkan using a D3D12 style objectless mod...

    archive / summary

  • [video] Spot lights in OpenGL

    - video tutorial explains the concepts of spotlights and develops a mathematical model to describe t...

    archive / summary

  • [video] SIGGRAPH 2021 Rendering Engine Architecture course

    - the videos for the excellent SIGGRAPH 2021 Rendering Engine Architecture course have been released...

    archive / summary

  • The curious case of slow raytracing on a high end gpu

    - the article shows that out of bounds access reduced rendering performance by 25x

    archive / summary

  • Practical Gaussian filtering: Binomial filter and small sigma Gaussians

    - the article discusses the Binomial and Gaussians filter

    archive / summary

  • Advanced API Performance: Command Buffers

    - the article covers a few high-level points on how command buffers allow parallelization of CPU ren...

    archive / summary

  • Advanced API Performance: Memory and Resources

    - the blog post provides recommendations for memory management using D3D12 on

    archive / summary

  • Advanced API Performance: Mesh Shaders

    - the article provides information about what practices are recommended for getting good mesh shader...

    archive / summary

  • [video] How Link's eyebrows go over his hair - Quick Answer #shorts

    - short 1-minute video that explains how masking with disabled depth testing allows the eyebrows to ...

    archive / summary

  • Scalable global illumination for O3DE

    - the presentation presents an overview of different Global illumination techniques

    archive / summary

  • In­ter­ac­tive Ex­plo­ration of Ho­mo­ge­neous Co­or­di­nates and Ra­tio­nal Splines

    - the article provides an explanation of Ho­mo­ge­neous Co­or­di­nates

    archive / summary

  • Vulkanised 2021 - Fall

    - the slides and video recordings from the Vulkanised 2021 conference have been released

    archive / summary

  • [video] HLSL shaders compilation pipeline in BG3

    - discussing how the mapping from D3D to Vulkan binding semantics was implemented using SPIR

    archive / summary

  • Interactive Volumetric Fog With Fluid Dynamics and Arbitrary Boundaries

    - the article presents a method to generate and simulate real

    archive / summary

  • Swapchains and frame pacing

    - the article presents an in-depth overview of the pipeline required to display a image on screen

    archive / summary

  • Advanced API Performance: Barriers

    - collection of best practices for NVidia hardware regarding buffer management

    archive / summary

  • Advanced API Performance: Async Copy

    - the article discusses considerations when to use async copy queue, async compute, or serial copy e...

    archive / summary

  • Advanced API Performance: Async Compute and Overlap

    - the article presents a collection of Nvidia advice for getting good performance from async compute...

    archive / summary

  • Recovering Real-World Reflectance Properties and Shading From HDR Imagery

    - the paper presents how using HDR and 3D scan data, it's possible to reconstruct the material BRDF ...

    archive / summary

  • Creating a Foliage Shader in Unity URP Shader Graph

    - the tutorial covers a walkthrough of a foliage shader in Unity

    archive / summary

  • [video] How To Render CIRCLES (OpenGL/Vulkan/DirectX/Metal)

    - the in-depth video tutorial explains how to render a circle using shadertoy

    archive / summary

  • The Shader Permutation Problem - Part 1: How Did We Get Here?

    - the blog introduces the topic of shader permutations and why they end up being common issues

    archive / summary

  • The Shader Permutation Problem - Part 2: How Do We Fix It?

    - the article dives deeper into the issues related to shader permutations

    archive / summary

  • NeRF at ICCV 2021

    - collection of Neural Radiance Field papers that will be presented at Intl. Conf. on Computer Visio...

    archive / summary

  • Frame Analysis - Control

    - frame breakdown of a single frame from the game control (as video and text)

    archive / summary

  • Graphics Twitter - send me links for stuff explaining modern GPU architecture (PS5,RT...

    - Twitter thread asking for GPU architecture information

    archive / summary

  • Linking DXIL Binaries Using DXC

    - the article shows how recent versions of DXC can link DXIL shaders for all shader stages

    archive / summary

  • AMD FidelityFX Super Resolution: the Digital Foundry interview

    - interview with Nick Thibieroz, Director of Game Engineering at AMD

    archive / summary

  • Gentle Introduction to Realtime Fluid Simulation for Programmers and Technical Artist...

    - the articles provides a beginner friendly introduction into fluid simulation

    archive / summary

  • GPU BCn decoding

    - the article explains how BC format encodind differs between hardware vendors

    archive / summary

  • Improving GPU Memory Oversubscription Performance

    - the post presents an overview of the performance characteristics for nvida applications related to...

    archive / summary

  • [video] Specular Lighting in OpenGL

    - the video tutorial extends the Phong lighting model with the addition of specular lighting

    archive / summary

  • Instanced Line Rendering Part II: Alpha blending

    - the article demonstrates how to implement line segment rendering so that the segments are not over...

    archive / summary

  • Ray Tracing versus Animation

    - the blog presents performance number for Bottom-level acceleration structure when using D3D12 rayt...

    archive / summary

  • New Graphics Books, Fall 2021

    - collection of 5 new graphics programming books - fundamentals, Vulkan, OpenGL and a history of com...

    archive / summary

  • Fast temporal reprojection without motion vectors

    - the paper proposes a new technique to enable the temporal reuse of samples in scenarios where moti...

    archive / summary

  • An OpenEXR Layout for Spectral Images

    - the paper provides an overview of Spectral Image Representation and Bi

    archive / summary

  • [video] Blub - Interactive GPU fluid solver

    - the video provides an overview of a GPU based fluid solver

    archive / summary

  • Dynamic flowing foam in Unity

    - the Unity tutorial shows how to implement a basic flow system in Unity

    archive / summary

  • Shader Tutorial: Self-Drawing Lines

    - the Unity tutorial explains how to implement a 2D effect where a mask controls the visibility of a...

    archive / summary

  • [video] How to think about 3D rotations

    - the video explains how to develop a mental model of 3D rotations

    archive / summary

  • Khronos KTX 2.0 Textures Enable Compact, Visually Rich, glTF 3D Assets

    - Khronos released the texture format 2.0, which now supports Basis Universal compression

    archive / summary

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

    - the blog post describes the details about parsing DXIL (the output from the Microsoft Shader Compi...

    archive / summary

  • Creative Use of GPU Fixed-Function Hardware

    - the article presents a few examples of how GPU fixed function hardware is used for other purposes ...

    archive / summary

  • Gentle introduction to GPUs inner workings

    - the article provides an introduction to more hardware level information about GPU execution

    archive / summary

  • Understanding Metal Enhancements in the A15 Bionic GPU

    - the article provides a summary of the new hardware features in Apple GPUs

    archive / summary

  • [video] NVIDIA’s New Technique: Beautiful Models For Less!

    - the video provides a paper summary from NVidia that uses differentiable rendering to simplify geom...

    archive / summary

  • CodeGen Performant Convolution Kernels for Mobile GPUs

    - the article presents how to use MLIR (Multi-Level IR Compiler Framework) for efficient SPIR

    archive / summary

  • GPU Dashboards in Jupyter Lab

    - NVidia provides an open-source dashboard for Jupyter and a standalone Boker server

    archive / summary

  • [video] Diffuse Lighting in OpenGL

    - video tutorial that explains lambert diffuse lighting function

    archive / summary

  • Discover advances in Metal for A15 Bionic

    - the video presents what is new with the A15 GPU - added support for lossy compression

    archive / summary

  • Compute versus Hardware

    - the article presents a comparison of triangle throughput for indexed buffer rendering, mesh shader...

    archive / summary

  • Creating Portable Vulkan Applications Using DevSim

    - the whitepaper explains how to use DevSim to simulate lower spec devices on higher

    archive / summary

  • Digital combat simulator: frame analysis

    - the frame breakdown covers the flight simulator scenes

    archive / summary

  • Developing Ray tracing content for mobile games

    - the article discusses lessons learned by ARM's approach for developing raytracing support for Mali...

    archive / summary

  • [video] Smoothstep - Shader Graph Basics - Episode 15

    - the video shows the smoothstep node in UE5 and Unity3D

    archive / summary

  • [video] The FUTURE Of Graphics | Mesh Shaders, Ray Tracing & Vulkan with Neil Trevett...

    - video in-depth interview with VP of developer ecosystems at Nvidia

    archive / summary

  • Custom Lens-Flare Post-Process in Unreal Engine

    - the in-depth article shows how to implement a custom physically based lens flare effect as post

    archive / summary

  • Fast Volume Rendering with Spatiotemporal Reservoir Resampling

    - the paper presents how to extend spatiotemporal reservoir resampling to multi

    archive / summary

  • A Token Based Approach To Ordering Transitions

    - the author suggests a method D3D12 state transition system for multithreaded command recording

    archive / summary

  • Physical Light-Matter Interaction in Hermite-Gauss Space

    - the paper proposes a formal model to describe how surfaces/media respond to incident radiation

    archive / summary

  • ray_tracing_motionblur

    - the Vulkan tutorial shows how to use the Vulkan VK_NV_ray_tracing_motion_blur extension (exposed b...

    archive / summary

  • Okhsv and Okhsl

    - the article presents a derivation of new color spaces designed for more uniform color picker behav...

    archive / summary

  • SDF Decomposition

    - the article presents a method for the rendering of static Constructive solid geometry SDFs

    archive / summary

  • Say hello to shadergarden

    - article introduces a prototyping system aimed at making multi

    archive / summary

  • Vulkanised 2021

    - signup and schedule for the Vulkanised conference has been published

    archive / summary

  • The Fog of Random

    - the article presents a look at the making of the fog lost in random

    archive / summary

  • Perceptual Model for Adaptive Local Shading and Refresh Rate

    - the paper introduces a new metric, CaMoJAB - this considers how the judder, aliasing, and blur art...

    archive / summary

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

    - start of an article series discussing DXIL with the intended usage of conversion to SPIR

    archive / summary

  • Vulkan’s Best Practice layer now has AMD-specific checks

    - AMD published a Vulkan layer that analyzes the API usage

    archive / summary

  • Vulkan Layer Symbiosis within the Vulkan Ecosystem

    - the whitepaper provides an overview of the Vulkan layer validation tool

    archive / summary

  • Access modern GPU features with WebGPU

    - WebGPU is slowly rolled out into mainstream Chrome versions

    archive / summary

  • Technically Art: Issue 108 (03.09.2021)

    - collection of Tech Art tweets - covering procedural animation, waterfall simulations, particles, a...

    archive / summary

  • The Rendering of Mafia: Definitive Edition

    - in-depth frame analysis of a nighttime scene in Mafia, a d3d11 based deferred rendering engine

    archive / summary

  • Optimizing AMD FSR for Mobiles

    - the article presents optimizations to the FidelityFX Super

    archive / summary

  • Compressed GPU texture formats – a review and compute shader decoders – part 3/3

    - the article presents how to implement a shader-based ASTC decoder

    archive / summary

  • My Takeaways from WebGPU July 2021 Meetup

    - the article contains a brief summary of the content presented at the WebGPU meetup

    archive / summary

  • Stylised Grass with Shaders in URP

    - the shader tutorial presents how to implement a grass shader using the Universal Render Pipeline i...

    archive / summary

  • Technically Art: Issue 107 (27.08.2021)

    - collection of tweets covering an extensive range of technical art topics

    archive / summary

  • Linux in a Pixel Shader - A RISC-V Emulator for VRChat

    - article presents a project that emulates a Linux in a pixel shader running in VRChat

    archive / summary

  • Temporal Antialiasing Starter Pack

    - the article presents a collection of TAA resources

    archive / summary

  • [video] The Beauty of Bézier Curves

    - the video shows how bezier curves are defined, how they are used

    archive / summary

  • Writing Portable Rendering Code with NVRHI

    - Nvidia open-sourced their internal abstraction layer on top of D3D11, D3D12, and Vulkan

    archive / summary

  • SIGGRAPH 2021 Links

    - collection of links to Siggraph 2021 content - Courses, papers, posters, ...

    archive / summary

  • Better GPU Hash Tables

    - the paper presents three different variations of static hash tables for GPU usage

    archive / summary

  • 5 ways to draw an outline

    - the articles shows Rim Effects, Vertex Extrusion, Blurred Buffer, Jump Flood Algorithm, and Edge D...

    archive / summary

  • PIX 2108.18: New programmatic capture APIs and much more

    - new PIX for windows APIs that allow applications to take a capture programmatically without having...

    archive / summary

  • Read My Chapter in Ray Tracing Gems II!

    - the article provides a summary of the Using Bindless Resources With DirectX Raytracing chapter fro...

    archive / summary

  • [pptx] Geometry Rendering Pipeline Architecture at Activision

    - the talk presents how Activision had to rethink the geometry pipeline when moving from tightly con...

    archive / summary

  • [video] Anti-Racist Graphics Research (SIGGRAPH 2021)

    - the video discusses biases and assumptions that are baked into the graphics research

    archive / summary

  • Optimizing DX12 Resource Uploads to the GPU Using CPU-Visible VRAM

    - the article presents a new D3D12 Nvidia extension that enables a developer to allocate CPU

    archive / summary

  • SIGGRAPH 2021 Talk- Unbiased Emission and Scattering Importance Sampling for Heteroge...

    - the paper presents a new distance sampling method

    archive / summary

  • 2D Lighting with Hard Shadows

    - the article presents a polygon extension-based method for the generation of 2D shadows

    archive / summary

  • 2D Lighting with Soft Shadows

    - the blog post extends the previously discussed hard shadow method to support penumbra based soft s...

    archive / summary

  • Introducing a New API for Checking Feature Support in Direct3D 12

    - the blog post presents a new helper class (CD3DX12FeatureSupport) that unifies the D3D12 feature c...

    archive / summary

  • Introduction to Caching Shading Information in World Space using Implicit Progressive...

    - the article presents an overview of a master thesis about caching shading information in world spa...

    archive / summary

  • Advances in Real-Time Rendering in 3D Graphics and Games - Siggraph 2021

    - course page for the content of Siggraph 2021 - covering Spatial Upscaling through FidelityFX, Conc...

    archive / summary

  • Rendering Engine Architecture Course - Siggraph 2021

    - a new course happening for the first time in 2021

    archive / summary

  • Graphics Showcase: Using Vulkan Subpasses in UE4 for Performant Tone Mapping on Quest

    - article presents how tone mapping can be implemented into UE 4 using Vulkan sub passes

    archive / summary

  • Ray Tracing Gems II Available Today as Free Digital Download

    - free 800+ pages on raytracing - a large number of topics is covered, including the following

    archive / summary

  • Paper Digest: SIGGRAPH 2021 Highlights

    - list of 149 accepted SIGGRAPH-2021 papers - containing a machine

    archive / summary

  • EXR: Lossless Compression

    - short blog post that tests EXR compression/decompression speed for the different available options...

    archive / summary

  • A call to brute force

    - author shows that path tracers are fundamentally simple if relying on pure brute force approaches

    archive / summary

  • Swallowing the Elephant (Part 12): A Postscript On Disk Bandwidth

    - discussion of loading performance in pbrt-v4 - showing how IO and CPU performance bottleneck chang...

    archive / summary

  • A Little Bit About PRNG Stuff

    - article presents an in-depth discussion of Pseudorandom Number Generators

    archive / summary

  • Unity at SIGGRAPH 2021

    - overview of Unity at Siggraph - Unity is providing access to a basic level SIGGRAPH pass

    archive / summary

  • Some Books

    - author suggested 3 books for computer graphics - covering raytracing, introduction to computer gra...

    archive / summary

  • Free Ray Tracing Gems II Chapter Covers Ray Tracing in Remedy’s Control

    - presents how all ray-tracing based effects were implemented in the game Control

    archive / summary

  • Visibility TAA and Upsampling with Subsample History

    - extension of the previously presented Decoupled Visibility Multisampling technique

    archive / summary

  • Swallowing the Elephant (Part 10): Rendering on the GPU—Finally

    - part of the series that discusses how GPU support for the Moana Island scene was added to pbrt

    archive / summary

  • GPGPU, ML Inference, and Vulkan Compute

    - the blog discusses Vulkan usage for GPGPU workloads, in particular for machine learning

    archive / summary

  • Real-Time Shading with Polyhedral Lights using Silhouette Detection

    - a Bachelor thesis that presents a method for GPU based silhouette generation from Polyhedral light...

    archive / summary

  • [video] The Making of “Alpha Point”—UE5 Technical Demo | GDC 2021

    - GDC talk presents a walkthrough of the technical creation aspects of the demo

    archive / summary

  • Color Matching Function Comparison

    - the post compares different Color Matching Function (CMF) for use with spectral rendering techniqu...

    archive / summary

  • 2D Lighting Techniques

    - the article presents an overview of numerous techniques that can be used to implement lighting for...

    archive / summary

  • Vulkan Hardware Database updates

    - the Vulkan hardware database has been updated - texture format view now has a breakdown of what ti...

    archive / summary

  • Software VRS with Visibility Buffer Rendering

    - the article discusses how Visibility Buffer can be combined with Variable Rate Shading (VRS) Techn...

    archive / summary

  • There is no S in SDF without the Distance Fields!

    - the article explains how to express SDFs in Unity and Unreal

    archive / summary

  • Real-time ray traced caustics

    - the preprint from Ray Tracing Gems 2 covers two techniques for caustics

    archive / summary

  • Processing aware image filtering: compensating for the upsampling

    - the article presents the idea of compensating for shortcomings of an upsample technique in the dow...

    archive / summary

  • Reducing Acceleration Structure Memory with NVIDIA RTXMU

    - the NVIDIA RTX Memory Utility is an open-source (MIT License) SDK designed for reducing the comple...

    archive / summary

  • [video] Arm Mali GPU Training Series Ep 1.2 : The rendering pipeline

    - the video discusses the rendering pipeline - presents the geometry and pixel processing pipeline

    archive / summary

  • [video] Arm Mali GPU Training Series Ep 1.3 : GPU architecture

    - explains how the rendering pipeline translates into GPU hardware

    archive / summary

  • [video] Arm Mali GPU Training Series Ep 1.4 : Hardware shader cores

    - the video discusses the hardware essentials - presents how CPUs are designed

    archive / summary

  • GPU architecture types explained

    - the article discusses tile-based and immediate-mode rendering GPUs in detail

    archive / summary

  • Using Debug Printf

    - whitepaper that discusses how to use printf in Vulkan shaders

    archive / summary

  • 3D SDF Primitives in WGSL

    - a collection of Signed-distance field primitives (Cylinder, cubes, ...) expressed in WebGPU Shadin...

    archive / summary

  • [video] Tech Focus: Global Illumination - What It Is, How Does It Work And Why Do We ...

    - the video provides an overview explanation of Global Illumination

    archive / summary

  • My toy renderer, part 4: Ray tracing

    - the article goes into detail on how to implement physically correct and affordable ray traced soft...

    archive / summary

  • Decoupled Visibility Multisampling

    - presents a method that decouples geometry samples from shading samples

    archive / summary

  • Slope Space in BRDF Theory

    - the article presents a refresher on the concept of slope

    archive / summary

  • Dynamic destruction in Radio Viscera

    - the article explains how the destruction system was implemented

    archive / summary

  • FBM detail in SDFs

    - the article presents a natural SDF based detail mapping / Fractal Noise displacement mapping

    archive / summary

  • Technically Art: Issue 106 (16.07.2021)

    - collection of tweets about technical art - covering particles, stylized shading, portfolios, and g...

    archive / summary

  • Signed Distance field (SDF)

    - a collection of resources, links, papers, discussions about SDFs

    archive / summary

  • My toy renderer, part 3: Rendering basics

    - the article explains how a visibility buffer approach is used

    archive / summary

  • [video] Arm Mali GPU Training Series Ep 1.1 : Introduction to mobile systems

    - the first part of the series discusses where mobile GPUs are used

    archive / summary

  • Weighted reservoir sampling: randomly sampling streams

    - pre-release chapter from ray tracing gems 2 - presents weighted reservoir sampling, a technique fo...

    archive / summary

  • AMD FidelityFX Super Resolution (FSR) source code is now available here on GPUOpen

    - the source code for the technique has been published on Github

    archive / summary

  • Visibility Buffer Rendering with Material Graphs

    - the article presents an overview of The Visibility Buffer approach

    archive / summary

  • HPG 2021 Keynote: Alex Evans (NVIDIA), Optimising for Artist Happiness

    - Alex covers many ideas and algorithms - classical tools require the artist to deal with technical ...

    archive / summary

  • Raytracing tidbits

    - collection of ray tracing experiments and presentation of results

    archive / summary

  • The reference path tracer

    - first free chapter from ray tracing gems 2 has been released

    archive / summary

  • Automated Testing of a Ray Tracer

    - author presents an introduction to automated visual testing

    archive / summary

  • Comparing images in frequency domain. “Spectral loss” – does it make sense?

    - the blog post discusses if it makes sense to compare images in the frequency domain

    archive / summary

  • HPG 2021 Papers Preview

    - preview video if a view of the papers presented at HPG 2021

    archive / summary

  • WebGPU for Metal Developers, Part Two

    - second part of the series explaining the WebGPU basics by presenting the equivalent concepts from ...

    archive / summary

  • Relighting and Material Editing with Implicit Representations

    - the article presents a brief overview of NeRF (neural radiance fields)

    archive / summary

  • NVIDIA Research: NeRF-Tex: Neural Reflectance Field Textures

    - the presents the use of neural fields to model materials such as fur, fabric, and grass

    archive / summary

  • What is Vulkan Compute?

    - author presents the subset of Vulkan API related to compute workloads

    archive / summary

  • An Initial Inspection of FidelityFX Super Resolution

    - blog post presents a comparison of AMDs FSR, CAS against other upscale techniques

    archive / summary

  • MMPX Style-Preserving Pixel Art Magnification

    - the paper presents a filter for magnifying pixel art (such as 8

    archive / summary

  • Basic Shader Math - Shader Graph Basics - Episode 4

    - the video tutorial explains how to use the add, subtract, multiply, and divide nodes in UE5 and Un...

    archive / summary

  • MatMorpher: A Morphing Operator for SVBRDFs

    - the paper presents a new operator for blending BRDF texture maps

    archive / summary

  • [video] EGSR 2021 Day 1

    - stream of the first day of Eurographics Symposium on Rendering 2021

    archive / summary

  • Moving Basis Decomposition for Precomputed Light Transport

    - paper presents the Moving Basis Decomposition framework

    archive / summary

  • My toy renderer, part 2: Scene management

    - the article discusses the scene structure of the authors' renderer

    archive / summary

  • ReSTIR GI: Path Resampling for Real-Time Path Tracing

    - paper presents a new path sampling algorithm for indirect lighting

    archive / summary

  • The Missing Guide to Modern Graphics APIs – 2. PSOs

    - the article presents an overview of why Pipeline State Object was introduced to allow predictable ...

    archive / summary

  • [video] Live Coding: Making the American flag with math!

    - the video tutorial shows a walkthrough to render the USA flag using shader toy

    archive / summary

  • An Unbiased Ray-Marching Transmittance Estimator

    - in-depth analysis of the sources of variance in state

    archive / summary

  • NVIDIA Research: An Analytic BRDF for Materials with Spherical Lambertian Scatterers

    - the paper presents a new BRDF for porous/dusty materials

    archive / summary

  • Implementing Gamut Mapping

    - the article discusses how to implement gamut clipping into a render pipeline

    archive / summary

  • i3D 2021 Keynote: Trace All The Rays!

    - describes the state of raytracing in games - presents a high

    archive / summary

  • Real-time Neural Radiance Caching for Path Tracing

    - the paper introduces a neural radiance caching method for path

    archive / summary

  • [video] Drawing Boxes and Rectangles in URP Shader Graph with 2D SDFs!

    - the video tutorial explains how to draw Squares, boxes, and rounded rectangles as SDFs

    archive / summary

  • [video] Advanced Graphics Tutorial: Wakes, Explosions and Lighting: Interactive Water...

    - discusses how to generate ocean displacement, buoyancy,

    archive / summary

  • Deferred shading on mobile: An API overview

    - the article discusses local tile memory and mobile GPUs

    archive / summary

  • VK_EXT_multi_draw released for Vulkan

    - a new Vulkan extension that adds vkCmdDrawMultiEXT vkCmdDrawMultiIndexedEXT

    archive / summary

  • BRDF Importance Sampling for Linear Lights

    - the paper presents a method for importance sampling linear lights such as fluorescent tubes

    archive / summary

  • How to get the most out of Smart Access Memory (SAM)

    - article describes how AMD Smart Access Memory allows applications full access to GPU local memory

    archive / summary

  • Supporting Native HDR Monitors

    - the article provides an introductory overview of HDR concepts

    archive / summary

  • A Polarizing Filter Function for Real-Time Rendering

    - the paper presents a polarizing filter function for specularly reflected light

    archive / summary

  • What’s new in Metal at WWDC21

    - the article shows an overview of new features and changes presented at WWDC21

    archive / summary

  • Using asynchronous compute on Arm Mali GPUs: A practical sample

    - the post shows how the Mali hardware operates and exposes multiple graphics queues

    archive / summary

  • Perceptual Lightness for Game Graphics

    - the blog presents a comparison between color's luminance and lightness

    archive / summary

  • [video] All Blend Modes! Looking at the Shader Graph Blend Mode Filters

    - the video presents an overview of all blend modes supported from the shader graph node

    archive / summary

  • Stable Geometric Specular Antialiasing with Projected-Space NDF Filtering

    - the paper introduces an improvement for specular antialiasing

    archive / summary

  • [video] Lumen | Inside Unreal

    - Lumen presentations starts at [10:00 minutes](https://youtu.be/QdV_e

    archive / summary

  • Future geometry pipeline

    - article discusses alternative approaches for geometry pipeline design

    archive / summary

  • VFX Notes: Ep 1 – Actor replacement, UE5 and what exactly is gamma?

    - new podcast about VFX in film, TV, and games - discussing Resident Evil Village and UE5

    archive / summary

  • [video] Drawing a Line Segment in the URP Shader Graph with 2D SDFs!

    - the video tutorial explains how to draw a line segment in pixel shaders

    archive / summary

  • Brief Analysis of Nanite GPU Culling

    - the article presents a look at the implementation details of nanite GPU culling

    archive / summary

  • BRDF Importance Sampling for Polygonal Lights

    - the paper presents how to sample polygonal area lights proportional to linearly transformed cosine...

    archive / summary

  • [video] Explore bindless rendering in Metal

    - the video explains the motivation for the bindless model and explains the concept

    archive / summary

  • [video] Nanite | Inside Unreal

    - interview discussing the demo project, lessons learned, discussions about future directions, and m...

    archive / summary

  • WebGPU for Metal Developers, Part One

    - the article presents the fundamentals of the WebGPU API required to draw a colored triangle

    archive / summary

  • [video] Compute shader 101

    - the talk provides an overview of compute shaders

    archive / summary

  • Bringing Vulkan Raytracing to older AMD hardware (Vega and below)

    - the article discusses the implementation of ray-tracing support into the open

    archive / summary

  • Fewer Samples per Pixel per Frame

    - the blog post presents a history of sampling techniques, how it was used and how it changed over t...

    archive / summary

  • How to use debugPrintf in Vulkan

    - the article presents how printf is supported in Vulkan Shaders

    archive / summary

  • Compute shader glossary

    - the article provides an overview of compute shader terminology and how they differ between APIs

    archive / summary

  • Neural material (de)compression – data-driven nonlinear dimensionality reduction

    - the article discusses continues exploration in compressing a set of textures

    archive / summary

  • [video] Live Coding:Bending Light

    - the video tutorial shows how to implement refraction into a shadertoy

    archive / summary

  • Data-Driven Analysis and Design of Vulkan Ray-Tracing Applications using Automatic In...

    - the master thesis presents a SPIR-V based instrumentation framework

    archive / summary

  • Brief Analysis of Nanite

    - the article provides an analysis of the Nanite cluster algorithm

    archive / summary

  • A Macro View of Nanite

    - the article presents an overview of the Nanite Rendering pipeline using RenderDoc

    archive / summary

  • Unbiased VNDF Sampling for Backfacing Shading Normals

    - the paper presents an improved normalization for the Smith–GGX BRDF visible normal distribution fu...

    archive / summary

  • [video] Basics of Mipmaps in Unity Part 2! Shaders, Bias, and Texture2DLOD!

    - the video tutorial shows how to implement the MIP selection algorithm using shader code

    archive / summary

  • Reliable Feature-Line Driven Quad-Remeshing

    - the paper presents a new algorithm for the semi-regular quadrangulation of arbitrary input surface...

    archive / summary

  • Infinite Grassland: Ray Traced Rare Semi-Uniform Entity Manifolds for Rendering Count...

    - the article presents a proof of concept stage technique to render grass using a screen

    archive / summary

  • [video] Introduction to Ray Tracing - Class 1

    - introductory Siggraph class about ray tracing - including an opening interview with Peter Shirley...

    archive / summary

  • Triangle Grids

    - the article presents triangle grids - discussing what a triangle grid is, why to use them an...

    archive / summary

  • Writing Shader Code in Universal RP (v2)

    - the article provides an overview of authoring shaders in HLSL

    archive / summary

  • Tech Art Chronicles: What Are SDFs Anwyay?

    - the article explains what Signed Distance Fields (SDFs) are

    archive / summary

  • The technical art of sea of thieves

    - the video recording from the Siggraph 2018 has been released

    archive / summary

  • A VR Frame’s Life

    - the blog post presents the setup of a frame for VR rendering (Oculus Quest)

    archive / summary

  • Distributing Monte Carlo errors as Blue Noise in Screen Space, Part 2 - Retargeting P...

    - the article presents how to distribute Monte Carlo errors as blue noise in screen space

    archive / summary

  • Graphics Pipelines for Young Bloods

    - the post presents an overview of different rendering pipeline architectures (Forward, deferred, vi...

    archive / summary

  • Hash Functions for GPU Rendering

    - suggests using a PCG hash function as default for GPU based hash/random functionality

    archive / summary

  • [video] Basics of Partial Derivative Shader Funcs in Unity! DDX, DDY, FWidth

    - the video explains how partial derivatives are calculated in pixel shaders

    archive / summary

  • Inherited Viewport Scissor Sample

    - the article presents an overview of Vulkan secondary command buffers

    archive / summary

  • [video] Beautiful Glitter Simulation…Faster Than Real Time

    - Two Minute Paper presenting an overview of Procedural Physically

    archive / summary

  • Studying Gamut Clipping

    - the author presents his learning about Gamut Clipping

    archive / summary

  • Fast Divergence-Free Noise Generation in Shaders

    - the post presents a divergence-free noise generation technique (such as curl noise)

    archive / summary

  • Tips: Acceleration Structure Compaction

    - the article shows how to compact DXR acceleration structures

    archive / summary

  • In-depth technical dive into metro exodus pc enhanced edition

    - the article provides an overview of raytracing in rendering pipelines, how it has developed over t...

    archive / summary

  • Experiments in hybrid raytraced shadows

    - the blog post discusses how to combine raytraced and shadows from shadow maps

    archive / summary

  • Shader translation benchmark on Dota2/Metal

    - the blog post presents a performance comparison of Naga (rust based shader translation libra...

    archive / summary

  • Radeon Rays v4.1 is now available – with open source!

    - Radeon Rays v4.1 (ray intersection library for D3D12 and Vulkan) is now open source

    archive / summary

  • The stack monoid revisited

    - the article discusses a technique for parallel processing of stack

    archive / summary

  • [video] Basics of Mipmaps in Unity Part 1! Import Settings and Custom Mipmaps!

    - the video presents an explanation on mipmaps, presenting what effects it has on the visual appeara...

    archive / summary

  • [video] Raymarched Reflections

    - part 3 of the newton cradle tutorial series - shows how to implement reflections using raymarching...

    archive / summary

  • [video] SIGGRAPH 2021: Technical Papers Preview Trailer

    - 4-minute trailer presenting a brief look at many papers that will be presented as part of SIGGRAPH...

    archive / summary

  • Temporally Adaptive Shading Reuse for Real-Time Rendering and Virtual Reality

    - the paper investigates how shading reuse is perceived when visibility and shading rate is decouple...

    archive / summary

  • Scaling Probe-Based Real-Time Dynamic Global Illumination for Production

    - the paper presents extensions and improvements to the probe

    archive / summary

  • [video] Basics of White Noise! Random Numbers for Shaders and ProcGen in Unity

    - the video explains how to generate 2D Perlin noise and how to use it in Unity

    archive / summary

  • [video] It Just Works: Ray-Traced Reflections in Battlefield V

    - presents how D3D12 Raytracing support was implemented in Battlefield V

    archive / summary

  • Graphics API abstraction

    - the article presents a walkthrough of the API abstractions on top of D3D11, D3D12, and Vulkan used...

    archive / summary

  • A Debugging Story

    - an interactive article about debugging a C++ crash

    archive / summary

  • Generating Primitive Shapes in C++

    - the article shows how to generate planes, cones, cylinders, and a torus

    archive / summary

  • Direct Delta Mush Skinning Compression with Continuous Examples

    - the paper presents a novel model that splits a Direct Delta Mush into two layers

    archive / summary

  • Antithetic Sampling for Monte Carlo Differentiable Rendering

    - the paper presents antithetic variance reduction technique used to estimate the interior integrals...

    archive / summary

  • [video] Burning Down Virtual Trees... In Real Time!

    - Two Minute Paper provides an overview of the Interactive Wood Combustion for Botanical Tree Models...

    archive / summary

  • [video] Newton's Cradle: Setting up Materials

    - part 2 of the video tutorial that adds material support to the SDF based Newton Cradle implemented...

    archive / summary

  • The case of the curiously slow shader

    - the article presents a walkthrough how the author analyzed the slow shader performance on the GPU ...

    archive / summary

  • Projective Geometric Algebra - Wiki

    - WIP wiki about Projective Geometric Algebra, specifically the four

    archive / summary

  • How to Obtain Stable GPU Measurements on Quest

    - the article presents how to setup UE and Unity to disable dynamic motions, user specific parts fro...

    archive / summary

  • Technically Art: Issue 96 (30.04.2021)

    - collection of tech art tweets - covering UE4 weather systems, GPU instancing with Unity shader gra...

    archive / summary

  • Creating a Card Shader with 3D content

    - the article presents a walkthrough how to create a card shader

    archive / summary

  • [video] NEW – Video: Radeon GPU Profiler v1.10

    - the video provides a summary of the new features in the radeon GPU profiler

    archive / summary

  • Graphics technique names

    - twitter thread author provides summaries of 3 common technques

    archive / summary

  • Hashing Space Hashing in an Arbitrary Grid

    - the tutorial explains how to generate consistent hashes based on integer positions

    archive / summary

  • Announcing HLSL Shader Model 6.6

    - 64-bit integer atomics are now supported - some new capability bits got introduced as not all view...

    archive / summary

  • Supermassive black hole tutorial

    - the tutorial provides a walkthrough of a raymarching supermassive black hole shader

    archive / summary

  • [video] RTXDI: Details on Achieving Real Time Performance

    - Talk discusses how the performance of the ray-traced direct illumination was greatly improved

    archive / summary

  • [video] Denoising Raytraced Soft Shadows on Xbox Series X|S and Windows with Fidelity...

    - explains shadow denoising process - broken down into 5 blocks that are explained individually

    archive / summary

  • [video] Tier 2 Variable Rate Shading in Gears

    - overview of Variable Rate Shading (VRS), what is supported with Tier 1 and 2

    archive / summary

  • Inverse Z-Buffer

    - visual representation that shows why inverted depth buffer range with floating

    archive / summary

  • i3D 2021 - Posters

    - list of posters presented at I3D - covering Linearly Transformed Spherical Harmonics, Style

    archive / summary

  • ShaderQuest Part 5: Shader code syntax & Colors

    - part 5 of beginner-focused shader tutorial series

    archive / summary

  • The Graphics Codex

    - the Graphics Codex online textbox is now a free - covering an extensive range of topics, model of ...

    archive / summary

  • Rendering Decals and Many Lights with Ray Tracing Acceleration Structures

    - the paper presents a method that uses the AABS from hardware raytracing shaders to apply decals an...

    archive / summary

  • A Survey on Bounding Volume Hierarchies for Ray Tracing

    - the paper presents comprehensive coverage of BVH hierarchies, especially focused on ray tracing

    archive / summary

  • [video] Newton's Cradle: Modeling & Animation

    - the video tutorial presents how to render and animate a newton's cradle with SDFs

    archive / summary

  • Distinctive Derivative Differences

    - the article presents the difference between ddx/y ddx/y_fine

    archive / summary

  • An Introduction to Vulkan Video

    - Vulkan API now exposes video support - extended the concept of the queue to support decode/encode ...

    archive / summary

  • Pixel Art Filtering

    - the article presents an overview of why filtering for pixel art at non

    archive / summary

  • Appearance-Driven Automatic 3D Model Simplification

    - the paper presents a machine learning-based approach that uses differential rendering to approxima...

    archive / summary

  • How to read shader assembly

    - the article provides an overview of shader assembly reading

    archive / summary

  • Optimizing Triangles for a Full-screen Pass

    - the article presents two common approaches to fullscreen passes

    archive / summary

  • Bindless Descriptors

    - the blog post provides a walkthrough of the bindless implementation in Wicked Engine for both Vulk...

    archive / summary

  • Skyboxes in UE4

    - the article shows how to integrate skyboxes into UE4

    archive / summary

  • Rendering large 3D tilemaps with a single draw call at 3000 FPS

    - the articles describes the evolution of a multiple layered tilemap renderer

    archive / summary

  • [video] The Basics of SmoothStep, a Useful Shader Function in Unity URP

    - the video explains the smoothstep curve visually

    archive / summary

  • how do you calculate correct normals when doing vertex displacement shaders?

    - the Twitter thread provides a detailed explanation on how to correctly calculate normal vectors fr...

    archive / summary

  • Game Stack Live

    - registration for Microsoft's online conference on April 20

    archive / summary

  • [video] rendering numbers single quad

    - the video provides an in-depth walkthrough of a debugging vertex ID shader

    archive / summary

  • NeuMIP: Multi-Resolution Neural Materials

    - the paper presents a neural-network-based approach that is aimed at encoding detailed patterns int...

    archive / summary

  • Countering Racial Bias in Computer Graphics Research

    - the paper presents racial bias that can be found in the technical language and numerical measures ...

    archive / summary

  • [video] Create a Sand Dune Shader Graph in Unity URP! No Textures Needed!

    - the Tutorial presents how to generate sand dunes in pixel shaders using Unity

    archive / summary

  • Radeon™ GPU Profiler v1.10 introduces GPU cache counters, Vulkan® ray tracing, and mo...

    - updated version supports reporting of memory, instruction, and scalar cache usage on RDNA hardware...

    archive / summary

  • Managing Shader Code Complexity in NVIDIA Omniverse

    - the article provides an overview of the Slang Shading language and its use inside of NVIDIA Omnive...

    archive / summary

  • Mean Squared Error is Variance

    - the article shows how to calculate the variance of a stream of values

    archive / summary

  • Baking Neural Radiance Fields for Real-Time View Synthesis

    - the paper presents a novel sparse Neural Radiance Grid representation

    archive / summary

  • Generating Meshes of a Sphere

    - the article presents 4 different ways to generate a sphere mesh

    archive / summary

  • Ray Tracing Lossy Compressed Grid Primitives

    - the paper presents a method that allows a 5−7× reduction in memory footprint compared to indexed t...

    archive / summary

  • Understanding Vulkan Synchronization

    - the blog posts provides an easy to understand summary of the Vulkan Synchronization

    archive / summary

  • Importance sampling visible wavelength

    - the article presents experiments with spectral rendering to find an importance sampled wavel...

    archive / summary

  • Interactive Path Tracing and Reconstruction of Sparse Volumes

    - the paper presents a technique to allow path tracing through sparse volumes

    archive / summary

  • [video] Compositional Neural Scene Representations for Shading Inference - SIGGRAPH 2...

    - video recording of the SIGGRAPH 2020 was released

    archive / summary

  • Meshlete

    - open-source release of a tool to generate meshlets (for use with mesh shaders, GPU based cul...

    archive / summary

  • NVIDIA Vulkan Ray Tracing Tutorials

    - Vulkan Ray tracing tutorials have been updated

    archive / summary

  • Guided Visibility Sampling++

    - the paper presents a technique to discover a potentially visible set (PVS) of triangles visible fr...

    archive / summary

  • [video] Sparkling Grass Lawn in Shader Graph! Unity URP Procedural Material

    - the video tutorial explains how to generate a procedural stylized lawn shader

    archive / summary

  • Twitter Thread - Valheim rendering performance

    - the Twitter thread presents a breakdown of the Valheim rendering pipeline (implemented using...

    archive / summary

  • Technically Art: Issue 91 (26.03.2021)

    - collection of tech art tweets - covering art style demonstration, material creation, destruc...

    archive / summary

  • Wall Cutout in Shader Graph and URP

    - the tutorial explains an approach how to implement cutting walls into 3D walls

    archive / summary

  • Real-Time Geometric Glint Anti-Aliasing with Normal Map Filtering

    - the paper presents a Geometric glint anti-aliasing method that is compatible with LEAN mapping

    archive / summary

  • Screen-Space Reflections Explained

    - the article provides an overview of the first steps required to implement screen space reflection ...

    archive / summary

  • How to reconstruct an image if you see only a few pixels

    - the article provides an introduction to Compressive Sensing

    archive / summary

  • Auto HDR Preview for PC Available Today

    - the article describes provides a brief overview of AutoHDR

    archive / summary

  • [video] Adding Shadow Casting to Grass Baked with Compute Shaders

    - the video tutorial shows how to change grass to cast shadows using Unity

    archive / summary

  • Distributing Monte Carlo errors as Blue Noise in Screen Space, Part 1 - Theory and So...

    - the blog post describes how blue noise can help to improve converge of ray tracing results

    archive / summary

  • ShaderQuest Part 4: Shader Environment Architecture

    - the tutorial aimed at Unity beginners explained how shaders are set up and structured

    archive / summary

  • Which color scale to use when visualizing data

    - the article series provides information about the role of color in data visualization

    archive / summary

  • i3D 2021 - Papers Program

    - list of all papers that will be presented as part of I3D 2021 in April

    archive / summary

  • Soft Foliage Shader Breakdown

    - the article presents how soft shading for foliage was implemented

    archive / summary

  • Stochastic-Depth Ambient Occlusion

    - the paper presents a novel approach to screen space ambient occlusion that accounts for occluded g...

    archive / summary

  • [video] Shading the World of Anthem

    - the video for the GDC 2019 talk has been released

    archive / summary

  • Fitting cubic Bézier curves

    - the blog posts discusses an approach for efficiently fitting bezier curves to an existing techniqu...

    archive / summary

  • [video] Unity Basics: Triangle Winding, Culling Modes & Double Sided Materials

    - the Unity video tutorial explains triangle winding order, how it connects to culling

    archive / summary

  • The Rendering of Jurassic World: Evolution

    - the article presents a frame breakdown of Jurassic World, a forward D3D11 based tiled forward ren...

    archive / summary

  • Visual debugging and profiling

    - the article presents an overview of the new debugging features in SHADERed

    archive / summary

  • OpenGL on DirectX: Conformance & upstreaming of the D3D12 driver

    - the article provides an overview of the state of OpenGL on D3D12; it's now used to run OpenGL appl...

    archive / summary

  • Making a Shading Language for my Offline Renderer

    - the blog post presents an overview of the custom shading language design for an offline renderer

    archive / summary

  • shadertoy - Advanced tricks

    - the blog post shows a number of tricks for shadertoy development

    archive / summary

  • 3D Math Primer for Graphics and Game Development - Free Online

    - introductory math book released for free in updated form from the original release

    archive / summary

  • Crash Course in BRDF Implementation

    - the extensive article provides an overview explaining BRDFs

    archive / summary

  • NAUGHTY DOG AT SIGGRAPH 2020

    - videos and slides from SIGGRAPH 2020 presentations by Naughty Dog

    archive / summary

  • Vulkan SDK Offers Developers a Smooth Transition Path to Synchronization2

    - the blog post presents an overview of improvements of Synchronization2

    archive / summary

  • New game changing Vulkan extensions for mobile: Timeline Semaphores

    - the article presents an overview of Vulkan timeline semaphores

    archive / summary

  • Ray Traversal of OpenVDB Frustum Grids

    - the paper presents an incremental approach for the traversal OpenVDB frustum grids

    archive / summary

  • [video] Differentiable Material Synthesis Is Amazing!

    - the video provides a high-level overview of differential rendering papers

    archive / summary

  • [video] Nioh 2 DLSS Analysis: AI Upscaling's Toughest Test Yet?

    - video comparison of DLSS 2.0 against a native 4k rendering

    archive / summary

  • Computing gradients on grids of pixels and voxels – forward, central, and… diagonal d...

    - the post presents an overview of what gradients are, what they are used for

    archive / summary

  • FXAA Fast approXimate Anti-Aliasing

    - the tutorial shows how to implement FXAA into a Unity custom scriptable render pipeline

    archive / summary

  • [video] The CRYENGINE Rendering Pipeline

    - the Video provides a 90-minute in-depth look at the rendering architecture used in CryEngine

    archive / summary

  • Tech Breakdown: Hiding Water in Boat Interiors

    - the article presents two methods to hide water from the inside of boats

    archive / summary

  • Experimenting with Shader Graph: Doing more with less

    - the article presents an alternative way to pack PBR textures into a single 4 channel texture

    archive / summary

  • New game changing Vulkan extensions for mobile: Descriptor Indexing

    - the article shows how the Vulkan extensions enable bindless indexing on Android

    archive / summary

  • Moving The Machinery to Bindless

    - the article presents how the bindless binding model has been integrated into The Machinery

    archive / summary

  • [video] Shaders For Game Devs

    - 10h Video online class about shader development - whole series covers an entire spectrum from basi...

    archive / summary

  • New game changing Vulkan extensions for mobile: Buffer Device Address

    - the article presents the buffer_device_address (BDA) extension for Vulkan

    archive / summary

  • Per-Texel Deferred Lighting

    - provides an idea on how to maintain a pixel art style with dynamic lighting in a 3D environment

    archive / summary

  • [video] Blade Grass! Generate and Bake a Field Mesh Using a Compute Shader

    - the video tutorial shows how to generate a grass mesh using a compute shader

    archive / summary

  • [video] GODOT 2D Dissolve Effect : Visual Shader

    - the video tutorial shows how to implement a dissolve shader for 2D sprites using the Visual Shader...

    archive / summary

  • Bilinear down/upsampling, aligning pixel grids, and that infamous GPU half pixel offs...

    - the article shows a few ways of doing bilinear upsampling and downsampling

    archive / summary

  • second tech art thread on the stylized rendering of “Dungeons of #Hinterberg”

    - the Twitter thread presents details about how the outline rendering has been implemented

    archive / summary

  • Temporally Reliable Motion Vectors for Real-time Ray Tracing

    - the paper presents a new technique to generate more accurate motion vectors for shadows, glossy re...

    archive / summary

  • More (Robust) Frustum Culling

    - the article presents Separating Axis Theorem for OBB (oriented bounding box) against the view Frus...

    archive / summary

  • New Vulkan extensions for mobile: Maintenance Extensions

    - the blog post presents an overview of Vulkan extensions added as part of Android R

    archive / summary

  • OpenCL: Hide data transfer behind GPU Kernels runtime

    - the article presents how to use 3 parallel work queues in OpenCL to read, write and process a GPU ...

    archive / summary

  • Minnaert For People Who Don't Know How To Minnaert

    - article presents how to integrate a custom shading model into the Unity rendering pipeline

    archive / summary

  • Vulkan Memory Types on PC and How to Use Them

    - the blog post discusses the different memory types and how applications should use them

    archive / summary

  • VK_KHR_synchronization2 extension support in our latest developer driver

    - the AMD driver now supports the new Vulkan synchronization extension

    archive / summary

  • Real-Time Physically Based Rendering and BRDFs

    - the blog posts provides a walkthrough of the Cook

    archive / summary

  • Using Radeon™ GPU Analyzer v2.4.1 with DirectX® Raytracing

    - the Radeon GPU Analyzer now supports DXR shader disassembly, live VGPR analysis as well as control

    archive / summary

  • Visual Exploration Of Light Transport In Path Tracing

    - master thesis that covers a tool for interactive exploration of all contributing paths from a path...

    archive / summary

  • RDO texture encoding notes

    - the author provides a list of lessons learned and advice that should be considered when working on...

    archive / summary

  • Unity SDF Generator – Part 2

    - second particle in articles series about SDF (signed distance field) generation with Unity

    archive / summary

  • [video] Generate a Mesh Asset Using Compute Shaders in the Unity Editor!

    - the Unity tutorial explains how to generate meshes from a compute shader

    archive / summary

  • Linear Interpolation

    - the article provides a geometric interpretation of linear interpolation, range mapping, and how it...

    archive / summary

  • Implementing Bitonic Merge Sort in Vulkan Compute

    - Shows how to sort data on the GPU using Bitonic Merge Sort networks using GLSL/Vulkan compute

    archive / summary

  • Ice Refraction in Shader Graph and URP

    - the article presents how to implement ice shading

    archive / summary

  • Coding a fireworks effect

    - the video shows how to implement fireworks using fullscreen shader using Shadertoy

    archive / summary

  • Fast Radius Search Exploiting Ray Tracing Frameworks

    - the paper presents a method that maps spacial search in a fixed radius into a ray tracing paradigm...

    archive / summary

  • Crystal Shader Breakdown

    - the article presents a walkthrough of a stylized crystal shader implemented using Unity Shader Gra...

    archive / summary

  • A Voxel Renderer for Learning C/C++

    - the article provides an overview of a GPU voxel renderer using raytracing

    archive / summary

  • Exploring DLSS 2.0 in Unreal Engine 4.26

    - the article presents a comparison of DLSS 2.0 and the default TAA implementation of UE 4.26

    archive / summary

  • Stylized rendering for Dungeons of Hinterberg

    - the Twitter thread presents an overview of the stylized g

    archive / summary

  • Godot 4.0 optimization progress report

    - the post presents an overview of optimizations done for Godot 4.0

    archive / summary

  • A simple path tracer on the GPU

    - the article presents an overview of a simple GPU based path tracer written in Zig

    archive / summary

  • Improved Shader and Texture Level of Detail Using Ray Cones

    - the paper introduces a new method for Mip level selection, including anisotropic filtering in a ra...

    archive / summary

  • sRGB gamut clipping

    - the article presents an introduction to Gamut Clipping (mapping colors outside of the target colo...

    archive / summary

  • Analysis-Driven Optimization: Preparing for Analysis with NVIDIA Nsight Compute, Part...

    - first part of a three-part series that focuses on optimizing a CUDA workload

    archive / summary

  • Managing Memory for Acceleration Structures in DirectX Raytracing

    - the article presents how to reduce memory usage of bottom level acceleration structure (BLAS)

    archive / summary

  • Rim Light Shader Graph in Unity URP! Moody and Atmospheric Lighting!

    - the Unity video tutorial shows how to implement rim lighting (an effect that only applies to the e...

    archive / summary

  • Introduction to Computer Graphics

    - Video lectures for the Introduction to Computer Graphics Course at the University of Utah

    archive / summary

  • Neural Geometric Level of Detail Real-time Rendering with Implicit 3D Surfaces

    - the paper presents a deep neural network to generate signed distance functions using a fixed netwo...

    archive / summary

  • Wrapping around the uv map in 80 frames

    - the article presents an overview of UV mapping - showing different mapping techniques, problems, a...

    archive / summary

  • NVIDIA Announces Nsight Graphics 2021.1

    - updated tools adds support for inline raytracing and capturing applications that are not frame

    archive / summary

  • A Failed Adventure in Avoiding Temporal Anti-Aliasing

    - the author provides an overview of anti-aliasing solutions

    archive / summary

  • Dissecting the Apple M1 GPU, part II

    - the article discusses the progress on an open-source graphics stack for Apple M1

    archive / summary

  • [video] Beyond Emitters: Shader and Surface Driven GPU Particle FX Techniques

    - the video from GDC 2018 was released - the talk presents different iterations of a system to allow...

    archive / summary

  • All the Pipelines - Journey through the GPU

    - the presentation provides an overview of the rendering pipeline from mesh creation to screen outpu...

    archive / summary

  • [video] Neon Noir – Raytracing on Mobile

    - talk provides an overview of the Crytek rendering pipeline

    archive / summary

  • OpenGL to Vulkan

    - the article explains the process of porting the NAP creative coding Framework to Vulkan

    archive / summary

  • Organic Variety Making the Artificial Look Natural

    - the tutorial shows how to create procedural fractals

    archive / summary

  • Rendering dunes terrain in WebGL

    - the article presents how a sand dune wallpaper was implemented using WebGL

    archive / summary

  • [video] How to calculate Normal Vectors in Shader Graph

    - shows why normals need to be recalculated if a mesh shape is changed in a vertex shader

    archive / summary

  • RenderDoc ‘Ref All Resources’ + Vulkan + Memory Aliasing = Beware

    - the post shows how aliased resources can cause problems when doing render doc captures

    archive / summary

  • John Carmack - Essays

    - collection of articles/ blog post written by John Carmack on a variety of topics

    archive / summary

  • [video] Unity: Frosty Icicle Shader with Amplify [URP]

    - the video tutorial shows how to implement a shader for freezing objects

    archive / summary

  • How stunning visual effects bring Ghost of Tsushima to life

    - the blog post shows the interactive particle implementation used in Ghost of Tsushima

    archive / summary

  • Step by step recipe for Temporal Anti-Aliasing

    - the tutorial shows how to implement Temporal Anti

    archive / summary

  • Loading OpenGL With Win32

    - the Rust tutorial provides an extensive walkthrough of the steps required to use OpenGL usin...

    archive / summary

  • Moving Gears to Tier 2 Variable Rate Shading

    - the article presents how VRS tier 2 shading was integrated into Gears

    archive / summary

  • Gamedev Pronunciation Guide

    - the article contains a list of common graphics programming terms and how to pronounce them

    archive / summary

  • Transition guide from VK_NV_raytracing to (final) VK_KHR_raytracing!

    - the article provides a guide for porting from the original VK_NV_raytracing extension to off...

    archive / summary

  • Summer Fun with Creation Graphs

    - the article presents an overview of Creation Graphs and what it enables the user to create in The ...

    archive / summary

  • [video] Stylized grass Tutorial || Houdini and Unreal Engine

    - the video tutorial explains how to create stylized grass in the Unreal engine

    archive / summary

  • Rendering a Sphere on a Quad

    - the article explains in detail how to render a raytraced sphere that interacts with other parts of...

    archive / summary

  • Intro to Shaders

    - beginner-focused tutorial that explains how 3D data is structured in computer graphics

    archive / summary

  • [video] Christmas special, making it snow.

    - the video tutorial explains how to create interactive snow on terrain and objects using Godo...

    archive / summary

  • A Diligent Approach to Ray Tracing

    - the article presents a walkthrough of a RayTracing abstraction layer that was implemented fo...

    archive / summary

  • Radeon™ GPU Profiler 1.9 introduces support for Radeon™ RX 6000 Series

    - the updated tool allows an in-depth view into the raytracing details on AMD hardware

    archive / summary

  • [video] CUDA Memory Model

    - the video explains the CUDA memory model - covering the rules of how memory operations on sh...

    archive / summary

  • ShaderQuest Part 0: Series Introduction

    - Overview for the start of a new shader tutorial series for beginners

    archive / summary

  • Ditherpunk — The article I wish I had about monochrome image dithering

    - the article focuses on providing a walkthrough of dithering techniques

    archive / summary

  • CVTT Texture Compressor Technical Breakdown

    - the article provides an overview of the CVTT compression techniques used (DirecXTex fork aims to b...

    archive / summary

  • [video] How to texture a procedural object

    - the video tutorial explains the fundamentals of texture mapping in ShaderToy

    archive / summary

  • [video] Getting Started with Compute Shaders in Unity

    - this Unity tutorial aimed at beginners presents a starter guide for compute shaders

    archive / summary

  • Unorganized Unit Vectors Sets Quantization

    - the paper presents a new technique of on-the-fly quantization for unorganized sets of unit vectors...

    archive / summary

  • Render Scale - Scaling Up and Down

    - tutorial series about creating a custom scriptable render pipeline in Unity

    archive / summary

  • Basic Tessellation setup in URP

    - the Unity tutorial provides a starting point for how to use tessellation shaders

    archive / summary

  • Graphics Studies Compilation

    - collection of articles that provide a breakdown of various games

    archive / summary

  • Rendering Astronomic Stars

    - the article shows the steps required to use star databases to enable the correct rendering of star...

    archive / summary

  • Best shots from 2020

    - Collection of impressive screenshots from Games (mostly PC, a few from PS4 Pro)

    archive / summary

  • Practical Hash-based Owen Scrambling

    - the paper presents an implementation of a hash-based Owen scrambling for Sobol sampling with neste...

    archive / summary

  • Why are video games graphics (still) a challenge? Productionizing rendering algorithm...

    - the article provides an overview of considerations when developing a graphics technique for video ...

    archive / summary

  • Frustum Culling

    - the article presents how to implement frustum culling and the effects on CPU and GPU performance

    archive / summary

  • Why Raytracing won't simplify AAA real-time rendering.

    - the blog post provides a look back at the evolution of graphics technology and how they affect gam...

    archive / summary

  • RDNA 2 hardware raytracing

    - the blog posts takes a look at the RNDA ISA and presents how ray tracing has been implemented in A...

    archive / summary

  • A perceptual color space for image processing

    - the article presents a new perceptual color space

    archive / summary

  • States and Barriers of Aliasing Render Targets

    - the article presents an overview of D3D12 aliasing barriers, Discard/Clear semantics, and how they...

    archive / summary

  • Hallucinations re: the rendering of Cyberpunk 2077

    - the article presents a breakdown of a Cyberpunk 2077 frame

    archive / summary

  • vk_mini_path_tracer

    - Vulkan tutorial that shows how to implement a Path Tracer in 300 lines of C++ using Vulkan compute...

    archive / summary

  • SuperRT

    - the project that presents the implementation of a custom external raytracing card for use with the...

    archive / summary

  • Grass Geometry Shader with Interactivity (Part 1, the shader)

    - the Unity tutorial explains how interactivity between player and grass can be implemented for geom...

    archive / summary

  • How To Create A Coiled Cable Shader In UE4

    - the article explains how to generate cables from cylinders

    archive / summary

  • to z-prepass or not to z-prepass

    - the article presents an overview of what a Z-pre-pass is

    archive / summary

  • [video] Cyberpunk 2077 PC: What Does Ray Tracing Deliver... And Is It Worth It?

    - in-depth Digital Foundry comparison between Raytracing and classical rendering features on PC

    archive / summary

  • Cameras and Lenses

    - the article gives an understanding of how different types of camera and lenses work

    archive / summary

  • [video] Glyphs, shapes, fonts, signed distance fields.

    - the video tutorial provides an overview of signed distance fields

    archive / summary

  • [video] Moving Mobile Graphics - SIGGRAPH 2020 Course

    - video recording from all talks in the Siggraph 2020 course in a single video

    archive / summary

  • Physically Based Rendering - Phong BRDF

    - introductory slides for physically based rendering course

    archive / summary

  • [video] Grass Fields in Unity URP! Procedurally Generate Blades with Compute Shaders ...

    - the video tutorial shows how to generate grass blades that swing in the wind

    archive / summary

  • Shockwave Shader Graph

    - the video tutorial explains how to implement a ripple effect

    archive / summary

  • Debugging refraction in a ray tracer

    - short blog post that provides advice on how to debug refraction in a raytracer

    archive / summary

  • Texture Compression in 2020

    - the article presents an overview of different compression formats and libraries

    archive / summary

  • Generating Ray-Traced Caustic Effects in Unreal Engine 4, Part 1

    - the article explains the implementation of Caustics using a photon mapping technique that takes ad...

    archive / summary

  • Using Mesh Shaders for Professional Graphics

    - the article shows examples of how to use mesh shaders (code examples in GLSL)

    archive / summary

  • AMD RDNA™ 2 Instruction Set Architecture

    - the RDNA 2 Instruction Set has been released - shows that RDNA 2 supports dedicated instructions f...

    archive / summary

  • Radeon™ Memory Visualizer is now Open Source

    - AMD released the source code for the Memory Visualizer

    archive / summary

  • Softening polygon intersections in Blightbound

    - the article shows how fading our transparent objects when getting close to an intersection helps t...

    archive / summary

  • Accelerating Unstructured Mesh Point Location with RT Cores

    - the paper presents the results of research into using the RTX raytracing hardware for unstructured...

    archive / summary

  • [video] SIGGRAPH 2020 — High Quality, High Performance Rendering in Filament

    - video for the talk has been released, was covered in the week [147](https://www.jendrikillner.com/...

    archive / summary

  • [video] SIGGRAPH 2020 - Large Voxel Landscapes On Mobile

    - the talk explains the Voxel-based terrain system used in Roblox

    archive / summary

  • Black skin in your stylized dimly-lit video game

    - The article presents how important reflectivity of Black skin is for believable results

    archive / summary

  • Open Problems in Real-Time Rendering

    - the talk from Digital Dragons looks at open questions in rendering

    archive / summary

  • Angelo Pesce - Rendering the Metaverse across Space and Time

    - the talk provides an overview of Roblox and how the philosophy creates an environment with very di...

    archive / summary

  • Particles Color and Depth Textures

    - part of tutorial series about the Unity scriptable rendering pipeline (SRP)

    archive / summary

  • Robin Taillandier & Jon Valdes - Every Strand Counts: Physics and Rendering Behind Fr...

    - presentation shows the in-progress state of the new Frostbite hair rendering system in the context...

    archive / summary

  • The Spraycan

    - the articles discusses how the voxel rendering in teardown uses an 8

    archive / summary

  • Linearly Transformed Spherical Harmonics

    - the Bachelor thesis introduces Linearly Transformed Spherical Harmonics

    archive / summary

  • Memory types of discrete GPUs

    - the article explains a different kind of memory that exists

    archive / summary

  • Intel View in Mafia III

    - the article presents how the effect was implemented that allows objects to be colorized/silhouette...

    archive / summary

  • Michał Olejnik - Raytraced Shadows in Call of Duty: Modern Warfare

    - video recording of the talk covered in [week 154](https://www.jendrikillner.com/post/graphics

    archive / summary

  • [video] Painting a Selfie Girl, with Maths

    - the video presents an in-depth walkthrough that shows how to use signed distance fields (SDF) to c...

    archive / summary

  • Reverse engineering the rendering of The Witcher 3, part 21 - the painted world

    - the article shows how The Witcher 3 implements a fullscreen effect that gives the world a painterl...

    archive / summary

  • biplanar mapping - 2020

    - the post presents a bi-planar mapping as an alternative to tri

    archive / summary

  • Depth

    - a very detailed article about depth buffers - focusing on Unity, but most of the information is en...

    archive / summary

  • [video] Endless Fields of Grass in URP with a Compute Shader! | Unity 2020.1

    - A Unity video tutorial that explains how to generate grass meshes using Compute shaders

    archive / summary

  • Multiple Importance Sampling in 1D

    - the article shows how Multiple Importance Sampling in 1D is used to improve the convergence of sto...

    archive / summary

  • Baking a Realistic Renderer from Scratch and other resources for Beginners in Compute...

    - a collection of resources (books, talks, websites) the author recommends for beginners to get star...

    archive / summary

  • DirectX 12 Ultimate - Variable Rate Shading

    - the presentation provides an overview of Variable Rate Shading (VRS), the different features level...

    archive / summary

  • AMD FidelityFX Denoiser

    - the presentation explains the ray tracing denoising technique developed by AMD

    archive / summary

  • Vulkan Ray Tracing Final Specification Release

    - the post explains what changes have been made to the Vulkan raytracing extension since the preview...

    archive / summary

  • Exploring ray tracing techniques in Wolfenstein: Youngblood

    - the article presents an overview of how Vulkan raytracing has been implemented into Wolfenstein

    archive / summary

  • In the works: HLSL Shader Model 6.6

    - the article contains an overview of the new features that will be included in shader model 6.6

    archive / summary

  • D3D12 APITrace - Capture and Replay

    - the blog posts describes how APITrace can intercept D3D12 applications (even complex AAA games suc...

    archive / summary

  • [video] Realistic Clouds - Sapiens Devlog 54

    - the dev vlog explains how the 2D billboard based clouds are implemented

    archive / summary

  • [video] Devlog 1: How we built the toon shading | Open Projects

    - the devlog presents a walkthrough of the implementation of a toon shader

    archive / summary

  • [video] Introduction to Compute Shaders in Unity URP! Replace Geometry Shaders | Game...

    - the video tutorial explains how to take an input mesh and use a compute shader to generate additio...

    archive / summary

  • Top Fire Shader Graphs

    - the article presents three different approaches to archive a fire effect using Unity

    archive / summary

  • d3d12 - Vulkan

    - unrolled Twitter thread presenting an overview of differences between D3D12 and Vulkan

    archive / summary

  • Technically Art: Issue 76 (20.11.2020)

    - collection of tweets related to VFX, shaders, and game art

    archive / summary

  • CasCmdLine - Few Technical Details

    - brief article that shows how to create a D3D11 device without a window

    archive / summary

  • Practical Tips for Implementing Subsurface Scattering in a Ray Tracer

    - the article presents techniques to improve Subsurface Scattering (SSS) implementation based on the...

    archive / summary

  • Frostpunk Heatmap

    - the Unity explains how to implement a heat map view to visualize the temperatures in Buildings

    archive / summary

  • Resource uniformity & bindless access in Vulkan

    - the article provides a brief overview of different kinds of array indexing types in shaders

    archive / summary

  • What is shader occupancy and why do we care about it?

    - the blog post explains what shader occupancy is and how it connects to vector registers usage

    archive / summary

  • Retro CRT Shader — A post processing effect study

    - the article explains how to implement a CRT rendering effect using GLSL

    archive / summary

  • Combining 2D and 3D in Blightbound's VFX

    - the article explains how the 2D VFX effect has been integrated int the 3D world of Blightbound

    archive / summary

  • Introducing OWL: A Node Graph Abstraction Layer on top of OptiX 7

    - article introduces OWL, an abstraction build on OptiX 7

    archive / summary

  • The Bright Side of Ray-Traced Global Illumination in Unity

    - the article presents the difference between baked, screen

    archive / summary

  • Generating meshes procedurally in Unity

    - the post explains how to generate a procedural mesh

    archive / summary

  • Vulkan Ecosystem & SDK Survey - 2020

    - Vulkan survey to gather information about user experience, platform support, and future developmen...

    archive / summary

  • [video] Procedural Water Ripples in Unity using Shader Graph Only

    - a Unity video tutorial that shows how to implement a water ripple effect

    archive / summary

  • Linear Algebra Shenanigans: Gizmo Repair

    - the article presents how to resolve issues with movement widget logic

    archive / summary

  • [video] SIGGRAPH Asia 2020 – Technical Papers Trailer

    - overview of technical papers that will be presented at SIGGRAPH Asia 2020

    archive / summary

  • Normalizing the Phong Specular BRDFs

    - the paper presents an energy normalization derivation of the Phong lighting model

    archive / summary

  • Projective Geometric Algebra

    - collection of resources by Eric Lengyel covering geometric algebra (this includes Grassmann algebr...

    archive / summary

  • Compute Shaders Rendering One Million Cubes

    - the article explains how to use a compute shader to render moving cubes

    archive / summary

  • A summer sprint: bringing near-native performance to Zink

    - the blog post presents an overview of the development progress of Zink(OpenGL on Vulkan layer)

    archive / summary

  • Adding support for two-level acceleration for raytracing

    - the second part of the blog post series covering raytracing implementation with compute shaders pr...

    archive / summary

  • Khronos Vulkan Working Group Releases Shading Rate Extension to Increase Rendering Pe...

    - Vulkan extension for Variable Rate Shading (VRS) has been released as [VK_KHR_fragment_shading_rat...

    archive / summary

  • PIX 2010.26 – Updated Command List Execution View & Descriptor Heap Viewer

    - latest PIX update adds support for visualizing the GPU execution of command list from a single Exe...

    archive / summary

  • Technically Art: Issue 74 (30.10.2020)

    - collection of tweets related to VFX, shaders, and game art

    archive / summary

  • The Elephant on RTX – First Light. (or: Ray Tracing Disney’s Moana Island using RTX, ...

    - the author presents an overview of his raytracer setup

    archive / summary

  • Multiple Cameras Camera Blending and Rendering Layers

    - the Unity article explains how to integrate multiple cameras into a scriptable render pipeline

    archive / summary

  • Shader Graph - Stylized Glass

    - the shader tutorial explains how to stylized toon glass shader

    archive / summary

  • Screen Space Reflections in Blightbound

    - the articles explains the pitfalls encountered when implementing Screen Space reflections

    archive / summary

  • The Dark Side Of Ray-Traced Ambient Occlusion (RTAO)

    - the blog post provides an overview of ambient occlusion and what it approximates

    archive / summary

  • Technically Art: Issue 73 (23.10.2020)

    - collection of tweets related to VFX, shaders, and game art

    archive / summary

  • Raytraced Shadows in Call of Duty: Modern Warfare

    - the presentation explains how the raytracing for shadows has been implemented into Call of Duty

    archive / summary

  • Surface Gradient–Based Bump Mapping Framework

    - the paper presents a new framework for layering and compositing of bump maps from different source...

    archive / summary

  • A Tip for HiZ SSR - Parametric 't' Tracing

    - the article presents how the precision HiZ tracing logic (used for screen space reflection) can be...

    archive / summary

  • The future of RLSL

    - the blog post explains the history of RLSL (Rust Like Shading Language)

    archive / summary

  • Introducing rust-gpu v0.1

    - First public release of Rust-gpu, a new SPIR-V backend for the Rust

    archive / summary

  • A Better Way to Scalarize a Shader

    - the article provides a brief overview of scalarization and suggests an alternative approach

    archive / summary

  • GPU-Motunui

    - the post explains the implementation of a path tracer that enables the rendering of the Disney Moa...

    archive / summary

  • Watercolour Shader Experiments

    - the Unity-based effect presents how to create a watercolor rendering style

    archive / summary

  • Fast Eulerian Fluid Simulation In Games Using Poisson Filters

    - the research presents a 2D fluid simulation in a 3D scene used to generate fire effects

    archive / summary

  • Geometry Shaders in URP

    - the Unity tutorial provides a brief overview of the rendering pipeline

    archive / summary

  • HSV Shader Graph – Hue Saturation Value

    - the tutorial explains HSV color space and presents how to implement conversion

    archive / summary

  • Blowing bubbles with Shader Graph

    - the article presents how to implement the rendering of a soap bubble in Unity

    archive / summary

  • [Video] Vertex animation textures, beanbags and boneless animations

    - The video tutorial explains how vertex animations can be stored and played back from textures

    archive / summary

  • Does subgroup/wave size matter?

    - the articles presents an overview of the GPU execution model, how divergent control flow is handle...

    archive / summary

  • Framebuffers, WGPU and Rust

    - the article explains the terms required to understand the initialization of a webGPU application

    archive / summary

  • Hash Functions for GPU Rendering

    - the paper presents an evaluation of deterministic hash functions

    archive / summary

  • [video] Beautiful Results From 30 Years Of Light Transport Simulation!

    - the video shows the history of light transport techniques and presents how they perform in complex...

    archive / summary

  • I3D 2020

    - links to the papers from I3D 2020 - the winners for best

    archive / summary

  • [video] Variance-Aware Path Guiding (SIGGRAPH 2020 presentation)

    - SIGGRAPH 2020 presentation that provides an overview of Variance

    archive / summary

  • Grass Shader

    - the blog post discusses the development of a GPU based grass rendering system

    archive / summary

  • [video] Marvel's Spider-Man PS5 Ray Tracing Analysis - The Challenge of RT in First-G...

    - the video shows the Ray Tracing implementation and uses it to explain the considerations when desi...

    archive / summary

  • Yet Another Stylised Water Shader

    - breakdown shows how a Stylised Water Shader was implemented in Unity

    archive / summary

  • Scaling Probe-Based Real-Time Dynamic Global Illumination for Production

    - the paper presents extensions to the [probe based irradiance

    archive / summary

  • sRGB/ACEScg Luminance Comparison

    - the blog post presents a comparison between the usage of different color spaces on the results of...

    archive / summary

  • Color Grading Playing with Colors

    - the 13ths part of the scriptable render pipeline tutorial explains how to add color grading to the...

    archive / summary

  • System Value Semantics in Compute Shaders - Cheat Sheet

    - the article presents a table of HLSL and GLSL compute shader semantics and how they the meanings m...

    archive / summary

  • New Tutorial – Unified Radeon™ GPU Profiler and Radeon™ Memory Visualizer usage with ...

    - tutorial explains the new unified AMD interface for the GPU Profiler Memory Visualizer

    archive / summary

  • Porting detroit: become human from playstation® 4 to pc – part 1

    - the post explains the experiences on porting the game from PS4 to PC using Vulkan

    archive / summary

  • Porting detroit: become human from playstation® 4 to pc – part 2

    - part two of the series provides on porting Detroit: become human offers an overview of indexing co...

    archive / summary

  • Porting detroit: become human from playstation® 4 to pc – part 3

    - the last part of the series briefly explains how they used scalarization to optimize shader, split...

    archive / summary

  • Making a Real Time Stylized Sword Aura Effect with Shaders

    - the author explains his approach for the design of an aurora shader challenge

    archive / summary

  • Borderland between Rendering and Editor — Part 3: Selection Highlighting

    - the articles explains how The Machinery implementing for rendering the outline of selected objects...

    archive / summary