-
Advanced API Performance: Clears
- the article presents performance advice from Nvidia for clear operations
-
Integrating VRS in The Riftbreaker
- the article discusses how the AMD FidelityFX Variable Shading library was integrated into The Rift...
-
Comparing .obj parse libraries
- the article compares several .obj parsers for loading speed and memory usage
-
Reading list on ReSTIR
- the post presents a list of articles/papers that discusses Reservoir
-
How to build a BVH – part 6: All Together Now
- the article expands the capabilities of the BVH construction to support a more significant number ...
-
[video] GPU Texture Compression
- the video shows a summary of block compressed formats and why they are a good fit for GPUs
-
[video] Vulkan Synchronization | Understand Fences, Semaphores, Barriers,... | Vulkan...
- the video lecture contains a detailed description of Vulkan Synchronization topics
-
Render Graph 101
- the article describes a how a system can derive execution order from rendered resource dependencie...
-
[video] Toon Shading & Rim Lighting // OpenGL Beginners Series
- the video tutorial explains the theory of toon shading and rim lighting effects
-
Derivatives in compute shader
- the article discusses how to calculate UV derivatives in compute
-
Let’s Stop Calling it GGX
- the blog post raises the point that GGX was introduced in a 1975 paper by Trowbridge and Reitz
-
How to build a BVH – part 5: TLAS & BLAS
- the article presents how to extend the BVH structure to allow multiple objects in the same structu...
-
High Performance Graphics 2022 - Student Competition
- the High-Performance Graphics conference is running a student contest
-
Various analytic expressions for collimated light scattered in fog (participating med...
- the article presents the underlying mathematical modeling commonly used to represent volumetric ef...
-
Efficiency-aware multiple importance sampling for bidirectional rendering algorithms
- the paper presents a method to adapt the set of sampling techniques in multi importance sampling t...
-
Sampling the hemisphere
- the blog post explains the derivations of importance sampling schemes for multiple functions
-
ReSTIR El-Cheapo
- the article presents the idea of using ReSTIR for a checkerboard style pattern for shadow ray gene...
-
Increasing wave coherence with ray binning
- the article presents the implementation of a ray-binning technique
-
Generalized Resampled Importance Sampling (GRIS)
- the paper introduces a generalized approach to resampled importance sampling for correlated sample...
-
[video] Sprite Batching In OpenGL // Uniform Buffer Objects
- the video shows how to pack sprites into a 2D texture atlas to reduce the number of draw calls req...
-
Faster Visibility Buffer/Deferred Material Rendering via Analytical Attribute Interpo...
- the post presents a method for reducing the size of visibility output buffers and the effect on pe...
-
How to build a BVH – part 4: Animation
- the article presents how to update a BVH tree for an animated mesh
-
Identifying Shader Limiters with the Shader Profiler in NVIDIA Nsight Graphics
- the article presents a walkthrough of how to use GPU Trace Analysis and GPU Profiler to identify p...
-
A Dataset and Explorer for 3D Signed Distance Functions
- the paper presents a database of 63 optimized and regularized SDF functions of varying complexity
-
A driver on the GPU
- the article discusses the complexities of implementing ExecuteIndirect from a driver's perspective...
-
[video] Using Ray Casting To Move 3D Objects
- the video on how to implement ray-casting from the cursor position into a 3D world to allow the mo...
-
Agility SDK 1.602.0
- the blog post presents the new capabilities of the agility SDK
-
Twitter Thread: Games for the original #PS1 had a unique visual look
- the thread explains the history of the PS1 hardware and how it defined the look of the games of th...
-
Windows Graphics News – 2022 Q1
- a collection of news from the graphics windows development world
-
Shader compiler tools
- the article presents an overview of the shader compilation pipeline in Wicked Engine
-
A remake of the famous Sponza scene for open, collaborative and reproducible research
- the Sponza rendering scene has been updated - it now contains 4K PBR texture sets and high
-
Dynamic, Noise Free, Screen Space Diffuse Global Illumination
- the article presents the screen space solution for Global Illumination
-
Compute shaders in graphics: Gaussian blur
- the article presents the authors' first experience with writing a compute shader to implement a Ga...
-
How to build a BVH – part 2: Faster Rays
- the article presents how to use a Surface Area Heuristic (SAH) to improve the quality of the BVH g...
-
Radeon™ GPU Profiler 1.13 and Radeon Developer Panel 2.6
- the article presents improvements to the new profiler version
-
How to build a BVH – part 3: Quick Builds
- the article presents how to reduce the time required for the presented BVH build from seconds to m...
-
Moving, Rotating, and Scaling UVs - Shader Graph Basics - Episode 43
- the video tutorial explains how to modify UVs from a shader graph in both Unity and Unreal Engine ...
-
Slang Shading Language Advances
- the talk presents the Slang Shading language - presents how generics and interfaces are implemente...
-
i3D 2022 - Program
- program for the ACM SIGGRAPH Symposium on Interactive 3D Graphics and Games has been released
-
Unreal Engine 5 Matrix City Sample PC Analysis: The Cost of Next-Gen Rendering
- the Digital Foundry video analyses the performance of the UE5 Engine
-
Modern OpenGL Tutorial - Tessellation Shaders
- the video provides an overview of tessellation shader concepts
-
My personal hell of translating DXIL to SPIR-V – part 5
- the article introduces standard terms and concepts used in compiler literature
-
Eurographics 2022 papers on the web
- a collection of papers to be presented at Eurographics 2022
-
Adventures with Deferred Texturing in 'Horizon Forbidden West'
- the GDC presentations talk about the implementation of the Deferred Texturing
-
Permutation Coding for Vertex-Blend Attribute Compression
- the paper presents a new approach to compressing vertex data at a fixed bit
-
My personal hell of translating DXIL to SPIR-V – part 4
- the article presents a detailed look at how different D3D12 ConstantBuffer patterns are mapped int...
-
Exponentially Better Rotations
- the article presents a summary of different methods to express rotations
-
[video] Taking the Slang Shading Language from Research to Production
- the video presents an overview of the challenges in shader development
-
Introducing HIP RT – a ray tracing library in HIP
- AMD released a library to enable applications that use Heterogeneous
-
How to build a BVH – Part 1: Basics
- the article describes how to construct a BVH from a collection of triangles
-
Bringing Linearly Transformed Cosines to Anisotropic GGX
- the paper introduces an LTC (Linearly Transformed Cosines) approximation to anisotropic GGX using ...
-
ReSTIR GI for Specular Bounces
- the blog posts demonstrate how to implement ReSTIR (Spatiotemporal reservoir resampling)
-
Realtime Fluid Simulation: Projection
- the article provides a showcase of the importance of a projection solver for a real
-
[video] Interactive Graphics 24 - Refractions, Transparency, Blending, & Alpha Testin...
- the video explains the concept of refraction and existing techniques to implement the effect
-
Graphics Pipeline, Techniques, & Algorithms in Vortice
- the visual graph provides a visual representation of the different passes from the fluid simulatio...
-
[video] Painting a Landscape using Mathematics
- the video provides a complete walkthrough of the creation of a large outdoor environment using sha...
-
Raytracing, a 4 year retrospective
- the article presents a retrospective of raytracing experiments done using compute shader implement...
-
Bindless rendering — Templates
- the article presents an abstraction system to allow shaders to author bindings without having to b...
-
Entropy decoding in Oodle Data: Huffman decoding on the Jaguar
- the article provides an in-depth look at the core loop optimizations of the Oodle decoding step fo...
-
[video] Unreal Engine 5 Guided Tour | Feature Highlight | State of Unreal 2022
- the 30min video provides a summary and examples of the new features in Unreal Engine 5 (UE5) to bu...
-
[video] 10 Shaders in 10 Minutes - Unity Shader Graph
- the video tutorial shows how to implement ten different effects using UnityShader graphs
-
[video] Tessellation and Displacement - Shader Graph Basics - Episode 41
- the video shader tutorial shows how to use tessellation and displacement to create dynamically det...
-
[video] Interactive Graphics 22 - Global Illumination
- a high-level overview of what Global Illumination is, the importance for the rendering results
-
[video] Interactive Graphics 23 - Ambient Occlusion & Soft Shadows
- discusses what Ambient Occlusion is, provides how it fits into the rendering equation and what it ...
-
[video] Procedurally Generating A Hexagon Grid in Unity
- the video tutorial shows how to generate a procedural hexagon shape mesh
-
Reducing Draw Time Hitching with VK_EXT_graphics_pipeline_library
- the blog post describes the functionality of the new pipeline library extension and how to use it ...
-
Software Rasterization of 2 Billion Points in Real Time
- the paper presents an improvement of compute shader
-
PIX 2203.30: Export to C++, UI changes and more!
- the blog post details the changes in the new PIX version
-
Authoring Efficient Shaders for Optimal Mobile Performance
- the GDC talk presents the Mali Offline Compiler and how to use it to analyze shader performance at...
-
[video] Interactive Graphics 20 - Compute & Mesh Shaders
- the video lecture explains the concepts of compute shaders
-
[video] Toon Shader Specular Highlights - Shader Graph Basics - Episode 40
- the video tutorial shows how to implement specular highlights for a toon shader
-
[video] Interactive Graphics 21 - Deferred, Variable-Rate, & Adaptive Shading
- the video lecture presents deferred shading, discussing the problems of forward shading and how de...
-
Texture sampling tips
- the article provides a collection of performance advice to consider with texture sampling
-
[video] How to Select 3D Objects With The Mouse Using OpenGL
- the video explains how to use render-to-texture to enable object selection
-
Discover 3D content optimization with Simplygon
- the talk provides an overview of different LOD concepts
-
Raytraced global illumination denoising
- the article provides an overview of a denoising solution for raytraced global illumination based o...
-
Rendering realtime caustics
- the article discusses a method for a simple non-PBR method to implement underwater caustics
-
Skybox tutorial part 1
- the article presents a walkthrough of the implementation of a complete skybox model, including tim...
-
Announcing Vulkan Memory Allocator 3.0.0 and Direct3D 12 Memory Allocator 2.0.0
- the article describes a large number of changes and improvements made to the AMD and Vulkan Memory...
-
1.3 Vulkan Loader Improvements
- Vulkan loader has been improved with more debugging capabilities and improved documentation
-
WebGPU and Graphics on the Web
- podcast discussing the development and design of WebGPU
-
Intel at the 2022 Game Developers Conference
- the page contains links to the presentations (slides and video) to the talks given by Intel at GDC...
-
NVIDIA Hopper Architecture In-Depth
- the article provides in-depth details about the new Hopper GPU architecture for data center usage
-
[video] Interactive Graphics 19 - Bump, Normal, Displacement, and Parallax Mapping
- the video presents an overview of techniques to represent more geometric details without having to...
-
Mach v0.1 - cross-platform Zig graphics in ~60 seconds
- the blog explains the graphics foundations of Mach, a zig graphics foundation layer
-
Fast Non-Uniform 3D Frame Representation
- the paper presents a derivation of a representation for rotation and non
-
[video] HOW TO DEBUG Your OpenGL Code
- the video tutorial provides a starting guide to OpenGL debugging
-
Transforming “noise” and random variables through non-linearities
- the article recaps the effects of linear transformations of random variables
-
[video] Live Coding an Alien Orb - God Rays & Translucency
- video tutorial presents a walkthrough of implementing volumetric god rays and subsurface scatterin...
-
PIX-2203.07: Support for DirectStorage
- the new release of Pix supports DirectStorage visualization on the timelines
-
DirectStorage API Now Available on PC
- Microsft has released the first public version of DirectStorage
-
How to add thousands of lights to your renderer and not die in the process
- the article presents an introduction into Reservoir
-
[video] Interactive Graphics 17 - Geometry Shaders
- the video course provides an understanding of the geometry shaders' capabilities
-
[video] Toon Shader Paint - Shader Graph Basics - Episode 38
- the video tutorial explains how to implement toon shading
-
[video] Interactive Graphics 18 - Tessellation Shaders
- the video tutorial covering Tessellation shaders
-
Fast, GPU friendly, antialiasing downsampling filter
- the article present how to derive a downsampling filter that uses eight bilinear samples
-
Optimizing Oklab gradients
- the article presents an overview of sRGB, Linear, and Oklab gradient interpolation
-
Abstracting the graphics api for a toy renderer
- the article discusses the authors' decision for a home renderer abstraction layer
-
Bindless rendering — Setup
- the article presents the implementation of a bindless binding model using D3D12 and Vulkan
-
A Better Approach to SDF Decomposition
- the article presents a compiler approach that takes an SDF representation and generates shaders fo...
-
Stochastic Light Culling for Single Scattering in Participating Media
- the paper extends the ideas of Stochastic Light Culling to compute single scattering in a homogene...
-
Multi-Resolution Geometric Representation using Bounding Volume Hierarchy for Ray Tra...
- the paper introduces a technique to lower the cost of ray tracing by using approximated geometry f...
-
Mali-G710: a developer overview
- the article presents hardware and shader compiler improvements for the new Malig G710 GPU
-
[RFC] Adding HLSL and DirectX support to Clang & LLVM
- the forum post presents the proposal to integrate HLSL and DXIL support into clang/LLVM
-
WebGPU — All of the cores, none of the canvas
- the article provides an introduction to WebGPU for compute shader workloads
-
AMD at GDC 2022
- the page contains information and links to all the talks that AMD will present at GDC22
-
Exposure Fusion – local tonemapping for real-time rendering
- the article presents an explanation of common tone mapping issues, comparing multiple local tone m...
-
Variable Rate Compute Shaders on Xbox Series X|S
- the presentation talks about techniques to use VRS (Variable Rate Shading) to reduce the cost of l...
-
Variable Rate Shading, Tales from the Trenches on Series X|S
- the presentations cover the experience of implementing VRS into Doom Eternal and Gears5
-
How Does Perspective Work in Pictures?
- the article discusses the effect that human perception and images appear different
-
Picking Fairly From a List of Unknown Size With Reservoir Sampling
- the article presents a collection of code samples that allow the selection of random samples from ...
-
Improved Accuracy for Prism-Based Motion Blur
- the paper presents a method for improving the quality of motion blur on dynamic triangulated objec...
-
Vulkan SC: Overview - and how it is different from the Vulkan you already know
- the article presents Vulkan for Safety-Critical applications
-
Beyond Sand & Spice: The VFX of Dune | DNEG Deep Dives
- the video panel discussion presents a look at the VFX development for Dune
-
Sampling in Floating Point (1/3): The Unit Interval
- the article presents a method to uniformly sample floats in the [0, 1) range
-
[video] Interactive Graphics 16 - Shadow Mapping
- the video tutorial explains the concepts required for shadow mapping
-
Tiling simplex noise and flow noise in two and three dimensions
- the paper presents a tileable implementation of simplex noise for 2D and 3D cases
-
Real-time Shading with Free-form Planar Area Lights using Linearly Transformed Cosine...
- the paper proposed a real-time shading calculation for area lights defined by cubic Bezier curves
-
Using Semaphore and Memory Sharing Extensions for Vulkan Interop with NVIDIA OpenCL
- the article presents a new set of OpenCL and Vulkan extensions to allow interaction between the AP...
-
[video] Clipping and viewport mapping in OpenGL
- the video tutorial explains the process that vertices passthrough after vertex processing
-
Untangling Direct3D 12 Memory Heap Types and Pools
- the article shows how GPU memory is exposed to D3D12 application developers
-
Why you can’t update Android’s GPU drivers like on your PC
- the article presents an overview of the Graphics driver development model on Android devices
-
Building a new graphics engine in Rust - Part 2
- the article presents the authors' API decisions while developing a D3D12 based graphics engine usi...
-
[video] Random Noise - Shader Graph Basics - Episode 35
- the video tutorial explains the concept of a noise hash
-
[video] Live Coding and Alien Orb - Modeling & Shadows
- the video tutorial presents a coding session of an extraterrestrial inspired Orb object
-
Ben Cloward - book recommendations
- the author presents his list of recommended books for technical artists
-
[video] Interactive Graphics 12 - The Rendering Equation
- the video lectures cover the history and motivation of the rendering equation
-
Shader translation benchmark
- the article presents a performance benchmark of the naga shader translation system
-
Cube Sphere Going from Cube to Sphere
- the article discusses an alternative way to procedurally generate spheres from a cube base divisio...
-
LunarG Releases New Vulkan 1.3.204.0 SDKs with Profiles Toolset and New Extensions
- new Vulkan SDK updates allows application developers to create their own profiles
-
Exploring the Vulkan 1.3 Software Development Kit (SDK)
- Vulkan webinars about Vulkan 1.3 on March 10th - covering Validation Layer Performance and Vulkan ...
-
A Review of Shader Languages
- the updated article presents a comparison of HLSL, GLSL, MSL, and WGSL
-
[video] Modern OpenGL - Compute Shaders
- the video tutorial explains the necessary concepts to use compute
-
Light transport matrices, SVD, spectral analysis, and matrix completion
- the article presents light transport matrices and how they relate to light transport concepts
-
Updates in Graphics and Gaming
- the article presents a new windows insider feature that will allow DX10/DX11 games to take advanta...
-
In the works: HLSL Shader Model 6.7
- the blog post presents the new features of shader model 6.7
-
Super Imposter shader: my journey to make a high quality imposter shader
- the article provides an overview of the development process of using a texture
-
[video] Real-Time Ray Tracing | RTX ON in Vulkan | Vulkan Lecture Series Ep. 6, Real-...
- Video lecture series of the real-time rendering course at TU Wien
-
A Shader Trick
- the article discusses a problem with effects caused by loss of floating
-
Technically Art: Issue 121 (11.02.2022)
- a collection of tweets about tech art, VFX, and related topics
-
[video] How Shaders Work (in OpenGL) | How to Code Minecraft Ep. 3
- video introduction tutorial to shader programming with OpenGL
-
[video] Interactive Graphics 10 - Textures on the GPU
- the video session explains Texture set up for usage from GPU shaders
-
Ray-tracing in 10ms: Ambient occlusion
- the article provides an overview of using raytracing to generate ambient occlusion
-
WebGPU January 2022 meetup — takeaways
- a roundup of WebGPU topics discussed at the January meetup
-
Speeding up Blender .obj export
- the article presents a walkthrough of the process that leads to the blender obj exporting being sp...
-
SIMD in the GPU world
- the article provides an overview of how SIMD execution models evolved over GPU generations
-
The road to 16-bit floats GPU is paved with our blood
- the article provides an overview of the state of 16
-
Two Low Discrepancy Grids: Plus Shaped Sampling LDG, and R2 LDG
- the article discusses more noise distributions functions, presents grid
-
Direct Light 2: integrating shadow rays into a path tracer
- the article presents why direct lighting computation should be separated from emitted light
-
Direct Light 3: what goes in the direct light function?
- the article presents components are defining the direct lighting component
-
2021 Vulkan Ecosystem Survey Results are in!
- the Vulkan survey presents a summary of the results and presents what next steps will be taken to ...
-
[video] Star Citizen Live: Graphics Engineering Q&A
- the developer interview answers a large number of user questions
-
[video] Interactive Graphics 08 - Lights & Shading
- video lecture presents an introduction explaining how surfaces are light from lights
-
[video] Skeletal Animation In OpenGL using Assimp - Part 5
- the final video of the skeletal animation series using OpenGL and Assimp
-
FXAA, SSAA, MSAA, and TXAA comic summary
- 4 slides for a brief summary of the 4 common anti
-
Direct3D 12: Long Way to Access Data
- the article presents the flow of data when a CPU generated value is accessed from an HLSL shader
-
UE5 Lumen Implementation Analysis
- the article provides a summary of the Lumen implementation found in UE5 (Unreal Engine 5)
-
Vulkan 1.3 and Roadmap 2022
- the article provides a summary of the features that are mandatory in Vulkan 1.3
-
In defense of NIR
- the article explains the history and evolution of the mesa shader compiler (internal representatio...
-
Advanced Kernel Profiling with the Latest Nsight Compute
- the new version of the Nsight Compute allows a better understanding of memory traffic and cache ev...
-
What is direct lighting (next event estimation) in a ray tracer?
- the article why randomly tracing rays leads to noisy results
-
WebGPU Best Practices
- the presentation contains a collection of best practices when working with WebGPU
-
[video] Useful functions for game designers - Cosine Interpolation
- the video explains the derivation of Cosine Interpolation
-
Shader tips and tricks
- the article contains a collection of 53 tips & tricks to consider when writing shaders
-
Removing Banding in Linelight
- the article discusses how noise can help to reduce banding in light gradients
-
[video] The Unreasonable Effectiveness of JPEG: A Signal Processing Approach
- the video provides a great introduction to image compression topics
-
Behind the Pretty Frames: God of War
- the WIP article presents a walkthrough of a frame of God of War (PC version)
-
Visualizing VGPR Pressure with Radeon™ GPU Analyzer 2.6
- the article presents the new VGPR Pressure Visualization view
-
The Perlin Problem: Moving Past Square Noise
- the article presents the shortcomings of Perlin noise and what causes these
-
[video] Tech Focus: Nvidia DLDSR - What Does AI Downsampling Actually Do?
- the video presents super sampling techniques - showing the issues introduced if super
-
[video] Talk - Practical Pigment Mixing for Digital Painting
- the paper presents the novel mixbox model for natural color mixing that matches the painting of oi...
-
Radeon™ GPU Profiler 1.12 released
- the article presents the new debug views that can visualize the wavefront execution patterns
-
Viewing DirectX® 12 Named Resources with Radeon™ Memory Visualizer 1.3
- the article presents how to show resource name usage in the AMD memory visualization
-
Texture Gathers and Coordinate Precision
- the article presents a deep dive into a gather related artifact
-
Instant Neural Graphics Primitives with a Multiresolution Hash Encoding
- the paper presents a multi-resolution hash table of trainable feature vectors
-
[video] Triplanar Projection Improvements - Shader Graph Basics - Episode 29
- the video improves the tri-planar projection shader (allows texture mapping without UVs)
-
[video] Interactive Graphics 01 - Introduction
- introduction to a university course that covers the fundamental concepts of real
-
[video] Useful functions for game designers - Lagrange Interpolation
- the video explains how to derive the Lagrange Interpolation functions
-
Technically Art: Issue 119 (14.01.2022)
- an extensive collection of a large variety of tech art tweets collected into a single post
-
[video] New Weather Simulator: Almost Perfect!
- Two Minute Papers video summary of the Weatherscapes: Nowcasting Heat Transfer and Water Continuit...
-
VK_KHR_dynamic_rendering tutorial
- the tutorial shows how to use the VK_KHR_dynamic_rendering extension in Vulkan
-
[video] Shader Coding for Beginners 2022 [Part 1]
- the first part of a shader coding course (6 hours!) focusing on textual shaders using Unity
-
[video] PhD Thesis Fast Forward 2021
- the video contains the summary and overviews of Siggraph PhD thesis
-
Cache and Bandwidth Aware Real-time Subsurface Scattering
- the PhD thesis provides an overview of Subsurface scattering techniques and proposes a taxon...
-
Sphere Scene in Unity URP
- the article explains how to set up an effect that allows meshes to appear cut at the boundaries of...
-
[video] You Might Be Thinking About Shader Performance Wrong
- the video focuses on visualizations of GPU performance considerations
-
[video] Skeletal Animation In OpenGL using Assimp - Part 2
- the second part of the series explains the mapping between vertices and bones
-
Insider guide to tech interviews
- the article provides an in-depth discussion of the interview process for more experienced develope...
-
Temporal AA and the quest for the Holy Trail
- the article presents a very detailed look at temporal anti
-
Reader Question Answered 1 - Learning D3D12
- the article provides a high-level learning guide for getting started with D3D12
-
Finding Your Home in Game Graphics Programming
- the article presents a high-level view of the graphics programming world
-
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...
-
Notes on occlusion and directionality in image based lighting
- the article presents the findings of the importance of directionality and occlusion for IBL(Image
-
What is an uber shader?
- the article presents a look back at the emergence of the term uber shader
-
Not All Blue Noise is Created Equal Part 2
- the article compares different techniques to generate blue noise
-
The History of Retro Game Consoles for Programmers
- the article provides a history of game consoles in the First Generation 1972 to modern
-
Branching on a GPU
- the article presents branching on GPUs, clearing up that the cost of a branch depends on the kind
-
Stalling a GPU
- the blog discusses dependent texture reads and the impact on GPU performance
-
Mixed Precision Algorithms in Numerical Linear Algebra
- the paper presents a look at the half/single/double and quad precision for floating
-
[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...
-
Global shaders in Unreal without engine modification
- the article shows how custom shader effects can be integrated into the UE4 pipeline
-
Digital Dragons 2021: Adam Sawicki - Efficient Use of GPU Memory in Modern Games
- talk discusses the available memory types in D3D12/Vulkan
-
Debugging For Graphics Programmers
- the article provides a collection of advice to help with debugging GPU issues
-
Christmas Decoration for Graphics Engineers
- the article describes a setup to use a software rasterizer to create winter decorations for tiny p...
-
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
-
Debugging Your Renderer (5/n): Rendering Deterministically
- the article discusses sources of nondeterministic rendering in PBRT
-
Homegrown rendering with Rust
- the article presents the release of the kajiya experimental renderer written in Rust
-
[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...
-
Improved Triplanar projections
- the article presents how to use barycentric coordinates to improve triplanar projections
-
[video] Digital Foundry's Best Game Graphics of 2021 - PC, Xbox, PlayStation - Anothe...
- video discussing the best graphical releases of the year
-
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
-
From GLSL to WGSL: the future of shaders on the Web
- the post describes the differences between the new WebGPU Shading language and GLSL
-
Triangle Grid Triangles and Hexagons
- the article presents alternative mesh structures to generate grid structures
-
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...
-
Rendering in Real Time with Spatiotemporal Blue Noise Textures, Part 2
- the article discusses Spatiotemporal blue noise in more depth
-
[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...
-
[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...
-
Frickin' Shaders With Frickin' Laser Beams
- the author presents the design for a composable GLSL system based on the idea of closure
-
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
-
Technically Art: Issue 118 (18.12.2021)
- a collection of tweets covering a large variety of tech art topics such as
-
Modern (Bindless) Sprite Batch for Vulkan (and more!)
- the article describes how to use a Vulkan bindless setup for 2D sprite batching
-
World-space spatiotemporal reservoir reuse for ray-traced global illumination
- the paper presents a technique that performs reservoir
-
AMD GPUOpen - Publications
- list of AMD research publications - contains papers starting in 2010
-
Godot Rendering Pipelines
- the article shows how to write data into an offscreen target and process it in a full
-
Enhanced Barriers
- Microsoft released the spec for the Enhanced D3D12 barrier API
-
D3D12 Enhanced Barriers Preview
- the blog post provides an introduction to the new enhanced barrier preview for D3D12
-
Experimental Analysis of Multiple Scattering BRDF Models
- the paper presents an analysis of multiple scattering BRDF models
-
Announcing HLSL 2021
- the article presents the new features released as part of the DXC update for December
-
Announcing new DirectX 12 feature – Video Encoding!
- the blog post presents the video encoding API that has been added to d3d12
-
Introduction to Tessellation in Metal
- the article presents an overview of tesselation shaders
-
How to Build a Compute Rasterizer with WebGPU
- the article presents how to implement 3D mesh rasterization in a WebGPU compute shader
-
[video] Swizzle & Channel Manipulation - Shader Graph Basics - Episode 25
- the video tutorial introduces swizzle operations
-
fma: A faster, more accurate instruction
- the article presents the shader multiply/add operation (fma/mad)
-
The Definitive Weta Digital Guide to IBL
- the tutorial describes the capturing process for image
-
Building a PS1 style retro 3D renderer
- the article describes the hardware characteristics of the PS1 renderer
-
Tiled Reservoir Sampling for Many-Light Rendering
- the paper introduces a combination of tile-based stochastic light culling and reservoir sampling
-
Gradients in linear space aren't better
- the article shows how gradients differ with different color spaces
-
Arm Best Practice warnings in the Vulkan SDK
- the article presents the Vulkan SDK layer architectures
-
Why gamers and developers should care about ray tracing
- the article provides an overview of use cases for ray tracing
-
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
-
Understanding Graphs in GPUView and RGP
- the article explains what information GPUView and Radeon GPU Profiler show
-
Custom Bloom Post-Process in Unreal Engine
- the article provides an overview of the bloom technique and implementations
-
Skeletal Animation In OpenGL using Assimp - Part 1
- the video tutorial provides an overview of the skinning animation technique
-
Denoising Sprite Fright
- the article presents the noise issues encountered when rendering out animated camera tracks
-
[video] Reflection and Refraction Vectors - Shader Graph Basics - Episode 24
- the video shows a visualization of reflection and refraction vectors
-
Lossless Image Compression in O(n) Time
- the article presents the overview of a small and simple lossless image compression
-
Floating-point in mobile shaders
- the article presents an overview of fp16 (16-bit floating
-
Tessellation-Free Displacement Mapping for Ray Tracing
- the paper presents a new approach that decouples displacement from the tessellation of the base me...
-
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...
-
Shader Assembly and D3D12 Root Signatures
- the article presents a look at the RDNA2 assembly generated from a simple pixel shader that output...
-
Debugging Your Renderer (2/n): Unit Tests
- the article presents a starting point for developing unit tests for rendering algorithms
-
Adventures in Hybrid Rendering
- the article presents an overview of the implementation for various techniques found to mix raytrac...
-
Vulkan Pills 1: Bindless Textures
- the article presents the quickest way to implement fully bindless shaders using Vulkan
-
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...
-
Getting started with Metal-cpp
- the article presents the official C++ interface for Metal
-
How to Level Up Your Profiling With RenderDoc for Oculus
- the article describes the RenderDoc fork for use with Oculus devices
-
Prefix sum on portable compute shaders
- the author presents his experience trying to run a prefix sum sorting algorithms portably using We...
-
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
-
Jump flooding with bgfx
- the article shows an example of implementing a flood filling algorithm using the BGFX abstraction ...
-
Strange Attractors on the GPU, Part 1: Implementation
- the article presents how to implement GPU particles with movement tails without CPU interaction
-
How to draw styled rectangles using the GPU and Metal
- the article presents how to render rectangles with rounded edges
-
The Repackaged Windows Vulkan SDK
- the Vulkan SDK has been repackaged and now separates between core and optional components
-
NVIDIA GTC: A Complete Overview of Nsight Developer Tools
- provides an overview of the available Nvidia developer tools
-
Streamlining Render Passes
- the post summarizes the new VK_KHR_dynamic_rendering extension
-
[video] Intro to Graphics 22 - Signal Processing
- the video tutorial provides a beginner introduction to signal processing
-
[video] Jonathan Ragan Kelley: Organizing Computation for High-Performance Visual Com...
- the talk presents a discussion of performance tradeoffs
-
[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 ...
-
[video] Rendering Lines in a Game Engine // Game Engine series
- the video tutorial explains how to render lines using OpenGL
-
Shaded vertex reuse on modern gpus
- the article presents results comparing the vertex post
-
New Quest Rendering Tech Promises Massive Gains in App Performance
- summary of Occlulus Quest 2 Application SpaceWarp technology
-
Shadow outlines tutorial
- the Unity tutorial shows how to sample shadow maps and implement an edge detection filter
-
Stencil Portal in Unity — VFX Breakdown
- the article explains how to implement a portal look into a separate world using stencil buffers fo...
-
Technically Art: Issue 115 (05.11.2021)
- weekly round-up of tweets from a large variety of technical art and VFX topics
-
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...
-
Working Around Constructors in HLSL (or lack thereof)
- the article presents how constructor like functionality can be implemented in DXC HLSL
-
[video] Intro to Graphics 20 - Shadows & Reflections
- class in introduction to computer graphic series focusing on shadows
-
[video] How Computers Draw Weird Shapes
- the video tutorial explains how to implement metaball rendering
-
[video] A Deep Dive into Nanite Virtualized Geometry
- the video for the SIGGRAPH 2021 presentation about UE5 Nanite has been released
-
VK_KHR_dynamic_rendering
- Vulkan extension that allows the use of render passes in Vulkan using a D3D12 style objectless mod...
-
[video] Spot lights in OpenGL
- video tutorial explains the concepts of spotlights and develops a mathematical model to describe t...
-
[video] SIGGRAPH 2021 Rendering Engine Architecture course
- the videos for the excellent SIGGRAPH 2021 Rendering Engine Architecture course have been released...
-
The curious case of slow raytracing on a high end gpu
- the article shows that out of bounds access reduced rendering performance by 25x
-
Practical Gaussian filtering: Binomial filter and small sigma Gaussians
- the article discusses the Binomial and Gaussians filter
-
Advanced API Performance: Command Buffers
- the article covers a few high-level points on how command buffers allow parallelization of CPU ren...
-
Advanced API Performance: Memory and Resources
- the blog post provides recommendations for memory management using D3D12 on
-
Advanced API Performance: Mesh Shaders
- the article provides information about what practices are recommended for getting good mesh shader...
-
[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 ...
-
Scalable global illumination for O3DE
- the presentation presents an overview of different Global illumination techniques
-
Interactive Exploration of Homogeneous Coordinates and Rational Splines
- the article provides an explanation of Homogeneous Coordinates
-
Vulkanised 2021 - Fall
- the slides and video recordings from the Vulkanised 2021 conference have been released
-
[video] HLSL shaders compilation pipeline in BG3
- discussing how the mapping from D3D to Vulkan binding semantics was implemented using SPIR
-
Interactive Volumetric Fog With Fluid Dynamics and Arbitrary Boundaries
- the article presents a method to generate and simulate real
-
Swapchains and frame pacing
- the article presents an in-depth overview of the pipeline required to display a image on screen
-
Advanced API Performance: Barriers
- collection of best practices for NVidia hardware regarding buffer management
-
Advanced API Performance: Async Copy
- the article discusses considerations when to use async copy queue, async compute, or serial copy e...
-
Advanced API Performance: Async Compute and Overlap
- the article presents a collection of Nvidia advice for getting good performance from async compute...
-
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 ...
-
Creating a Foliage Shader in Unity URP Shader Graph
- the tutorial covers a walkthrough of a foliage shader in Unity
-
[video] How To Render CIRCLES (OpenGL/Vulkan/DirectX/Metal)
- the in-depth video tutorial explains how to render a circle using shadertoy
-
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
-
The Shader Permutation Problem - Part 2: How Do We Fix It?
- the article dives deeper into the issues related to shader permutations
-
NeRF at ICCV 2021
- collection of Neural Radiance Field papers that will be presented at Intl. Conf. on Computer Visio...
-
Frame Analysis - Control
- frame breakdown of a single frame from the game control (as video and text)
-
Graphics Twitter - send me links for stuff explaining modern GPU architecture (PS5,RT...
- Twitter thread asking for GPU architecture information
-
Linking DXIL Binaries Using DXC
- the article shows how recent versions of DXC can link DXIL shaders for all shader stages
-
AMD FidelityFX Super Resolution: the Digital Foundry interview
- interview with Nick Thibieroz, Director of Game Engineering at AMD
-
Gentle Introduction to Realtime Fluid Simulation for Programmers and Technical Artist...
- the articles provides a beginner friendly introduction into fluid simulation
-
GPU BCn decoding
- the article explains how BC format encodind differs between hardware vendors
-
Improving GPU Memory Oversubscription Performance
- the post presents an overview of the performance characteristics for nvida applications related to...
-
[video] Specular Lighting in OpenGL
- the video tutorial extends the Phong lighting model with the addition of specular lighting
-
Instanced Line Rendering Part II: Alpha blending
- the article demonstrates how to implement line segment rendering so that the segments are not over...
-
Ray Tracing versus Animation
- the blog presents performance number for Bottom-level acceleration structure when using D3D12 rayt...
-
New Graphics Books, Fall 2021
- collection of 5 new graphics programming books - fundamentals, Vulkan, OpenGL and a history of com...
-
Fast temporal reprojection without motion vectors
- the paper proposes a new technique to enable the temporal reuse of samples in scenarios where moti...
-
An OpenEXR Layout for Spectral Images
- the paper provides an overview of Spectral Image Representation and Bi
-
[video] Blub - Interactive GPU fluid solver
- the video provides an overview of a GPU based fluid solver
-
Dynamic flowing foam in Unity
- the Unity tutorial shows how to implement a basic flow system in Unity
-
Shader Tutorial: Self-Drawing Lines
- the Unity tutorial explains how to implement a 2D effect where a mask controls the visibility of a...
-
[video] How to think about 3D rotations
- the video explains how to develop a mental model of 3D rotations
-
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
-
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...
-
Creative Use of GPU Fixed-Function Hardware
- the article presents a few examples of how GPU fixed function hardware is used for other purposes ...
-
Gentle introduction to GPUs inner workings
- the article provides an introduction to more hardware level information about GPU execution
-
Understanding Metal Enhancements in the A15 Bionic GPU
- the article provides a summary of the new hardware features in Apple GPUs
-
[video] NVIDIA’s New Technique: Beautiful Models For Less!
- the video provides a paper summary from NVidia that uses differentiable rendering to simplify geom...
-
CodeGen Performant Convolution Kernels for Mobile GPUs
- the article presents how to use MLIR (Multi-Level IR Compiler Framework) for efficient SPIR
-
GPU Dashboards in Jupyter Lab
- NVidia provides an open-source dashboard for Jupyter and a standalone Boker server
-
[video] Diffuse Lighting in OpenGL
- video tutorial that explains lambert diffuse lighting function
-
Discover advances in Metal for A15 Bionic
- the video presents what is new with the A15 GPU - added support for lossy compression
-
Compute versus Hardware
- the article presents a comparison of triangle throughput for indexed buffer rendering, mesh shader...
-
Creating Portable Vulkan Applications Using DevSim
- the whitepaper explains how to use DevSim to simulate lower spec devices on higher
-
Digital combat simulator: frame analysis
- the frame breakdown covers the flight simulator scenes
-
Developing Ray tracing content for mobile games
- the article discusses lessons learned by ARM's approach for developing raytracing support for Mali...
-
[video] Smoothstep - Shader Graph Basics - Episode 15
- the video shows the smoothstep node in UE5 and Unity3D
-
[video] The FUTURE Of Graphics | Mesh Shaders, Ray Tracing & Vulkan with Neil Trevett...
- video in-depth interview with VP of developer ecosystems at Nvidia
-
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
-
Fast Volume Rendering with Spatiotemporal Reservoir Resampling
- the paper presents how to extend spatiotemporal reservoir resampling to multi
-
A Token Based Approach To Ordering Transitions
- the author suggests a method D3D12 state transition system for multithreaded command recording
-
Physical Light-Matter Interaction in Hermite-Gauss Space
- the paper proposes a formal model to describe how surfaces/media respond to incident radiation
-
ray_tracing_motionblur
- the Vulkan tutorial shows how to use the Vulkan VK_NV_ray_tracing_motion_blur extension (exposed b...
-
Okhsv and Okhsl
- the article presents a derivation of new color spaces designed for more uniform color picker behav...
-
SDF Decomposition
- the article presents a method for the rendering of static Constructive solid geometry SDFs
-
Say hello to shadergarden
- article introduces a prototyping system aimed at making multi
-
Vulkanised 2021
- signup and schedule for the Vulkanised conference has been published
-
The Fog of Random
- the article presents a look at the making of the fog lost in random
-
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...
-
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
-
Vulkan’s Best Practice layer now has AMD-specific checks
- AMD published a Vulkan layer that analyzes the API usage
-
Vulkan Layer Symbiosis within the Vulkan Ecosystem
- the whitepaper provides an overview of the Vulkan layer validation tool
-
Access modern GPU features with WebGPU
- WebGPU is slowly rolled out into mainstream Chrome versions
-
Technically Art: Issue 108 (03.09.2021)
- collection of Tech Art tweets - covering procedural animation, waterfall simulations, particles, a...
-
The Rendering of Mafia: Definitive Edition
- in-depth frame analysis of a nighttime scene in Mafia, a d3d11 based deferred rendering engine
-
Optimizing AMD FSR for Mobiles
- the article presents optimizations to the FidelityFX Super
-
Compressed GPU texture formats – a review and compute shader decoders – part 3/3
- the article presents how to implement a shader-based ASTC decoder
-
My Takeaways from WebGPU July 2021 Meetup
- the article contains a brief summary of the content presented at the WebGPU meetup
-
Stylised Grass with Shaders in URP
- the shader tutorial presents how to implement a grass shader using the Universal Render Pipeline i...
-
Technically Art: Issue 107 (27.08.2021)
- collection of tweets covering an extensive range of technical art topics
-
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
-
Temporal Antialiasing Starter Pack
- the article presents a collection of TAA resources
-
[video] The Beauty of Bézier Curves
- the video shows how bezier curves are defined, how they are used
-
Writing Portable Rendering Code with NVRHI
- Nvidia open-sourced their internal abstraction layer on top of D3D11, D3D12, and Vulkan
-
SIGGRAPH 2021 Links
- collection of links to Siggraph 2021 content - Courses, papers, posters, ...
-
Better GPU Hash Tables
- the paper presents three different variations of static hash tables for GPU usage
-
5 ways to draw an outline
- the articles shows Rim Effects, Vertex Extrusion, Blurred Buffer, Jump Flood Algorithm, and Edge D...
-
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...
-
Read My Chapter in Ray Tracing Gems II!
- the article provides a summary of the Using Bindless Resources With DirectX Raytracing chapter fro...
-
[pptx] Geometry Rendering Pipeline Architecture at Activision
- the talk presents how Activision had to rethink the geometry pipeline when moving from tightly con...
-
[video] Anti-Racist Graphics Research (SIGGRAPH 2021)
- the video discusses biases and assumptions that are baked into the graphics research
-
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
-
SIGGRAPH 2021 Talk- Unbiased Emission and Scattering Importance Sampling for Heteroge...
- the paper presents a new distance sampling method
-
2D Lighting with Hard Shadows
- the article presents a polygon extension-based method for the generation of 2D shadows
-
2D Lighting with Soft Shadows
- the blog post extends the previously discussed hard shadow method to support penumbra based soft s...
-
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...
-
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...
-
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...
-
Rendering Engine Architecture Course - Siggraph 2021
- a new course happening for the first time in 2021
-
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
-
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
-
Paper Digest: SIGGRAPH 2021 Highlights
- list of 149 accepted SIGGRAPH-2021 papers - containing a machine
-
EXR: Lossless Compression
- short blog post that tests EXR compression/decompression speed for the different available options...
-
A call to brute force
- author shows that path tracers are fundamentally simple if relying on pure brute force approaches
-
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...
-
A Little Bit About PRNG Stuff
- article presents an in-depth discussion of Pseudorandom Number Generators
-
Unity at SIGGRAPH 2021
- overview of Unity at Siggraph - Unity is providing access to a basic level SIGGRAPH pass
-
Some Books
- author suggested 3 books for computer graphics - covering raytracing, introduction to computer gra...
-
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
-
Visibility TAA and Upsampling with Subsample History
- extension of the previously presented Decoupled Visibility Multisampling technique
-
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
-
GPGPU, ML Inference, and Vulkan Compute
- the blog discusses Vulkan usage for GPGPU workloads, in particular for machine learning
-
Real-Time Shading with Polyhedral Lights using Silhouette Detection
- a Bachelor thesis that presents a method for GPU based silhouette generation from Polyhedral light...
-
[video] The Making of “Alpha Point”—UE5 Technical Demo | GDC 2021
- GDC talk presents a walkthrough of the technical creation aspects of the demo
-
Color Matching Function Comparison
- the post compares different Color Matching Function (CMF) for use with spectral rendering techniqu...
-
2D Lighting Techniques
- the article presents an overview of numerous techniques that can be used to implement lighting for...
-
Vulkan Hardware Database updates
- the Vulkan hardware database has been updated - texture format view now has a breakdown of what ti...
-
Software VRS with Visibility Buffer Rendering
- the article discusses how Visibility Buffer can be combined with Variable Rate Shading (VRS) Techn...
-
There is no S in SDF without the Distance Fields!
- the article explains how to express SDFs in Unity and Unreal
-
Real-time ray traced caustics
- the preprint from Ray Tracing Gems 2 covers two techniques for caustics
-
Processing aware image filtering: compensating for the upsampling
- the article presents the idea of compensating for shortcomings of an upsample technique in the dow...
-
Reducing Acceleration Structure Memory with NVIDIA RTXMU
- the NVIDIA RTX Memory Utility is an open-source (MIT License) SDK designed for reducing the comple...
-
[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
-
[video] Arm Mali GPU Training Series Ep 1.3 : GPU architecture
- explains how the rendering pipeline translates into GPU hardware
-
[video] Arm Mali GPU Training Series Ep 1.4 : Hardware shader cores
- the video discusses the hardware essentials - presents how CPUs are designed
-
GPU architecture types explained
- the article discusses tile-based and immediate-mode rendering GPUs in detail
-
Using Debug Printf
- whitepaper that discusses how to use printf in Vulkan shaders
-
3D SDF Primitives in WGSL
- a collection of Signed-distance field primitives (Cylinder, cubes, ...) expressed in WebGPU Shadin...
-
[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
-
My toy renderer, part 4: Ray tracing
- the article goes into detail on how to implement physically correct and affordable ray traced soft...
-
Decoupled Visibility Multisampling
- presents a method that decouples geometry samples from shading samples
-
Slope Space in BRDF Theory
- the article presents a refresher on the concept of slope
-
Dynamic destruction in Radio Viscera
- the article explains how the destruction system was implemented
-
FBM detail in SDFs
- the article presents a natural SDF based detail mapping / Fractal Noise displacement mapping
-
Technically Art: Issue 106 (16.07.2021)
- collection of tweets about technical art - covering particles, stylized shading, portfolios, and g...
-
Signed Distance field (SDF)
- a collection of resources, links, papers, discussions about SDFs
-
My toy renderer, part 3: Rendering basics
- the article explains how a visibility buffer approach is used
-
[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
-
Weighted reservoir sampling: randomly sampling streams
- pre-release chapter from ray tracing gems 2 - presents weighted reservoir sampling, a technique fo...
-
AMD FidelityFX Super Resolution (FSR) source code is now available here on GPUOpen
- the source code for the technique has been published on Github
-
Visibility Buffer Rendering with Material Graphs
- the article presents an overview of The Visibility Buffer approach
-
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 ...
-
Raytracing tidbits
- collection of ray tracing experiments and presentation of results
-
The reference path tracer
- first free chapter from ray tracing gems 2 has been released
-
Automated Testing of a Ray Tracer
- author presents an introduction to automated visual testing
-
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
-
HPG 2021 Papers Preview
- preview video if a view of the papers presented at HPG 2021
-
WebGPU for Metal Developers, Part Two
- second part of the series explaining the WebGPU basics by presenting the equivalent concepts from ...
-
Relighting and Material Editing with Implicit Representations
- the article presents a brief overview of NeRF (neural radiance fields)
-
NVIDIA Research: NeRF-Tex: Neural Reflectance Field Textures
- the presents the use of neural fields to model materials such as fur, fabric, and grass
-
What is Vulkan Compute?
- author presents the subset of Vulkan API related to compute workloads
-
An Initial Inspection of FidelityFX Super Resolution
- blog post presents a comparison of AMDs FSR, CAS against other upscale techniques
-
MMPX Style-Preserving Pixel Art Magnification
- the paper presents a filter for magnifying pixel art (such as 8
-
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...
-
MatMorpher: A Morphing Operator for SVBRDFs
- the paper presents a new operator for blending BRDF texture maps
-
[video] EGSR 2021 Day 1
- stream of the first day of Eurographics Symposium on Rendering 2021
-
Moving Basis Decomposition for Precomputed Light Transport
- paper presents the Moving Basis Decomposition framework
-
My toy renderer, part 2: Scene management
- the article discusses the scene structure of the authors' renderer
-
ReSTIR GI: Path Resampling for Real-Time Path Tracing
- paper presents a new path sampling algorithm for indirect lighting
-
The Missing Guide to Modern Graphics APIs – 2. PSOs
- the article presents an overview of why Pipeline State Object was introduced to allow predictable ...
-
[video] Live Coding: Making the American flag with math!
- the video tutorial shows a walkthrough to render the USA flag using shader toy
-
An Unbiased Ray-Marching Transmittance Estimator
- in-depth analysis of the sources of variance in state
-
NVIDIA Research: An Analytic BRDF for Materials with Spherical Lambertian Scatterers
- the paper presents a new BRDF for porous/dusty materials
-
Implementing Gamut Mapping
- the article discusses how to implement gamut clipping into a render pipeline
-
i3D 2021 Keynote: Trace All The Rays!
- describes the state of raytracing in games - presents a high
-
Real-time Neural Radiance Caching for Path Tracing
- the paper introduces a neural radiance caching method for path
-
[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
-
[video] Advanced Graphics Tutorial: Wakes, Explosions and Lighting: Interactive Water...
- discusses how to generate ocean displacement, buoyancy,
-
Deferred shading on mobile: An API overview
- the article discusses local tile memory and mobile GPUs
-
VK_EXT_multi_draw released for Vulkan
- a new Vulkan extension that adds vkCmdDrawMultiEXT vkCmdDrawMultiIndexedEXT
-
BRDF Importance Sampling for Linear Lights
- the paper presents a method for importance sampling linear lights such as fluorescent tubes
-
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
-
Supporting Native HDR Monitors
- the article provides an introductory overview of HDR concepts
-
A Polarizing Filter Function for Real-Time Rendering
- the paper presents a polarizing filter function for specularly reflected light
-
What’s new in Metal at WWDC21
- the article shows an overview of new features and changes presented at WWDC21
-
Using asynchronous compute on Arm Mali GPUs: A practical sample
- the post shows how the Mali hardware operates and exposes multiple graphics queues
-
Perceptual Lightness for Game Graphics
- the blog presents a comparison between color's luminance and lightness
-
[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
-
Stable Geometric Specular Antialiasing with Projected-Space NDF Filtering
- the paper introduces an improvement for specular antialiasing
-
[video] Lumen | Inside Unreal
- Lumen presentations starts at [10:00 minutes](https://youtu.be/QdV_e
-
Future geometry pipeline
- article discusses alternative approaches for geometry pipeline design
-
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
-
[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
-
Brief Analysis of Nanite GPU Culling
- the article presents a look at the implementation details of nanite GPU culling
-
BRDF Importance Sampling for Polygonal Lights
- the paper presents how to sample polygonal area lights proportional to linearly transformed cosine...
-
[video] Explore bindless rendering in Metal
- the video explains the motivation for the bindless model and explains the concept
-
[video] Nanite | Inside Unreal
- interview discussing the demo project, lessons learned, discussions about future directions, and m...
-
WebGPU for Metal Developers, Part One
- the article presents the fundamentals of the WebGPU API required to draw a colored triangle
-
Bringing Vulkan Raytracing to older AMD hardware (Vega and below)
- the article discusses the implementation of ray-tracing support into the open
-
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...
-
How to use debugPrintf in Vulkan
- the article presents how printf is supported in Vulkan Shaders
-
Compute shader glossary
- the article provides an overview of compute shader terminology and how they differ between APIs
-
Neural material (de)compression – data-driven nonlinear dimensionality reduction
- the article discusses continues exploration in compressing a set of textures
-
[video] Live Coding:Bending Light
- the video tutorial shows how to implement refraction into a shadertoy
-
Data-Driven Analysis and Design of Vulkan Ray-Tracing Applications using Automatic In...
- the master thesis presents a SPIR-V based instrumentation framework
-
Brief Analysis of Nanite
- the article provides an analysis of the Nanite cluster algorithm
-
A Macro View of Nanite
- the article presents an overview of the Nanite Rendering pipeline using RenderDoc
-
Unbiased VNDF Sampling for Backfacing Shading Normals
- the paper presents an improved normalization for the Smith–GGX BRDF visible normal distribution fu...
-
[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
-
Reliable Feature-Line Driven Quad-Remeshing
- the paper presents a new algorithm for the semi-regular quadrangulation of arbitrary input surface...
-
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
-
[video] Introduction to Ray Tracing - Class 1
- introductory Siggraph class about ray tracing - including an opening interview with Peter Shirley...
-
Triangle Grids
- the article presents triangle grids - discussing what a triangle grid is, why to use them an...
-
Writing Shader Code in Universal RP (v2)
- the article provides an overview of authoring shaders in HLSL
-
Tech Art Chronicles: What Are SDFs Anwyay?
- the article explains what Signed Distance Fields (SDFs) are
-
The technical art of sea of thieves
- the video recording from the Siggraph 2018 has been released
-
A VR Frame’s Life
- the blog post presents the setup of a frame for VR rendering (Oculus Quest)
-
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
-
Graphics Pipelines for Young Bloods
- the post presents an overview of different rendering pipeline architectures (Forward, deferred, vi...
-
Hash Functions for GPU Rendering
- suggests using a PCG hash function as default for GPU based hash/random functionality
-
[video] Basics of Partial Derivative Shader Funcs in Unity! DDX, DDY, FWidth
- the video explains how partial derivatives are calculated in pixel shaders
-
Inherited Viewport Scissor Sample
- the article presents an overview of Vulkan secondary command buffers
-
[video] Beautiful Glitter Simulation…Faster Than Real Time
- Two Minute Paper presenting an overview of Procedural Physically
-
Fast Divergence-Free Noise Generation in Shaders
- the post presents a divergence-free noise generation technique (such as curl noise)
-
Tips: Acceleration Structure Compaction
- the article shows how to compact DXR acceleration structures
-
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...
-
Experiments in hybrid raytraced shadows
- the blog post discusses how to combine raytraced and shadows from shadow maps
-
Shader translation benchmark on Dota2/Metal
- the blog post presents a performance comparison of Naga (rust based shader translation libra...
-
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
-
The stack monoid revisited
- the article discusses a technique for parallel processing of stack
-
[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...
-
[video] Raymarched Reflections
- part 3 of the newton cradle tutorial series - shows how to implement reflections using raymarching...
-
[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...
-
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...
-
Scaling Probe-Based Real-Time Dynamic Global Illumination for Production
- the paper presents extensions and improvements to the probe
-
[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
-
[video] It Just Works: Ray-Traced Reflections in Battlefield V
- presents how D3D12 Raytracing support was implemented in Battlefield V
-
Graphics API abstraction
- the article presents a walkthrough of the API abstractions on top of D3D11, D3D12, and Vulkan used...
-
Generating Primitive Shapes in C++
- the article shows how to generate planes, cones, cylinders, and a torus
-
Direct Delta Mush Skinning Compression with Continuous Examples
- the paper presents a novel model that splits a Direct Delta Mush into two layers
-
Antithetic Sampling for Monte Carlo Differentiable Rendering
- the paper presents antithetic variance reduction technique used to estimate the interior integrals...
-
[video] Burning Down Virtual Trees... In Real Time!
- Two Minute Paper provides an overview of the Interactive Wood Combustion for Botanical Tree Models...
-
[video] Newton's Cradle: Setting up Materials
- part 2 of the video tutorial that adds material support to the SDF based Newton Cradle implemented...
-
The case of the curiously slow shader
- the article presents a walkthrough how the author analyzed the slow shader performance on the GPU ...
-
Projective Geometric Algebra - Wiki
- WIP wiki about Projective Geometric Algebra, specifically the four
-
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...
-
Technically Art: Issue 96 (30.04.2021)
- collection of tech art tweets - covering UE4 weather systems, GPU instancing with Unity shader gra...
-
Creating a Card Shader with 3D content
- the article presents a walkthrough how to create a card shader
-
[video] NEW – Video: Radeon GPU Profiler v1.10
- the video provides a summary of the new features in the radeon GPU profiler
-
Graphics technique names
- twitter thread author provides summaries of 3 common technques
-
Hashing Space Hashing in an Arbitrary Grid
- the tutorial explains how to generate consistent hashes based on integer positions
-
Announcing HLSL Shader Model 6.6
- 64-bit integer atomics are now supported - some new capability bits got introduced as not all view...
-
Supermassive black hole tutorial
- the tutorial provides a walkthrough of a raymarching supermassive black hole shader
-
[video] RTXDI: Details on Achieving Real Time Performance
- Talk discusses how the performance of the ray-traced direct illumination was greatly improved
-
[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
-
[video] Tier 2 Variable Rate Shading in Gears
- overview of Variable Rate Shading (VRS), what is supported with Tier 1 and 2
-
Inverse Z-Buffer
- visual representation that shows why inverted depth buffer range with floating
-
i3D 2021 - Posters
- list of posters presented at I3D - covering Linearly Transformed Spherical Harmonics, Style
-
ShaderQuest Part 5: Shader code syntax & Colors
- part 5 of beginner-focused shader tutorial series
-
The Graphics Codex
- the Graphics Codex online textbox is now a free - covering an extensive range of topics, model of ...
-
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...
-
A Survey on Bounding Volume Hierarchies for Ray Tracing
- the paper presents comprehensive coverage of BVH hierarchies, especially focused on ray tracing
-
[video] Newton's Cradle: Modeling & Animation
- the video tutorial presents how to render and animate a newton's cradle with SDFs
-
Distinctive Derivative Differences
- the article presents the difference between ddx/y ddx/y_fine
-
An Introduction to Vulkan Video
- Vulkan API now exposes video support - extended the concept of the queue to support decode/encode ...
-
Pixel Art Filtering
- the article presents an overview of why filtering for pixel art at non
-
Appearance-Driven Automatic 3D Model Simplification
- the paper presents a machine learning-based approach that uses differential rendering to approxima...
-
How to read shader assembly
- the article provides an overview of shader assembly reading
-
Optimizing Triangles for a Full-screen Pass
- the article presents two common approaches to fullscreen passes
-
Bindless Descriptors
- the blog post provides a walkthrough of the bindless implementation in Wicked Engine for both Vulk...
-
Rendering large 3D tilemaps with a single draw call at 3000 FPS
- the articles describes the evolution of a multiple layered tilemap renderer
-
[video] The Basics of SmoothStep, a Useful Shader Function in Unity URP
- the video explains the smoothstep curve visually
-
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...
-
[video] rendering numbers single quad
- the video provides an in-depth walkthrough of a debugging vertex ID shader
-
NeuMIP: Multi-Resolution Neural Materials
- the paper presents a neural-network-based approach that is aimed at encoding detailed patterns int...
-
Countering Racial Bias in Computer Graphics Research
- the paper presents racial bias that can be found in the technical language and numerical measures ...
-
[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
-
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...
-
Managing Shader Code Complexity in NVIDIA Omniverse
- the article provides an overview of the Slang Shading language and its use inside of NVIDIA Omnive...
-
Mean Squared Error is Variance
- the article shows how to calculate the variance of a stream of values
-
Baking Neural Radiance Fields for Real-Time View Synthesis
- the paper presents a novel sparse Neural Radiance Grid representation
-
Generating Meshes of a Sphere
- the article presents 4 different ways to generate a sphere mesh
-
Ray Tracing Lossy Compressed Grid Primitives
- the paper presents a method that allows a 5−7× reduction in memory footprint compared to indexed t...
-
Understanding Vulkan Synchronization
- the blog posts provides an easy to understand summary of the Vulkan Synchronization
-
Importance sampling visible wavelength
- the article presents experiments with spectral rendering to find an importance sampled wavel...
-
Interactive Path Tracing and Reconstruction of Sparse Volumes
- the paper presents a technique to allow path tracing through sparse volumes
-
[video] Compositional Neural Scene Representations for Shading Inference - SIGGRAPH 2...
- video recording of the SIGGRAPH 2020 was released
-
NVIDIA Vulkan Ray Tracing Tutorials
- Vulkan Ray tracing tutorials have been updated
-
Guided Visibility Sampling++
- the paper presents a technique to discover a potentially visible set (PVS) of triangles visible fr...
-
[video] Sparkling Grass Lawn in Shader Graph! Unity URP Procedural Material
- the video tutorial explains how to generate a procedural stylized lawn shader
-
Twitter Thread - Valheim rendering performance
- the Twitter thread presents a breakdown of the Valheim rendering pipeline (implemented using...
-
Technically Art: Issue 91 (26.03.2021)
- collection of tech art tweets - covering art style demonstration, material creation, destruc...
-
Wall Cutout in Shader Graph and URP
- the tutorial explains an approach how to implement cutting walls into 3D walls
-
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
-
Screen-Space Reflections Explained
- the article provides an overview of the first steps required to implement screen space reflection ...
-
How to reconstruct an image if you see only a few pixels
- the article provides an introduction to Compressive Sensing
-
Auto HDR Preview for PC Available Today
- the article describes provides a brief overview of AutoHDR
-
[video] Adding Shadow Casting to Grass Baked with Compute Shaders
- the video tutorial shows how to change grass to cast shadows using Unity
-
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
-
ShaderQuest Part 4: Shader Environment Architecture
- the tutorial aimed at Unity beginners explained how shaders are set up and structured
-
Which color scale to use when visualizing data
- the article series provides information about the role of color in data visualization
-
i3D 2021 - Papers Program
- list of all papers that will be presented as part of I3D 2021 in April
-
Soft Foliage Shader Breakdown
- the article presents how soft shading for foliage was implemented
-
Stochastic-Depth Ambient Occlusion
- the paper presents a novel approach to screen space ambient occlusion that accounts for occluded g...
-
[video] Shading the World of Anthem
- the video for the GDC 2019 talk has been released
-
Fitting cubic Bézier curves
- the blog posts discusses an approach for efficiently fitting bezier curves to an existing techniqu...
-
[video] Unity Basics: Triangle Winding, Culling Modes & Double Sided Materials
- the Unity video tutorial explains triangle winding order, how it connects to culling
-
The Rendering of Jurassic World: Evolution
- the article presents a frame breakdown of Jurassic World, a forward D3D11 based tiled forward ren...
-
Visual debugging and profiling
- the article presents an overview of the new debugging features in SHADERed
-
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...
-
Making a Shading Language for my Offline Renderer
- the blog post presents an overview of the custom shading language design for an offline renderer
-
shadertoy - Advanced tricks
- the blog post shows a number of tricks for shadertoy development
-
3D Math Primer for Graphics and Game Development - Free Online
- introductory math book released for free in updated form from the original release
-
Crash Course in BRDF Implementation
- the extensive article provides an overview explaining BRDFs
-
NAUGHTY DOG AT SIGGRAPH 2020
- videos and slides from SIGGRAPH 2020 presentations by Naughty Dog
-
Vulkan SDK Offers Developers a Smooth Transition Path to Synchronization2
- the blog post presents an overview of improvements of Synchronization2
-
New game changing Vulkan extensions for mobile: Timeline Semaphores
- the article presents an overview of Vulkan timeline semaphores
-
Ray Traversal of OpenVDB Frustum Grids
- the paper presents an incremental approach for the traversal OpenVDB frustum grids
-
[video] Differentiable Material Synthesis Is Amazing!
- the video provides a high-level overview of differential rendering papers
-
[video] Nioh 2 DLSS Analysis: AI Upscaling's Toughest Test Yet?
- video comparison of DLSS 2.0 against a native 4k rendering
-
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
-
FXAA Fast approXimate Anti-Aliasing
- the tutorial shows how to implement FXAA into a Unity custom scriptable render pipeline
-
[video] The CRYENGINE Rendering Pipeline
- the Video provides a 90-minute in-depth look at the rendering architecture used in CryEngine
-
Tech Breakdown: Hiding Water in Boat Interiors
- the article presents two methods to hide water from the inside of boats
-
Experimenting with Shader Graph: Doing more with less
- the article presents an alternative way to pack PBR textures into a single 4 channel texture
-
New game changing Vulkan extensions for mobile: Descriptor Indexing
- the article shows how the Vulkan extensions enable bindless indexing on Android
-
Moving The Machinery to Bindless
- the article presents how the bindless binding model has been integrated into The Machinery
-
[video] Shaders For Game Devs
- 10h Video online class about shader development - whole series covers an entire spectrum from basi...
-
New game changing Vulkan extensions for mobile: Buffer Device Address
- the article presents the buffer_device_address (BDA) extension for Vulkan
-
Per-Texel Deferred Lighting
- provides an idea on how to maintain a pixel art style with dynamic lighting in a 3D environment
-
[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
-
[video] GODOT 2D Dissolve Effect : Visual Shader
- the video tutorial shows how to implement a dissolve shader for 2D sprites using the Visual Shader...
-
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
-
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
-
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...
-
More (Robust) Frustum Culling
- the article presents Separating Axis Theorem for OBB (oriented bounding box) against the view Frus...
-
New Vulkan extensions for mobile: Maintenance Extensions
- the blog post presents an overview of Vulkan extensions added as part of Android R
-
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 ...
-
Minnaert For People Who Don't Know How To Minnaert
- article presents how to integrate a custom shading model into the Unity rendering pipeline
-
Vulkan Memory Types on PC and How to Use Them
- the blog post discusses the different memory types and how applications should use them
-
VK_KHR_synchronization2 extension support in our latest developer driver
- the AMD driver now supports the new Vulkan synchronization extension
-
Real-Time Physically Based Rendering and BRDFs
- the blog posts provides a walkthrough of the Cook
-
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
-
Visual Exploration Of Light Transport In Path Tracing
- master thesis that covers a tool for interactive exploration of all contributing paths from a path...
-
RDO texture encoding notes
- the author provides a list of lessons learned and advice that should be considered when working on...
-
Unity SDF Generator – Part 2
- second particle in articles series about SDF (signed distance field) generation with Unity
-
[video] Generate a Mesh Asset Using Compute Shaders in the Unity Editor!
- the Unity tutorial explains how to generate meshes from a compute shader
-
Linear Interpolation
- the article provides a geometric interpretation of linear interpolation, range mapping, and how it...
-
Implementing Bitonic Merge Sort in Vulkan Compute
- Shows how to sort data on the GPU using Bitonic Merge Sort networks using GLSL/Vulkan compute
-
Ice Refraction in Shader Graph and URP
- the article presents how to implement ice shading
-
Coding a fireworks effect
- the video shows how to implement fireworks using fullscreen shader using Shadertoy
-
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...
-
Crystal Shader Breakdown
- the article presents a walkthrough of a stylized crystal shader implemented using Unity Shader Gra...
-
A Voxel Renderer for Learning C/C++
- the article provides an overview of a GPU voxel renderer using raytracing
-
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
-
Stylized rendering for Dungeons of Hinterberg
- the Twitter thread presents an overview of the stylized g
-
Godot 4.0 optimization progress report
- the post presents an overview of optimizations done for Godot 4.0
-
A simple path tracer on the GPU
- the article presents an overview of a simple GPU based path tracer written in Zig
-
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...
-
sRGB gamut clipping
- the article presents an introduction to Gamut Clipping (mapping colors outside of the target colo...
-
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
-
Managing Memory for Acceleration Structures in DirectX Raytracing
- the article presents how to reduce memory usage of bottom level acceleration structure (BLAS)
-
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...
-
Introduction to Computer Graphics
- Video lectures for the Introduction to Computer Graphics Course at the University of Utah
-
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...
-
Wrapping around the uv map in 80 frames
- the article presents an overview of UV mapping - showing different mapping techniques, problems, a...
-
NVIDIA Announces Nsight Graphics 2021.1
- updated tools adds support for inline raytracing and capturing applications that are not frame
-
A Failed Adventure in Avoiding Temporal Anti-Aliasing
- the author provides an overview of anti-aliasing solutions
-
Dissecting the Apple M1 GPU, part II
- the article discusses the progress on an open-source graphics stack for Apple M1
-
[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...
-
All the Pipelines - Journey through the GPU
- the presentation provides an overview of the rendering pipeline from mesh creation to screen outpu...
-
[video] Neon Noir – Raytracing on Mobile
- talk provides an overview of the Crytek rendering pipeline
-
OpenGL to Vulkan
- the article explains the process of porting the NAP creative coding Framework to Vulkan
-
Organic Variety Making the Artificial Look Natural
- the tutorial shows how to create procedural fractals
-
Rendering dunes terrain in WebGL
- the article presents how a sand dune wallpaper was implemented using WebGL
-
[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
-
RenderDoc ‘Ref All Resources’ + Vulkan + Memory Aliasing = Beware
- the post shows how aliased resources can cause problems when doing render doc captures
-
John Carmack - Essays
- collection of articles/ blog post written by John Carmack on a variety of topics
-
[video] Unity: Frosty Icicle Shader with Amplify [URP]
- the video tutorial shows how to implement a shader for freezing objects
-
How stunning visual effects bring Ghost of Tsushima to life
- the blog post shows the interactive particle implementation used in Ghost of Tsushima
-
Step by step recipe for Temporal Anti-Aliasing
- the tutorial shows how to implement Temporal Anti
-
Loading OpenGL With Win32
- the Rust tutorial provides an extensive walkthrough of the steps required to use OpenGL usin...
-
Moving Gears to Tier 2 Variable Rate Shading
- the article presents how VRS tier 2 shading was integrated into Gears
-
Gamedev Pronunciation Guide
- the article contains a list of common graphics programming terms and how to pronounce them
-
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...
-
Summer Fun with Creation Graphs
- the article presents an overview of Creation Graphs and what it enables the user to create in The ...
-
[video] Stylized grass Tutorial || Houdini and Unreal Engine
- the video tutorial explains how to create stylized grass in the Unreal engine
-
Rendering a Sphere on a Quad
- the article explains in detail how to render a raytraced sphere that interacts with other parts of...
-
Intro to Shaders
- beginner-focused tutorial that explains how 3D data is structured in computer graphics
-
[video] Christmas special, making it snow.
- the video tutorial explains how to create interactive snow on terrain and objects using Godo...
-
A Diligent Approach to Ray Tracing
- the article presents a walkthrough of a RayTracing abstraction layer that was implemented fo...
-
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
-
[video] CUDA Memory Model
- the video explains the CUDA memory model - covering the rules of how memory operations on sh...
-
ShaderQuest Part 0: Series Introduction
- Overview for the start of a new shader tutorial series for beginners
-
Ditherpunk — The article I wish I had about monochrome image dithering
- the article focuses on providing a walkthrough of dithering techniques
-
CVTT Texture Compressor Technical Breakdown
- the article provides an overview of the CVTT compression techniques used (DirecXTex fork aims to b...
-
[video] How to texture a procedural object
- the video tutorial explains the fundamentals of texture mapping in ShaderToy
-
[video] Getting Started with Compute Shaders in Unity
- this Unity tutorial aimed at beginners presents a starter guide for compute shaders
-
Unorganized Unit Vectors Sets Quantization
- the paper presents a new technique of on-the-fly quantization for unorganized sets of unit vectors...
-
Render Scale - Scaling Up and Down
- tutorial series about creating a custom scriptable render pipeline in Unity
-
Basic Tessellation setup in URP
- the Unity tutorial provides a starting point for how to use tessellation shaders
-
Graphics Studies Compilation
- collection of articles that provide a breakdown of various games
-
Rendering Astronomic Stars
- the article shows the steps required to use star databases to enable the correct rendering of star...
-
Best shots from 2020
- Collection of impressive screenshots from Games (mostly PC, a few from PS4 Pro)
-
Practical Hash-based Owen Scrambling
- the paper presents an implementation of a hash-based Owen scrambling for Sobol sampling with neste...
-
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 ...
-
Frustum Culling
- the article presents how to implement frustum culling and the effects on CPU and GPU performance
-
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...
-
RDNA 2 hardware raytracing
- the blog posts takes a look at the RNDA ISA and presents how ray tracing has been implemented in A...
-
A perceptual color space for image processing
- the article presents a new perceptual color space
-
States and Barriers of Aliasing Render Targets
- the article presents an overview of D3D12 aliasing barriers, Discard/Clear semantics, and how they...
-
Hallucinations re: the rendering of Cyberpunk 2077
- the article presents a breakdown of a Cyberpunk 2077 frame
-
vk_mini_path_tracer
- Vulkan tutorial that shows how to implement a Path Tracer in 300 lines of C++ using Vulkan compute...
-
Grass Geometry Shader with Interactivity (Part 1, the shader)
- the Unity tutorial explains how interactivity between player and grass can be implemented for geom...
-
How To Create A Coiled Cable Shader In UE4
- the article explains how to generate cables from cylinders
-
to z-prepass or not to z-prepass
- the article presents an overview of what a Z-pre-pass is
-
[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
-
Cameras and Lenses
- the article gives an understanding of how different types of camera and lenses work
-
[video] Glyphs, shapes, fonts, signed distance fields.
- the video tutorial provides an overview of signed distance fields
-
[video] Moving Mobile Graphics - SIGGRAPH 2020 Course
- video recording from all talks in the Siggraph 2020 course in a single video
-
Physically Based Rendering - Phong BRDF
- introductory slides for physically based rendering course
-
[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
-
Shockwave Shader Graph
- the video tutorial explains how to implement a ripple effect
-
Debugging refraction in a ray tracer
- short blog post that provides advice on how to debug refraction in a raytracer
-
Texture Compression in 2020
- the article presents an overview of different compression formats and libraries
-
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...
-
Using Mesh Shaders for Professional Graphics
- the article shows examples of how to use mesh shaders (code examples in GLSL)
-
AMD RDNA™ 2 Instruction Set Architecture
- the RDNA 2 Instruction Set has been released - shows that RDNA 2 supports dedicated instructions f...
-
Radeon™ Memory Visualizer is now Open Source
- AMD released the source code for the Memory Visualizer
-
Softening polygon intersections in Blightbound
- the article shows how fading our transparent objects when getting close to an intersection helps t...
-
Accelerating Unstructured Mesh Point Location with RT Cores
- the paper presents the results of research into using the RTX raytracing hardware for unstructured...
-
[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/...
-
[video] SIGGRAPH 2020 - Large Voxel Landscapes On Mobile
- the talk explains the Voxel-based terrain system used in Roblox
-
Black skin in your stylized dimly-lit video game
- The article presents how important reflectivity of Black skin is for believable results
-
Open Problems in Real-Time Rendering
- the talk from Digital Dragons looks at open questions in rendering
-
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...
-
Particles Color and Depth Textures
- part of tutorial series about the Unity scriptable rendering pipeline (SRP)
-
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...
-
The Spraycan
- the articles discusses how the voxel rendering in teardown uses an 8
-
Linearly Transformed Spherical Harmonics
- the Bachelor thesis introduces Linearly Transformed Spherical Harmonics
-
Memory types of discrete GPUs
- the article explains a different kind of memory that exists
-
Intel View in Mafia III
- the article presents how the effect was implemented that allows objects to be colorized/silhouette...
-
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
-
[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...
-
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...
-
biplanar mapping - 2020
- the post presents a bi-planar mapping as an alternative to tri
-
[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
-
Multiple Importance Sampling in 1D
- the article shows how Multiple Importance Sampling in 1D is used to improve the convergence of sto...
-
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...
-
DirectX 12 Ultimate - Variable Rate Shading
- the presentation provides an overview of Variable Rate Shading (VRS), the different features level...
-
AMD FidelityFX Denoiser
- the presentation explains the ray tracing denoising technique developed by AMD
-
Vulkan Ray Tracing Final Specification Release
- the post explains what changes have been made to the Vulkan raytracing extension since the preview...
-
Exploring ray tracing techniques in Wolfenstein: Youngblood
- the article presents an overview of how Vulkan raytracing has been implemented into Wolfenstein
-
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
-
D3D12 APITrace - Capture and Replay
- the blog posts describes how APITrace can intercept D3D12 applications (even complex AAA games suc...
-
[video] Realistic Clouds - Sapiens Devlog 54
- the dev vlog explains how the 2D billboard based clouds are implemented
-
[video] Devlog 1: How we built the toon shading | Open Projects
- the devlog presents a walkthrough of the implementation of a toon shader
-
[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...
-
Top Fire Shader Graphs
- the article presents three different approaches to archive a fire effect using Unity
-
d3d12 - Vulkan
- unrolled Twitter thread presenting an overview of differences between D3D12 and Vulkan
-
Technically Art: Issue 76 (20.11.2020)
- collection of tweets related to VFX, shaders, and game art
-
CasCmdLine - Few Technical Details
- brief article that shows how to create a D3D11 device without a window
-
Practical Tips for Implementing Subsurface Scattering in a Ray Tracer
- the article presents techniques to improve Subsurface Scattering (SSS) implementation based on the...
-
Frostpunk Heatmap
- the Unity explains how to implement a heat map view to visualize the temperatures in Buildings
-
Resource uniformity & bindless access in Vulkan
- the article provides a brief overview of different kinds of array indexing types in shaders
-
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
-
Retro CRT Shader — A post processing effect study
- the article explains how to implement a CRT rendering effect using GLSL
-
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
-
Introducing OWL: A Node Graph Abstraction Layer on top of OptiX 7
- article introduces OWL, an abstraction build on OptiX 7
-
The Bright Side of Ray-Traced Global Illumination in Unity
- the article presents the difference between baked, screen
-
Generating meshes procedurally in Unity
- the post explains how to generate a procedural mesh
-
Vulkan Ecosystem & SDK Survey - 2020
- Vulkan survey to gather information about user experience, platform support, and future developmen...
-
[video] Procedural Water Ripples in Unity using Shader Graph Only
- a Unity video tutorial that shows how to implement a water ripple effect
-
Linear Algebra Shenanigans: Gizmo Repair
- the article presents how to resolve issues with movement widget logic
-
[video] SIGGRAPH Asia 2020 – Technical Papers Trailer
- overview of technical papers that will be presented at SIGGRAPH Asia 2020
-
Normalizing the Phong Specular BRDFs
- the paper presents an energy normalization derivation of the Phong lighting model
-
Projective Geometric Algebra
- collection of resources by Eric Lengyel covering geometric algebra (this includes Grassmann algebr...
-
Compute Shaders Rendering One Million Cubes
- the article explains how to use a compute shader to render moving cubes
-
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)
-
Adding support for two-level acceleration for raytracing
- the second part of the blog post series covering raytracing implementation with compute shaders pr...
-
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...
-
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...
-
Technically Art: Issue 74 (30.10.2020)
- collection of tweets related to VFX, shaders, and game art
-
The Elephant on RTX – First Light. (or: Ray Tracing Disney’s Moana Island using RTX, ...
- the author presents an overview of his raytracer setup
-
Multiple Cameras Camera Blending and Rendering Layers
- the Unity article explains how to integrate multiple cameras into a scriptable render pipeline
-
Shader Graph - Stylized Glass
- the shader tutorial explains how to stylized toon glass shader
-
Screen Space Reflections in Blightbound
- the articles explains the pitfalls encountered when implementing Screen Space reflections
-
The Dark Side Of Ray-Traced Ambient Occlusion (RTAO)
- the blog post provides an overview of ambient occlusion and what it approximates
-
Technically Art: Issue 73 (23.10.2020)
- collection of tweets related to VFX, shaders, and game art
-
Raytraced Shadows in Call of Duty: Modern Warfare
- the presentation explains how the raytracing for shadows has been implemented into Call of Duty
-
Surface Gradient–Based Bump Mapping Framework
- the paper presents a new framework for layering and compositing of bump maps from different source...
-
A Tip for HiZ SSR - Parametric 't' Tracing
- the article presents how the precision HiZ tracing logic (used for screen space reflection) can be...
-
The future of RLSL
- the blog post explains the history of RLSL (Rust Like Shading Language)
-
Introducing rust-gpu v0.1
- First public release of Rust-gpu, a new SPIR-V backend for the Rust
-
A Better Way to Scalarize a Shader
- the article provides a brief overview of scalarization and suggests an alternative approach
-
GPU-Motunui
- the post explains the implementation of a path tracer that enables the rendering of the Disney Moa...
-
Watercolour Shader Experiments
- the Unity-based effect presents how to create a watercolor rendering style
-
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
-
Geometry Shaders in URP
- the Unity tutorial provides a brief overview of the rendering pipeline
-
HSV Shader Graph – Hue Saturation Value
- the tutorial explains HSV color space and presents how to implement conversion
-
Blowing bubbles with Shader Graph
- the article presents how to implement the rendering of a soap bubble in Unity
-
[Video] Vertex animation textures, beanbags and boneless animations
- The video tutorial explains how vertex animations can be stored and played back from textures
-
Does subgroup/wave size matter?
- the articles presents an overview of the GPU execution model, how divergent control flow is handle...
-
Framebuffers, WGPU and Rust
- the article explains the terms required to understand the initialization of a webGPU application
-
Hash Functions for GPU Rendering
- the paper presents an evaluation of deterministic hash functions
-
[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...
-
[video] Variance-Aware Path Guiding (SIGGRAPH 2020 presentation)
- SIGGRAPH 2020 presentation that provides an overview of Variance
-
Grass Shader
- the blog post discusses the development of a GPU based grass rendering system
-
[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...
-
Yet Another Stylised Water Shader
- breakdown shows how a Stylised Water Shader was implemented in Unity
-
Scaling Probe-Based Real-Time Dynamic Global Illumination for Production
- the paper presents extensions to the [probe based irradiance
-
sRGB/ACEScg Luminance Comparison
- the blog post presents a comparison between the usage of different color spaces on the results of...
-
Color Grading Playing with Colors
- the 13ths part of the scriptable render pipeline tutorial explains how to add color grading to the...
-
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...
-
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
-
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
-
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...
-
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...
-
Making a Real Time Stylized Sword Aura Effect with Shaders
- the author explains his approach for the design of an aurora shader challenge
-
Borderland between Rendering and Editor — Part 3: Selection Highlighting
- the articles explains how The Machinery implementing for rendering the outline of selected objects...