the video provides a round-table interview with two developers of the team covers which techniques are using ray-tracing implementations, how they are implemented, and what is affected most discusses trade-offs of requiring hardware support as well as next steps
archive / summary
the video explains how to convert panoramic images with a 360-degree view to a cube map presents the fundamentals of the involved coordinate space conversions and related math additionally also presents how to implement the conversion using OpenGL
archive / summary
the post announces that DXIL debugging and raytracing are now supported in RenderDoc shows how DXIL is integrated and existing limitations Ray tracing debugging is implemented using API debug features that are not yet implemented on all drivers additionally, it contains a long list of fixes and improvements
archive / summary
the blog post provides an introduction to the path tracing lectures available from the TU Delft discussed what material is covered and the limitations additionally discusses the technology used to implement the example implementation
archive / summary
the very detailed article covers the moon (physics, appearance, ...) in great detail shows curves of astronomical objects, effects of physics, projections, appearance, and much more each example is accompanied by videos or interactive explorations of the concepts
archive / summary
the paper presents a reformulation of Gaussian Splatting to allow nonlinear camera projections explains the concepts of Unscented Transform and how splatting can be reformulated using the method additionally presents how the method allows the same representation to be used with raytracing implementations
archive / summary
the video provides a detailed introduction to Clay, a C-based layout engine for high-performance immediate mode UI start by explaining the concepts, capabilities, and design goals presents a walkthrough on how to develop a small starter application, showing code iterations along the way all examples are accompanied by various animated visualizations
archive / summary
the blog post presents the difficulty of creating microbenchmarks shows the example in a simple example by looking at the generated code at different levels of the optimization pipeline
archive / summary
the blog post provides an overview of the graphics changes done to the Wicked Engine covers forward rendering, meshlet-based rendering, visibility buffers, shadow rendering, wetness, and more provides reasons, limitations, and performance numbers for the various aspects of the engine changes
archive / summary
the blog post provides a detailed discussion of the adjugate matrix, an alternative form of transform for normals discusses why normals need special handling under transformation visually explains how geometric algebra allows the derivation of this behavior in a consistent framework
archive / summary
the article summarizes the main concepts of D3D12 to provide a high level of understanding covers Resources, Views, Heaps, Sub resources, and different buffer types
archive / summary
the paper presents an investigation into the Monte Carlo rendering method using statistical methods the proposed model does not use any pre-trained data and is instead applied at runtime presents the derivation and comparison against existing denoising models
archive / summary
a paper presents a novel mesh generation model that can generate meshes with up to 64K faces from point cloud data provides an overview of autoregressive mesh generation that is the foundation of the model explains the model development process and presents the results
archive / summary
the website covered a glossary of standard terms found in graphics programming in a single location broken down into Device Hardware, Device Software, and Host Software explains concepts such as Warp Scheduler, Tensor Cores, Cuda, Thread Blocks, and much more
archive / summary
the video presents a look at raytracing quality in various games shows comparisons mainly focusing on shadows and reflections some of the games featured are Cyberpunk 2077, Alan Wake II and Star Wars Outlaws additionally shows the effect of denoising techniques on the quality and appearance
archive / summary
the video provides a detailed walkthrough on the process of rendering water based on the results of a water particle simulation starts from an empty scene, covering mesh generation, raymarching, shading as well as interactions with the environment additionally, it presents how to render foam and bubbles to the water's surface
archive / summary
the article presents an overview of different games that implement refraction into their rendering pipelines compares the different approaches, discussing advantages and disadvantages additionally presents how this interacts with anti-aliasing
archive / summary
the blog post focuses on the visual side of grass rendering in Call of Duty Black Ops 4 shows different stages of the exploration and impact of the various components discusses various hacks to simulate the effect of real-life effects within the restrictions of the runtime grass
archive / summary
the paper presents an image upscaler that is designed to extrapolate from color, depth, and motion vector inputs to a variable number of frames discusses the implementation of the motion estimation, background collection, adaptive rendering windows, and shading correction network modules presents performance and quality against existing techniques
archive / summary
a collection of videos from the Graphics Programming Conference in Breda has been released covers a large number of topics such as Porting Games, Vulkan best practices, Shader Occupancy, Occlusion culling, and much more
archive / summary
the talk presents an overview of the Gigi Platform a tool and code generation that aims to improve programmer productivity by enabling rapid authoring of shader effects shows how the tool was developed, what features it has, and what has been implemented using the platform so far
archive / summary
the talk presents an overview of the rendering pipeline in Tiny Glades covers GPU-driven rendering, sky rendering, GI implementation, shadows, refractions, Depth Of Field, and more
archive / summary
the blog post discusses Godot Light Shaders presents where this type slots into the pipeline and what possibilities it enables presents a walkthrough on how to implement tool shading into the Godot pipeline
archive / summary
the blog post announces the release of Vulkan 1.4 increased guaranteed limits, required extensions, as well as addition presents improvements to copying data while rendering
archive / summary
the article presents a walkthrough of how the author approached optimizing loading issues in Myst IV shows how he detected the bottlenecks, replaced texture loading logic contains a comparison of the performance of various image-loading libraries
archive / summary
the article provides a very detailed look at how a frame in Detroit Become Human is being drawn presents insights into how the shading pipeline is implemented, details into implementation for the various resource passes, vertex formats, interactions with animations, effects implementation, etc additionally shows a flow graph of how a full frame is structured with images of the resources involved in each pass
archive / summary
the example project presents an example of how to use Slang with WebGPU shows how to use CMake integration to compile shaders from slang to WGSL (WebGPU shading language) additionally shows how to use the reflection API to generate binding helpers
archive / summary
In the working document, Timothy Lottes records and suggests solutions for GPU programming issues in a compute shader context covers many problematic areas, from performance hints over shader compiler improvements, caching related, buffer access patterns, and much more provides example cases that offer insights into current shortcomings, performance issues, and shader compiler bugs
archive / summary
the article presents how to use RustGPU to compile a compute kernel discusses the implementation details and interactions with the ecosystem additionally presents how RustGPU enables shader logic to be run on the CPU
archive / summary
the article discusses the efficient implementation of Sparse Voxel Octrees presents how to build the required tree structures and traverse the created trees additionally provides advice to improve debuggability, performance, and robustness of the initial implementation
archive / summary
The article presents the new Fragment Pre-pass hardware implementation available in upcoming Arm GPUs explains how the technique works, what it enables, and what are the limitations additionally, it discusses best practices for performance and shows some performance numbers
archive / summary
My list of recommendations for books Covering Computer graphics, engine design, algorithms, collision detection, as well as knowledge management contains resources for beginners as well as advanced programmers
archive / summary
A summary of the chapter Differentiable Graphics with Slang.D for Appearance-Based Optimization included in GPU Zen 3 the article focuses on the practical usage of stochastic gradient descent and optimization from beginning to a working minification system for materials
archive / summary
the article presents insights into how to upscale retro pixel art games for higher resolutions than the source material The suggested solution is using nearest for vertical and linear for horizontal
archive / summary
the Vulkan code example presents how to use various modern Vulkan concepts to create compact sample applications presents how to use descriptor management, specialization constants, timeline semaphores, ImGui integration, etc.
archive / summary
the blog provides an overview of changes to the Slang shading system ecosystem Slang is now part of Khronos and adds support for Metal and WebGPU additionally, improved type system, Unicode, as well as atomic support
archive / summary
the article provides a look at various anti-aliasing techniques presents many interactive examples to demonstrate the techniques and allows experimentation with them
archive / summary
the blog post announces the release of a new encode AV1 extension Vulkan Video now provides full decode AND encode acceleration for the H.264, H.265, and AV1 codec additionally presents an overview of the Encode Quantization Map extension and how it allows applications to better control the encoding quality
archive / summary
the talk provides an overview of the GPU-based rendering implementation presents an overview of how the different stages of a frame are implemented covering scene representation, culling implementation, shadow rendering, mesh shading, and more additionally presents an overview of the frame performance
archive / summary
the slides for a talk given at the Graphics Programming Conference 2024 have been released provides an overview of AMD hardware execution patterns, what occupancy is, and how it affects performance the slides don't have speaker notes, so following them is a bit difficult at times
archive / summary
the article provides a high-level overview of how to use AMD profilers to investigate cache miss behavior explains the different available hardware counters and how to interpret the results
archive / summary
the article explains the concept of in-flight frames in computer graphics applications shows how the execution pattern between CPU and GPU requires synchronization additionally discusses how it affects memory usage, latency, and execution performance
archive / summary
the video explains how to set vertex buffers using Vulkan shows the implementation for allocation memory and uploading data for GPU access
archive / summary
the video tutorial explains the theory behind image-based lighting presents how to implement pre-filtering for the diffuse lighting component shows many visualizations of the involved steps
archive / summary
the blog post provides an overview of what has been discussed for changes to WebGPU
archive / summary
the tool allows the visualization of Monte Carlo samplers many different methods can be selected allows the exploration of settings through interactive controls
archive / summary
the article provides an overview of Gaussian Splatting support in V-Ray explains the technique on a high level, advantages, and limitations presents an example of how objects can be added to scanned scenes and interact with the scene around them
archive / summary
the paper presents a framework for volumetric scene prefiltering and level-of-detail rendering to improve geometric fit of voxel approximations, it introduces a truncated ellipsoid primitive shows how the technique allows accurate LoD rendering closely matching the ground truth at all scales.
archive / summary
keen games released a snapshot of their Vulkan Backend implementation code is not compiling as it depends on code that has not been published meant as a reference for others to see how concepts can be implemented
archive / summary
the article explains the changes that have been made to the Nanite-like Virtual Geometry system for Bevy discusses software rasterization, improved LOD selection, memory reduction techniques, as well as performance optimizations provides links to the various PRs and explains these, making it easy to follow along
archive / summary
AMD released a shader toy-like application that allows exploration of D3D12 Work graphs the application is compatible with D3D WARP (aka CPU emulation of D3D12) provides tutorials of different complexity to showcase different capabilities documented source code for all tutorials is provided
archive / summary
the blog post provides a high-level overview of the hair rendering technique used in Dragon Age that uses strand-based rendering presents that 6.5ms (at 30fps mode) and 3ms for 60fps are reserved for hair rendering shows a demo video to present the technique results
archive / summary
the slides discuss the design of the C4 Engine present how the engine has been separated into separate components and what these components do
archive / summary
the presentation shows how to use HLSL Wave Intrinsics explains what Wave Intrinsics are, what they can be used for, and the limitations shows practical use-cases and how to implement example solutions presents the generated code on AMD hardware and discusses pitfalls
archive / summary
the Bluesky thread presents a detailed look at how to optimize a 3x3x3 blur shows different stages of the optimization process published performance numbers for the different optimized implementations additionally presents how to use voxels to visualize the algorithm implementation
archive / summary
the article presents a technique for Order-Independent Transparency the presented technique uses multiple passes over the geometry to generate transmittance coefficients discusses how this turns the problem into an additive shading problem presents the implementation details step-by-step, limitations and possible optimizations
archive / summary
the article discusses the concept of coordinate systems and how it relates to column vs row-major matrices provides into how the misconception is based on old fixed function style OpenGL concepts overview of how matrix and vector convention are disconnected from memory layout additionally shows how the Odin language supports these concepts on the language level
archive / summary
the blog post provides an overview of the process of how procedural vegetation was implemented in COD Black Ops 4 discusses the design process and how different developments across the teams influenced the design of the system provides insights into the noise generation process, placement logic as well as storage considerations
archive / summary
the article goes into detail how to implement a floating point (0 to 1) conversion to 8bit and back without relying on division support first presents the simple division method and then derives how to implement the same without division support goes into detail about how floating point precision and ranges
archive / summary
the blog post provides insight into the BC7 texture compression format explains how to best express constant color blocks within the constraint of the format
archive / summary
the article series about the implementation of a CPU rasterizer C++ continues part 4 to 6 are released and add support for 3d transformations, projections, clipping, depth buffer, and perspective correct interpolation
archive / summary
the blog post presents a beginner-focused introduction to shader programming provides an overview of how shaders allow access to GPU resources, execution model, and restrictions shows how classical rendering pipelines with vertex & pixel shaders are used
archive / summary
single header HLSL library for spherical harmonics implements support for L1 (2 bands, 4 coefficients) and L2 (3 bands, 9 coefficients) SH (spherical harmonics)
archive / summary
first release of a single header library for the construction and refit of Bounding Volume Hierarchy contains a generic C++ version as well as an AVX optimized variation
archive / summary
start of a planned 12 part tutorial series on the implementation of a software rasterizer currently available parts covers the steps required to render triangle as well as to interpoliate colors across a triangle
archive / summary
the article presents the findings of researach into compression of meshlet data for reduced memory usage discusses the various techniques and the effects on compression ratios additionally presents how they can be utilized my mesh and amplification shaders to decompress the data at runtime presents the effects on performance
archive / summary
the video provides a look back at the speakers career in the video game industry what they are looking for in graphis developers and programmers for video games in general the QA section provides further insights into what developers are looking for in new hires
archive / summary
the article presents a walkthrough of the development of a painterly post-processing shaders provides an in-depth discussion of Kuwahara filters and extensions shows quality improvements for the various steps of the process additionally presents runnable WebGL implementation of the techniques presented
archive / summary
the spec focues on the mathematical description of the shading model model is a linear blend of a metallic and a dielectric BSDF presents the parameters, derivations as well as visual examples of the visual quality
archive / summary
collection of the author's articles from Ray Tracing Gems published in one place Ray Traced Shadows: Maintaining Real-Time Frame Rates, The Reference Path Tracer Refraction Ray Cones For Texture Level Of Detail, Rendering Many Lights With Grid-based Reservoirs
archive / summary
the article provides an overview of shadowing techniques as they have been used by video games of the past presents examples of the different techniques, including screenshots of these techniques discusses a brief overview of each technique and its tradeoffs
archive / summary
the article provides a walkthrough of quaternions deviations for computer graphics focuses on the formulas and algebra underlying the mathematical model includes a cheat sheet of the covered topics at the end of the article
archive / summary
the paper introduces Energy-preserving Oren–Nayar (EON) BRDF designed for rough surfaces introduces analytical energy compensation and importance sampling via Clipped Linearly Transformed Cosine
archive / summary
the article provides an introduction to the Global Illumination technique called Radiance Cascades focuses on the development of an intuition for the concepts that underly the technique the steps are explained visually with animated examples
archive / summary
the post explains what a device lost event is and how to handle it from WebGPU shows the exposed API and how to react to the events discusses different approaches that can be taken to handle the event additionally provides pointers for Chrome-specific considerations for development
archive / summary
the article provides a detailed overview of matrix multiplication starts with an overview of matrix multiplications discusses Row-major vs. column-major, differences between shading languages then focuses on multiplication ordering, space transformations as well as inversing
archive / summary
the article discusses a technique to render debug fonts without the usage of textures presents how to embed glyph data into shaders and render from instanced draw calls GLSL source code is provided
archive / summary
the video continues meshlet implementation and looks at task shader performance on AMD hardware starts with an overview of the technique implementation and presents the performance problem encountered using the AMD profiler explains how the driver implements task shaders and what causes the performance issue by patching the Linux drivers From there, implement a solution that uses compute shaders to cull meshlets instead of using task shaders presents performance and memory comparison against the native task shader solution
archive / summary
the document explains how vkd3d-proton decides to emulate Vulkan Workgraphs using ExecuteIndirect discusses different trade-offs and design decisions made presents how the implementation compares against native implementations on both Nvidia and AMD many workloads are currently more efficient using this emulation code path than the native driver version
archive / summary
the article describes how to use the native Metal rendering API for Apple Vision devices explains how to interact with the OS for Variable Rate Rasterization based on eye positions, interact with projection matrix shows different techniques exposed to render meshes to the two-eye views presents how to structure the rendering frame architecture to reduce latency
archive / summary
the article announces the release of Work Graphs as experimental Vulkan extensions provides links to the headers, spec, and code samples, as well as compiler support additionally provides a list of current limitations
archive / summary
the article introduces the new features in Reshape, a tool for instrumentation of GPU operations with instruction level validation of potentially undefined behavior explains in detail what AMD Waterfall'ing is, how the tool can detect NonUniformResourceIndex usage updates to per-byte and pixel resource usage, as well as placed resource initialization
archive / summary
the blog post presents two mathematical methods to scale points along a direction the first method uses matrix operations, and the second uses dot products
archive / summary
the tutorial series on Vulkan continues by implementing Graphics Pipeline objects presents the C++ code changes and Vulkan changes required closes with a first triangle being drawn to the screen
archive / summary
the video provides a comparison of different upscaling techniques for Ratchet and Clank Rift Apart tries to match the PC and PS5 Pro rendering quality as closely as possible compares the PS5 Pro upscaler technique against the AMD and Nvidia upscalers on PC
archive / summary
the presentation provides a getting-started look at basic mesh shader implementations discusses effects of meshlets, use-cases, and current technologies using it additionally discusses remaining limitations
archive / summary
the presentation provides a high-level view of the Mesh Shader implementation used on Alan Wake 2 The primary focus is on the culling efficiency that can be achieved through mesh shaders presents the performance effects on different culling steps and the amount of final triangles shows the implementation walkthrough of the mesh shader implementation
archive / summary
the video presents a walkthrough of a Python visualization framework for mathematical expressions shows how to get started with a simple scene to more complex curve visualization over time presents tips for workflows that allow the creation of animations efficiently
archive / summary
the talk provides an overview of instrumentation-based GPU Validation system explains what kind of validation is currently supported, how operations are written in IL agnostic fashion additionally presents how to develop your own features for the system and presents a view into abilities that instrumentation could enable beyond validation (debugging, data visualization, profiling)
archive / summary
intel released the rendering toolkit as open source under Apache 2 the technologies include Embree, Open Image Denoising, OpenOSPRay, and others
archive / summary
the paper presents an overview of 3 methods to sample normal Gaussian distributions discusses the implementation and trade-offs for the presented methods presents a performance comparison of the implementations running on the GPU
archive / summary
the article presents a detailed look at the quality aspects that relate to animation shows the importance of sampling rate for human motion presents the impact of data precision on animation playback additionally, it presents a detailed discussion of animation data sets and develops what is required for high-quality research results
archive / summary
the presentation provides an overview of the difficulties related to the composition of GPU graphics techniques presents how Use.GPU tries to solve the problems by making composition a first-class design goal presents how implementation details require completely different implementations shows solutions to the problems discussed
archive / summary
the paper proposes the use of tetrahedrons as primitives for volume rendering using mesh shaders uses mesh shaders to compute the depths of the front and back faces at the same time when interpolating vertex attributes and passing both depths to the rasterizer stage additionally presents how to use the same idea to implement SDF tracing
archive / summary
the paper proposes an anisotropic specular image-based lighting method that can serve as a drop-in replacement for bent normal techniques derives an analytic formula to determine the two closest and two farthest points from the reflected direction on an approximation of the BRDF confidence region boundary compares the method against bent normal technique and ground truth using the GGX specular BRDF
archive / summary
the blog post introduces the new Driver Experiments this tool allows developers to enable/disable hardware features as well as optimization flags the post explains what features are exposed and what these options control
archive / summary
This paper presents an approximation of the importance based on spherical Gaussians (SGs) for light clusters Each light cluster is represented as an SG light and analytically approximates the product integral of the SG light and a BRDF presents how to use the method to reduce the MC variance for many light scenes
archive / summary
the video presents how to implement the rendering of a shader-based continuous grid system explains how to generate the grid from a shader, deal with antialiasing, vary the grid sizes with distances, and much more the implementation is shown and provided using OpenGL
archive / summary
the talk presents an overview of the approach tech artists use to investigate effects in other developers' works shows how to use various tools, such as RenderDoc, Nsight, Intel GPA, etc. to analyze game content presents an overview of various techniques from games
archive / summary
the blog post covers which sessions AMD will be presenting at the Graphics Programming Conference this November in Breda (Netherlands) brief overview of the content of each talk (Occupancy and Work Graphs) as well as which partner talks will be presented
archive / summary
the video presents a selection of short talks about different techniques and how it was implemented the Gigi framework covers Reconstruct Materials (differential rendering), FFT 1D/2D, Gaussian Splat Viewer, Fractal Generation each section provides an overview of the technique and shows the implementation
archive / summary
the blog post provides a brief overview of the state of Vulkan Device Generated Commands this extension allows applications to write GPU commands from other GPU shaders lists which drivers currently support the extension
archive / summary
NVIDIA released an interactive and free course about learning OpenUSD concepts Broken into modules, it explains the different aspects of OpenUSD in written and video form The provided Jupyter notebook gives the ability to explore the concepts in examples Starts with the basics and develops into more advanced concepts such as animation and layer ordering rules
archive / summary
the paper presents an in-depth description of a system for guiding direct light sampling of scenes with hundreds of thousands of lights describes how the system can use online learning of visibility estimates and how it's used for accelerating volumetric scattering cases additionally provides insights into the production experience and limitations
archive / summary
the blog post discusses the limitations of a classic delta time-based approach for animations explains why the techniques inherently are limited provides a couple of ideas to smooth over the limitations
archive / summary
the blog post presents an overview of the various 8-bit floating point formats shows the limits, precisions, and errors for all possible values in the representations
archive / summary
free course of 12 hours of content on CUDA development presents how to get the system setup, explains the basics of GPU development concepts extends the concepts from writing a first CUDA use-case to optimizing matrix multiplications to a full multi-layer perceptron model
archive / summary
the article discusses how Vulkan Pipeline caches operate presents how multiple threads creating pipeline create contention and how multiple caches can solve the problem additionally discusses which flags are required to create truly independent caches between threads
archive / summary
the blog post introduces the start of the initiative to support SPIR-V in D3D going forward the plan is to support SPIR-V shaders starting with Shader Model 7 release discusses limitations with DXIL, how SPIR-V can solve some additionally, it presents a history of shader intermediate languages
archive / summary
the blog post introduces a technique to decouple the appearance and geometry of Gaussian the approach decouples appearance and geometry through the use of per-Gaussian texture maps presents a quality comparison against other Gaussian splatting techniques
archive / summary
The schedule for the graphics programming conference was released conference will happen in November in Breda, Netherlands contains a mix of talks and courses
archive / summary
NVIDIA released an interactive and free course about learning OpenUSD concepts Broken into modules, it explains the different aspects of OpenUSD in written and video form The provided Jupyter notebook gives the ability to explore the concepts in examples Starts with the basics and develops into more advanced concepts such as animation and layer ordering rules
archive / summary
the article presents how to group API commands in Vulkan through the use of GPU markers presents which extension exists, how to utilize RAII in different languages to manage the state required additionally contains pointers to techniques for coloring the events
archive / summary
AMD has released an Instruction Set reference guide for RDNA 3.5 The guide covers the shader core execution model, various wave execution models, available instructions, and more
archive / summary
the blog post describes the debug build performance of various compilers presents how different code structures allow the compiler to achieve different levels of optimizations shows how C-style vector functions can generate more efficient code compared to C++ abstractions
archive / summary
the video tutorial presents how to implement a progress bar using SDFs implementation is shown using Unity and Unreal Visual Shading languages
archive / summary
the paper proposes a codec designed explicitly for meshlet compression within a mesh shader presents how to find optimal generalized triangle strips on meshlets discusses the lossless compression schema for index data additionally presents a crack-free quantization for vertex attributes performance results are presented, and the code is available
archive / summary
the video explains the shader authoring pipeline for Vulkan applications discusses the different stages involved and how data is passed between stages shows the C++ necessary to compile shaders from text and load binary compilation results
archive / summary
the article presents a detailed look at D3D12 work graph performance on Nvidia hardware shows a comparison of classification & raytracing pass using compute shaders as well as workgraphs uses Nvidia Nsight to collect reasons for the underwhelming performance
archive / summary
the blog post shows how to profile an application with multiple processes using PIX for Windows
archive / summary
the blog post provides a look at different mesh representation formats covering the pros & cons of various volumetric representations as well as implicit representations concludes that for authoring workflows, volumetric representations are now feasible and offer various advantages
archive / summary
the paper presents a new method for the representation of skinned meshes with deformations for raytracing method allows for a compact representation of micro-triangle geometry through the hierarchical encoding of displacements shows how to animate base meshes and apply additional displaced movements on top
archive / summary
the blog post introduces WebGPU-powered puzzles that aim to teach graphics programming different independent units explain concepts and allow users to write and interact with GPU concepts directly in the browser teaches the fundamentals in text and expands during the different lessons
archive / summary
a diagram that visually explains left-handed vs. right-handed coordinate systems additionally presents which concepts are independent of the handedness
archive / summary
the blog post continues the discussion of the Radiance Cascades GI technique presents how to use information from a low number of rays to reduce the number of artifacts as much as possible shows the effect of the different steps and how multiple cascades are combined source code and interactive experiments are available
archive / summary
the blog post presents the effects of combining multiple levels of noise shows this for blue noise, white noise, box noise, and many more additionally, it presents how the demo was made using the open-source Gigi prototyping platform
archive / summary
the blog post presents what is required to write deterministic algorithms discusses algorithmic, multithreaded, and cross-platform considerations shows how different compiler options and standard library implementation can affect the results
archive / summary
the video provides a summary of how normal maps can be used to augment surface detail presents the derivation of the math that, such as tangent spaces, enables the augmentation additionally presents a method that can be used to approximately detect if a texture contains normal map information
archive / summary
the video presents how to combine polar coordinates, tiling, and blending to create a procedural loading indicator the implementation is shown using Unity and Unreal Visual shading languages
archive / summary
the blog post provides a collection of Khronos talks that happened during SIGGRAPH 2024 provides a link to the slides as well as the videos
archive / summary
the blog post discusses the EDIZ (Error Diffusion Image Zooming) algorithm for image upscaling presents a high-level overview of the technique discuss weaknesses and shortcomings additionally, it presents an implementation of the technique in a code sample
archive / summary
the article presents the authors' findings when exploring Visibility buffers and methods to access UV derivatives presents the different methods, additional texture channels, ray-tracing into cached vertex transforms, and usage of LDS for short-term caching presents code implementations of the techniques and presents quality comparison videos
archive / summary
the author presents his idea for a screen-space shadow technique that relies on Hierarchical Depth Buffers for each shadow-casting light starts with a brief overview of virtual shadow maps and the difficulties of debugging them that lead to the idea
archive / summary
the release adds support for new Vulkan extensions exposes VK_AMD_anti_lag, VK_KHR_calibrated_timestamps, VK_KHR_pipeline_binary and others
archive / summary
the blog post provides an overview of the new VK_KHR_pipeline_binary that allows direct retrieval of binary data associated with individual pipelines this extension allows applications to write custom caching, pre-compilation as well as loading mechanisms The article explains what the extension allows, how it's exposed, and considerations when designing a caching system
archive / summary
the paper introduces a new method for precomputing indirect lighting into a novel form of Irradiance Volume It discusses how two approaches, one neural net and one parametric function based on ReLU fields presents performance and memory usage information and presents comparisons against existing solutions additionally discusses the limitations of the technique
archive / summary
the author presents a discussion of how to apply software rasterizing to the problem of hair rendering technique is based on the Frostbite technique from the presentation "Every Strand Counts: Physics and Rendering Behind Frostbite's Hair" discusses the implementation of the steps that make up the technique, such as spline projection, rasterization using edge functions, as well as interpolation information along the strands WebGPU demo and implementation is available
archive / summary
the blog post describes the reasoning why SDL GPU doesn't require a single portable high-level shader language focuses on the complexity of the shader ecosystem, how different formats are converted and required to be across platforms
archive / summary
the video explains how to implement a perspective-animated grid with a color gradient presents how to implement perspective wrap in UV space combines with other nodes to create the effect implementation is shown in Unity and Unreal visual shading languages
archive / summary
SDL GPU abstraction has been merged into the main branch provides a D3D11, D3D12, Metal and Vulkan implementation layer
archive / summary
the article presents the effects of applying ML upscaling algorithms repeatedly to the same image compares against the effect of repeatedly scaling an image using a Lanczos filter
archive / summary
the paper presents an overview of the performance characteristics of synchronization primitives discusses what factors affect performance and presents performance results for these factors presents an open-source testing framework to measure these effects
archive / summary
this proposal discusses an alternative approach to Pipeline caching in Vulkan explains limitations of the existing Vulkan methods presents how the proposed solutions suggest solving limitations and giving application developers more control
archive / summary
the author presents how Geometric Algebra concepts are often defined in the literature and what better definitions look like discusses different concepts such as Inner Products, Contractions, and duals additionally ensures comparing the best possible GA implementation against the best possible matrix implementations for a more fair comparison of the implementations
archive / summary
the D3D12 tutorial presents how to get started with compute shader usage explains the steps required to setup shaders, create the necessary API objects, and execute the shader source code is available
archive / summary
the blog post explains how HLSL shaders compiled for mesh shader usage with Vulkan require special annotations default shader behavior doesn't handle it correctly, and it only fails on AMD without any validation errors
archive / summary
the article discusses a method to allow virtual geometry to be represented in ray-tracing scenes explains issues related to BVH construction and LOD selection shows how to integrate generation logic into loading and runtime frames
archive / summary
the video develops a mental model for 4-dimensional space explores where the space is located and what it represents starts exploring the space via generalization of concepts from 2D to 3D and finally to 4D
archive / summary
the short blog post presents how to use human-readable ISA documentation to decode one CDNA instruction
archive / summary
AMD released ISA documentation for RDNA2 and CDNA ISA additionally, it presents a small example application that presents how to use the released data
archive / summary
the blog post introduces a prototyping programming platform for shader development exposes a way to use a visual node graph editor and HLSL shader nodes for the development of shader techniques allows the export of the developed solution into D3D12 code (more targets will be supported later) the video tutorial presents how to use the system and the debug tools available to implement a box blur technique
archive / summary
the video tutorial explains how to load vertex information from within a Vertex Shader instead of relying on fixed function hardware provides an overview of the concepts of Programmable Vertex Pulling and use cases that are enabled through it implementation is shown using OpenGL
archive / summary
the presentation discusses how to use cluster-based mesh representations to allow transitions between model levels shows how to calculate the cluster representations calculate cluster error metrics to allow LOD selection additionally, it discusses how to integrate support for skinned meshes provides performance numbers for the different stages of the pipeline
archive / summary
the blog post describes an approach to calculating accurate filtering of polygonal shapes with closed-form solutions discusses the underlying theory of the method and implementation
archive / summary
the blog post announces that Rust GPU (compiling Rust into SPIR-V) will transition from Embark to Community ownership a brief overview of the goals and next steps
archive / summary
the article discusses a closed-form solution for polar and singular value decomposition of 3x3 matrixes based on findings from "Isotropic ARAP energy using Cauchy-Green invariants" contains the source code implementation additionally, it discusses how to improve numerical stability
archive / summary
the presentation covers the current state of OpenPBR and the state of integration into MaterialX updates on the state of support in tools additionally provides a look at the upcoming developments
archive / summary
the talk provides an overview of the D3D12 work graph API provides details into how the API is mapped onto AMD hardware
archive / summary
the post provides an explanation of Microfacet Models shows how the reflections are affected by the surface and the view directions presents how this explains the look of reflections on water surfaces as they approach the horizon
archive / summary
the presentations provide a detailed overview of the challenges when implementing Visibility Buffer RenderinVisibility Buffer Rendering discusses why classical rasterization techniques could be limiting on high triangle density and how presents the different challenges that need to be solved when implementing the technique for the challenges, present different possible solutions, discuss tradeoffs, and present performance numbers
archive / summary
the paper presents a technique that allows Harmonic Functions to be sphere-traced directly discusses use cases where the Harmonic Functions can be applied, such as grid shells, surface reconstructions A real-time shader toy demo is provided
archive / summary
the talk presents an overview of the Decima (Horizon Zero Dawn) cloud rendering system covers the different phenomenons that need to be combined to create realistic clouds discusses how to implement and combine the different aspects into a sading and modeling solution
archive / summary
the blog posts documents which extensions have been ratified and included as part of Vulkan Safety Critical clarifies how to provide SPIR-V for use with the validation layer additionally, it presents an update on the Driver support
archive / summary
the paper presents how to detect if a GPU workload is limited by instruction cache misses discusses techniques that can be applied to reduce instruction cache misses shows how to see the effect of the changes using the NVIDIA Nsight Compute tool
archive / summary
the blog post reveals that pix timing captures are internally using SQLite as a storage format provides SQLite code to allow access to the data in the container the provided example code shows different use cases, including comments to describe the functionality of each demo sample in detail
archive / summary
the blog post introduces AMD papers released at HPG (High-Performance Graphics) 2024 covers Real-Time Procedural Generation with GPU Work Graphs, H-PLOC – Super-Fast BVH Construction, HIPRT – A Ray Tracing Framework in HIP as well as DGF – Geometry Compression for Micropolygon Meshes each comes with a short video to summarize the main paper developments and takeaways
archive / summary
the video presents a brief summary of Physically Based Rendering methods discusses the model as presented by Google Filament closes with a comparison against Phon shading results
archive / summary
the video tutorial explains the Vulkan render pass concept shows how to use a render pass to clear the framebuffer to a constant color
archive / summary
The keynote covers the history of computer graphics research (in algorithms, materials) with a focus on techniques used until today discusses a look into the future by presenting techniques of the past that were not successful with current research additionally presents how the user base might influence research directions in the future
archive / summary
the blog post visuall explains floating point quantization techniques presenting 32-bit, 16-bit as well as 8-bit floating point formats explains the concepts in relationship to LLM models
archive / summary
the talk recording discusses a method for calculating ambient occlusion using stochastic depth maps to optimize ray-traced AO presents a quality comparison with different resolutions and different test cases additionally compares against screen space solutions
archive / summary
a collection of links to SIGGRAPH 2024 resources includes courses, talks, posters as well as open source data releases
archive / summary
the Siggraph presentation presents Frostbites' shader authoring solution shows how it allows extensible component replacement, mixing of different implementations, and automatic interpolation logic additionally discusses what worked well, what still needs to be improved
archive / summary
the blog post announces the release of the geometry for the Call of Duty Warzone map in USD format The dataset contains five million meshes, 28 million primitives, and more than one billion point instances license allows use for non-commercial, academic use
archive / summary
the paper presents a method that converts an SDF into a point cloud point cloud is then converted into a mesh surface compares the quality of the new algorithm against existing solutions
archive / summary
the video episode explains how to integrate Mikk TSpace tangent space calculation into the engine discusses the importance of consistent tangent space authoring for good results
archive / summary
the paper presents a new method to apply strokes to lines in a GPU-friendly way presents how to lower filled and stroked Bézier paths into an Euler spiral as an intermediate representation tests and shows the performance of the implementation on CPU and GPUs video and code have been released
archive / summary
the presentation recording discusses the development of the Vulkan ecosystem how LunarG came to deliver the Vulkan SDK, the history of the developments, and ecosystem overview presents a look into the development approach, improvements, and how it worked in practice
archive / summary
the presentation covers the current state of OpenPBR and the state of integration into MaterialX updates on the state of support in tools additionally provides a look at the upcoming developments
archive / summary
the paper presents a concurrent binary tree (CBT) for adaptive triangulations of arbitrary (half-edge) meshes shows how to use a CBT as a memory management construct
archive / summary
the paper presents an approach to BVH construction based on the parallel locally ordered clustering approach (PLOC) and PLOC++ shows how to implement the algorithm in a single kernel launch explains a method to convert the binary BVH into wide BVHs where each parent can have an N number of child nodes
archive / summary
the paper presents a block-compressed geometry format explains the data packing applied, what can be encoded, and how to compress it presents memory comparisons against existing solutions additionally shows how hardware support with ray-tracing BVH builds might reduce memory consumption
archive / summary
the blog post provides an overview of generating a procedural world discusses how biomes, terrain, grass, and flowers are placed additionally shows how they turned the flat world into a sphere
archive / summary
This paper provides a deep dive into Disney's Hyperion Renderer's many-lights sampling system presents how it caches and interpolates light sampling distributions at points throughout space Presents how the approach allows the incorporation of learned visibility estimates into light sampling distributions
archive / summary
the paper presents a voxel scene processing model that allows on-demand production of data during rendering presents how to overlap the work to reduce synchronization and starvation issues shows a way to visualize the execution of GPU cores on a dynamic timeline
archive / summary
AMD released a tool to help measure input to screen latency on Windows users can specify a region to watch for changes; if a simulated mouse event triggers a change in this region, it calculates the latency and records for later analyses
archive / summary
the blog post provides an overview of the author's implementation of Screen Space Indirect Lighting with Visibility Bitmask presents an overview of the technique, discussing tradeoffs of the implementation shows the results in-engine in a test scene and shows the shader implementation in GLSL
archive / summary
the video tutorial provides an overview of the normal mapping technique explains the limitations of vertex and interpolated vertex lighting followed by an explanation of how normal maps allow additional information and how to generate this required data finally, it provides a detailed discussion of the implementation steps using OpenGL/GLSL
archive / summary
the 2-part article series explains how Brixelizer GI (a sparse distance field backed GI solution) limitations affect Foliage geometry part 1 explains the limitations, and Part 2 covers how to extend the system to support Foliage (alpha-tested) geometry the implementation of an additional Alpha cache helps to resolve the problem additionally, it discusses how the system deals with animations
archive / summary
the video presents how to create an SDF for a rectangle using Unity and Unreal effect allows the modification of many parameters, including size, edge thickness, corner radius, and stroke thickness
archive / summary
the article explains how images are represented covers the build-up from single binary images to grayscale and, finally, color images a brief discussion of the concept of resolution, human vision as well as DPI
archive / summary
the paper presents a detailed look at how to use D3D12 work graphs to generate a procedural world shows how multiple generation phases are combined with GPU ray-tracing to create a world discusses how the BVH structure is used to place markers, generate Ivy, marketplace arrangements, as well as ground clutter presents results with performance information
archive / summary
the series of articles discusses how work graphs are now allowed to execute mesh rendering work part 1 how presents the getting started guide through the code sample on basic setup the second part focuses on best practices for performance finally, the last part discusses how to use work graphs to procedurally generate and render a whole game world
archive / summary
A brief blog post discusses what aspects of the new mesh nodes preview for d3d12 can be debugged using Pix
archive / summary
SCALE is a GPGPU toolchain allowing CUDA programs to be natively run on AMD GPUs discusses what hardware is currently supported and how it's achieved documentation provides examples of how to get started
archive / summary
the article discusses a solution to allow GPU instanced and animated models using Vulkan presented solution pre-calculates all bone transformations for all frames of the animations and calculates the sample index during the vertex shader stage
archive / summary
the paper to be presented at SIGGRAPH 2024 presents a technique for rasterizing hair from hair strands since it's based on Hair meshes (which are protected by patents), I did not read it and can't provide a summary ensure to contact your legal team before proceeding to read
archive / summary
the blog post provides insights into the Vulkan variant for safety-critical applications shows the differences between stock Vulkan presents a detailed look at the architecture and how the variant is maintained
archive / summary
the paper discusses the implementation of a compute-shader-based rasterizer specialized for order-independent transparency explains the implementation and choices made presents performance comparison against other solutions additional explains the limitations of the current implementation
archive / summary
the blog post introduces the new AMD library that aims to improve GPU hang debugging allows developers to insert information into the command buffer in case of crashes, it allows to figure out which part of the frame has finished execution and what is still outstanding supports both Vulkan and D3D12
archive / summary
the blog post presents an overview of using Brixelizer for Ambient Occlusion and soft shadows shows performance number and discusses what aspects influence performance concludes with a summary of best-practices to consider when eveluating Brixelizer
archive / summary
the blog post introduces Arm Accuracy Super Resolution this upscaler is based upon AMD FSR 2.0 and optimized mobile GPUs shows performance numbers as well as quality comparison against other solutions
archive / summary
the video provides a comparison to present the improvements done with FSR 3.1 presents a comparison against other upscaling solutions
archive / summary
the video tutorial presents how to combine multiple SDFs in shaders this information is used to implement a lava lamp effect implementation is shown using Unreal and Unity visual shading languages
archive / summary
the video provides an overview of the concept of image barriers explains what kind of hardware-defined memory layout changes might be associated with image layouts presents how to implement the barriers in Vulkan required to solve the Vulkan validator messages for the swap chain presentation
archive / summary
the GDC presentation explains how the toon rendering effect was achieved the game uses a customized UE4 version, and the talk shows which stages need to be modified covers the lighting, cross-hatching, and halftone patterns, as well as how the outlines are applied
archive / summary
the blog post announces the intent to open source DXIL shader validation as well as to support a mode to skip hash validation explains what hash validation is, what the current state is, and what issues arise because of it
archive / summary
The survey paper presents a very detailed look at the state of font rendering discusses a high-level overview of font rendering systems, implementation, and limitations lists a long list of available solutions with brief summaries, as well as what solutions well-known software projects use showing performance tests of different solutions
archive / summary
a new graphics programming-focused conference in Breda, Netherlands The call for speakers is still open till July 31st
archive / summary
the video explains visually step-by-step how the Radiance Cascades technique aims to solve Global Illumination explains the underlying idea based on observations of linear and angular resolution presents results and also shows what the limitations are
archive / summary
X thread with a collection of Spatial Indexing Algorithms covers the pros/cons and what the techniques are typically used for
archive / summary
the video presents how the "Lossless Scaling" mod generates in-between frames for smoother game output explains that the mode only uses color output without any additional meta-data or motion vectors compares the technique against FSR 3.1 and DLSS 3.7
archive / summary
the video tutorial presents how to create a signed distance field for a circle the implementation is shown using Unity and Unreal additionally presents a first overview of different shapes this series will be targeting to create
archive / summary
the keynote presentation discusses the Use.GPU technology presents issues of graphics technology and how the author aims to improve the authoring discusses how the React style has been applied to GPU app authoring provides a walkthrough of the implementation logic and examples shows how to compose shaders
archive / summary
the paper presents a new method to apply strokes to lines in a GPU-friendly way presents how to lower filled and stroked Bézier paths into an Euler spiral as an intermediate representation tests and shows the performance of the implementation on CPU and GPUs
archive / summary
the paper introduces a unified BRDF that allows a consistent expression of smooth to highly rough porous behavior materials compares the results against ground-truth The presented solution might be approximated for real-time usage
archive / summary
the blog post describes a couple of available shader intrinsics that allow the different threads of a shader wave to cooperate starts with simple techniques and increasing complexity
archive / summary
the paper introduces a real-time BRDF model addressing diffraction on rough surfaces shows the improved realism in Unity over the Cook–Torrance model presents a performance comparison against a base Cook–Torrance implementation
archive / summary
the blog post presents how to profile WebGPU applications with Nsight, PIX, and Radeon GPU Profiler The presented solution takes advantage of context sharing and dll interception
archive / summary
the paper presents an approach for incremental re-rendering of scenes it formulates image differences as a residual path integral, solved with importance sampling and path mapping presents speed-ups over previous methods and independent frame rendering
archive / summary
the conference program for the High-Performance Graphics has been released will take place between July 26 to 28 in Denver
archive / summary
the video shows an overview of Technical Papers to be presented at SIGGRAPH 2024 shows a quick showcase of each trailer and a brief summary of the presented approaches
archive / summary
the paper presents a method for the efficient extraction of mesh contours it proposes a simple, flat data structure that is GPU-friendly and uses patches bounded by normal cones and sphere discusses how to generate these patches and improve bounding sphere calculations presents a performance comparison against CPU techniques
archive / summary
the next episode of the Vulkan tutorial series presents how to execute work to the GPU presents how to clear the image to a fixed color and integrate it with the presentation process
archive / summary
new video tutorial series that will cover how to generate procedural shapes and patterns from shaders implementation is shown using Unity and Unreal Engine this video focuses on the reasons why to use the approaches and how to create a pattern with antialiased edges
archive / summary
the video presents an approach to develop an ASCII art shader approach (converts 3D rendering to text) discusses methods, issues of the techniques, improvements and presents results on several different games presents how to map the techniques onto a compute shader execution model additionally presents other techniques that could be built upon
archive / summary
the blog post presents a walkthrough on how to implement a raytracing classification shadow optimization using D3D12 work graphs first discuss an overview of the technique followed by a presentation on how to express this technique using HLSL and D3D12 work graphs
archive / summary
the GDC video presents a discussion of the new work graph features for D3D (also a Vulkan AMD-specific extension exists) explains the issue with the current ExecuteIndirect model shows an overview of the API model and how it aims to solve the challenges presents an overview of a compute shader rasterizer and a runtime GPU scattering system based on the technology additionally discusses the support level
archive / summary
the first blog in a series about CPU optimizations this part presents how different implementations of max between floats can generate very different code presents the effect of branch misprediction on performance and how to use the AMD profiler to detect through hardware counters
archive / summary
the video recording of I3D 2024 sessions covers the following papers Efficient Particle-Based Fluid Surface Reconstruction Using Mesh Shaders and Bidirectional Two-Level Grids, ShaderPerFormer: Platform-independent Context-aware Shader Performance Predictor Transforming a Non-Differentiable Rasterizer into a Differentiable One with Stochastic Gradient Estimation these papers cover a focus on performance from an academic focus
archive / summary
the talk provides an overview of the experimental Triangle Visibility Buffer 2.0 implementation The presented approach uses only compute shaders to write the visibility buffer discusses the pipeline design, different approaches based on triangle sizes, and how performance compares additionally presents which features are still missing compared to hardware rasterization
archive / summary
the paper presents a method that aims to unify microfacets and volumes for light transport purposes the paper shows that both can be expressed as stochastic implicit surfaces (SIS) and, more specifically, Gaussian process implicit surfaces (GPIS) discusses the derivation, representation generation, and tracing aspects of GPIS additionally discusses limitations regarding performance and quality
archive / summary
the blog post presents why the author suggests using box plots over bar charts as the default way to represent performance shows annotated examples of how box plots can express a lot of helpful information in a concise form
archive / summary
the talk presents the system used by EA's Frostbite team to test the rendering engine shows an overview of the current state of the system and why they are the way they are discusses all the complexities and difficulties shows the tooling available and how different tools exist for different use cases additionally discusses trade-offs and development approaches
archive / summary
the video explains the concept of a BVH (bounding volume hierarchy) and presents how it increases the performance of a raytracing implementation shows a detailed explanation and many visualizations of the behavior of the data structure and how to build an efficient implementation presents different heuristics that can be used to order the data for efficient access shows the results and presents performance improvements
archive / summary
the article provides an interactive walkthrough into the implementation of the Raymarching algorithm explains the logic of signed distance functions in 2D and expands these to 3D presents the implementation of a simple 3D raymarching scenes the provided code samples are interactive and can be used to get a better understanding of the presented techniques through experimentations
archive / summary
the second path of the math tutorial series from GDC 2024 extends the dual quaternion knowledge (see last week 338 for prerequisite) starts by developing an intuition for plane representation (normal + distance), difference between positions and directions, and behavior under reflections additionally explains the understanding of homogenous concepts
archive / summary
the presentation presents updates done to the rendering pipeline of the internal engine used for Alan Wake 2 focuses on explaining the technique selection and why the choices were made in-detail discusses the meshlet geometry pipeline and changes to the material system additionally discusses updates on the used transparency models
archive / summary
the video recordings of Noise and Reconstrictions papers from I3D have been released covers FAST: Filter-Adapted Spatio-Temporal Sampling for Real-Time Rendering, Filtering After Shading With Stochastic Texture Filtering, and Cone-Traced Supersampling for Signed Distance Field Rendering
archive / summary
following the REAC 2024 conference, this author composes his 10 predictions on how graphics engine architecture might evolve looks back at the history, current developments and looks into the future additional discusses how mobile requirements vary and how it might indicate a future on consoles and PCs as well
archive / summary
the video recordings for the Rendering Engine Architecture Conference have been released covering a large number of topics from resource management, GPU-based mesh pipeline, testing approaches, and much more
archive / summary
the blog post provides a detailed discussion of implementing meshlet-based virtual geometry rendering into Bevvy discusses how meshlet LODs are calculated, how meshlet culling has been implemented, and how they are rendered without mesh shader support presents findings from different approaches and discusses the pros/cons of the various approaches Additionally, it shows the integration work for supporting systems (depth pyramid generation, material shading, etc.).
archive / summary
the blog post discusses the author's experience learning Vulkan through the development of a small 3d engine presents the approach for keeping things focused and decisions leading to using Vulkan explains the API concepts and how they are used in the engine (shaders, pipelines, queues, etc.) additionally presents how higher-level techniques are implemented inside the engine
archive / summary
the short paper presents how to reformat bezier interpolation using cheaper functions shows the implementation of quadratic, cubic, and higher-order polynomials additionally shows how a GPU implementation could take advantage of hardware linear interpolation
archive / summary
the article presents a geometric and statistical analysis of the PCG2D hash function explains the terminology of random number generators and how they can be mapped onto GPUs visualization of provided using shader toys
archive / summary
the blog post provides a high-level view that explains machine learning concepts for practical usage by graphics programmers presents the individual concepts and how DirectML maps them into compute shaders additionally presents an overview of the different passes that make up the Open Image Denoise implementation
archive / summary
the blog post introduces the release of the first stable release of OpenPBR discusses the importance of the standard and the history of its development MaterialX now contains a reference implementation of the model
archive / summary
the article presents how a rasterizer calculates intermediate values on a triangle explains barycentric Interpolation and explains the cause for common artifacts on PS1-level hardware then derives perspective-correct Interpolation that resolves the artifacts
archive / summary
The videos for I3D paper presentations have been released covering Reducing the Memory Footprint of 3D Gaussian Splatting, SimLOD: Simultaneous LOD Generation and Rendering for Point Clouds additional Deblur-GS: 3D Gaussian Splatting from Camera Motion Blurred Images as well as Light Field Display Point Rendering
archive / summary
the video provides an overview of the OpenGL Ecosystem explains the history of OpenGL and how OS integration compares to Direct3D presents what software layers are involved and which software components enable easier cross-platform development
archive / summary
the paper presents a variance reduction technique for ReSTIR aimed at reducing shadow noise presents a comparison against existing methods discusses side-effects of the technique
archive / summary
extended presentation of the I3D paper presentation discussed last week the paper presents an investigation into applying texture filtering after shading instead of before shading shows comparisons of the approaches and a background into the underlying theory presents guidelines on the tradeoffs and when to use different approaches
archive / summary
the paper presents a way to reformulate SDS (a path with at least a specular, diffuse, specular bounce) paths into a polynomial system explains how to use root finding to solve the paths shows the presented solutions for caustics in a unidirectional ray tracer
archive / summary
the article series extends the voxel rendering implementation to use path tracing discusses and explains the different components of the rendering equation additionally presents the effect of importance sampling for reduced convergence time
archive / summary
the blog post explains the new DirectSR (Super Resolution) API provides a walkthrough of the API and how to integrate it into an existing engine provides an overview and discussion of the different exposed parameters
archive / summary
the blog post introduces the ongoing work of implementing future HLSL versions directly into Clang discusses the expected difference between legacy and future HLSL versions additionally shows the first version of DXC compiled with clang and performance improvement
archive / summary
the latest version of Renderdoc includes a custom and improved DXIL disassembler additionally lists the improvements for SM6.6 feature support
archive / summary
the paper presents a new method that aims to improve hair interpolation from a smaller number of guided hairs presents the theory and implementation of the technique compares against existing solutions in quality and performance
archive / summary
the blog post provides a high-level introduction to general relativity takes the underlying theory and shows how to convert it into code shows a C++ based implementation of the technique
archive / summary
the blog post discusses the streaming system implementation in the Wicked Engine discusses how the data is provided, loading streaming processed in the background, and finalized for rendering additionally discussed techniques to improve streaming information, such as GPU streaming feedback buffers
archive / summary
video of the I3D 2023 Paper session on Light Transport covers Bounded VNDF Sampling for the Smith–GGX BRDF, ZH3: Quadratic Zonal Harmonics and Interactive Rendering of Caustics using Dimension Reduction for Manifold Next-Event Estimation
archive / summary
the paper provides a walkthrough explanation of the different components that define a BSDF (bidirectional scattering distribution function) that defines the shading behavior of a materials covers the underlying theory, explaining the derivation as well as the geometric interpretations
archive / summary
the paper introduces models to solve the reconstruction of irradiance in the vertex-normal space applies the developed framework to hemispherical and cone occlusion to volumetric lighting as well as mitigating light leakage for normal-mapped surfaces' appearance of runtime ambient occlusion shadertoy implementation is provided
archive / summary
the series on voxel ray tracer continues by presenting how to accumulate samples over time with a nonstatic camera explains temporal pixel reprojection, how to deal with sub-pixel blending, and how to improve results with occurring object occlusions
archive / summary
the blog post provides a detailed description for programmers interested in graphics programming explains what the job entails, different specializations in games, and what topics graphics programmers often work on additionally gives insights into the technologies the author recommends to start learning with
archive / summary
the article explains an approach to implementing Sun Beams using Billboarding techniques implementation is shown using the visual shading language of Unity
archive / summary
the blog post presents that the latest D3D12 SDK update introduces support for R9B9G9E5 for Render Target and UAVs explains how the R9B9G9E5 format allows higher precisions compared to half-floats and less memory usage than float formats additionally expressed the importance of verifying hardware support
archive / summary
the video shows how to implement a shader effect that allows objects to change their appearance close to existing depth values in the depth buffer the presented technique relies on a rendering order that ensures the depth values are written before the objects want to read them technique is implemented using the visual shader language of Unity
archive / summary
the video tutorial continues to discuss the implementation of a Vulkan renderer this week's videos explain how to clear the back buffer to a solid color in every frame C++ implementation is shown
archive / summary
the paper presents an investigation into applying texture filtering after shading instead of before shading shows comparisons of the approaches and a background into the underlying theory presents guidelines on the tradeoffs and when to use different approaches
archive / summary
the author presents his view on shading languages and the (lack of) evolution discusses the shortcomings and issues arising from them shows an outlook on why the concept of shading language is outdated and should be retired
archive / summary
the paper introduces a path-guiding method that utilizes an irradiance voxel data structure the presented method is a spatial distribution shows an evaluation of static and dynamic scenes, containing quality and performance
archive / summary
the paper introduces Area ReSTIR that extends ReSTIR to be able to be applied to sub-pixel details presents how to allow the reservoir to integrate with the area for the lens and film shows the technique applied to depth of field and antialiasing
archive / summary
the article continues the series that covers the implementation of a voxel raytracer this week explains the concept of noise patterns and presents the effects using soft shadows explains white noise, blue noise, and stratification additionally, it shows how to temporally apply noise to allow temporal accumulation
archive / summary
the paper presents an improved version of a BSDF developed for micro grain materials shows how it explicitly models height-normal dependencies to summarize shadowing and masking inside the porous layer
archive / summary
the video presents how different types of noise for random number generation can affect the results discusses Randomness/fairness when generating random numbers present how different noises affect stochastic rendering techniques and suggest solutions to common problems discusses FAST noise generator utility and available pre-generated noise patterns
archive / summary
the article provides an excellent overview of the different ways to create root signatures in D3D12 starts with a brief overview of what a root signature is and how it's used then discusses different methods to author, create, decompile, and use the concept presents a brief discussion on how root signatures are used and how other engines handle it
archive / summary
the article discusses how to implement cluster-based mesh rendering using mesh shaders discusses how to set mesh shaders using Vulkan extends the pipeline to use task shaders to execute LOD selection and frustum culling presents performance numbers and how wave utilization is essential
archive / summary
the paper introduces a new neural method to compress BVH for raytracing workloads shows how the technique is designed to be integrated into existing raytracing pipelines presents a comparison against existing solutions on memory and performance
archive / summary
AMD released documentation for the Micro engine and the RDNA 3 ISA
archive / summary
the blog post presents that the Brotli-G (GPU compression library) now allows a pre-condition step that allows further file reduction shows how to use the feature and what image formats are currently supported
archive / summary
the article continues the development of a voxel raytracer by explaining anti-aliasing and soft shadows presents the difference between numerical integration and stochastic integration solvers shows the technique with anti-aliasing first and derives soft shadows as a follow-up
archive / summary
the video tutorial explains the Vulkan command buffer concepts presents limitations that OpenGL had and how Vulkan can solve these shows the command buffer lifecycle, explains memory management presents how to use the API to operate on command buffers
archive / summary
the article discusses the design trade-offs for a shader graph system presents the complexity when integrating with modern complex shading systems shows how Unreal and Unity implement the ideas
archive / summary
the paper introduces the ZH3 format for spherical harmonics that fills the gap between linear and quadratic SHs The proposed solution improves the quality at the cost of a single extra coefficient per channel the source code is provided
archive / summary
the blog post discusses projection methods for spherical videos presents issues with existing methods reverse engineers what apples Methods appears to be doing and how it's able to achieve higher quality
archive / summary
the GDC talk presents a great explanation of Quaternions and expands the concepts to cover dual quaternions presents interactive and visual examples of the different components and operations involved shows issues and limitations with matrix interpolations and how quaternions and dual quaternions can solve these limitations
archive / summary
this blog post covers how to extend a raytracer in a voxel world with support for reflections expands perfect reflection to allow for refraction contains challenges for the reader to develop their understanding further
archive / summary
the paper introduces a method for view synthesis of facial expression captures in 3D views not captured the presented solution is running at real-time rates without relying on machine learning techniques achieved using a layered mesh for view-dependent information and mixing this with view-independent RGBA texture video the included paper presents a summary of the technique, compares it against existing solutions, and discusses the limitations of the approach
archive / summary
the video presents a summary of all the papers that will be presented at the I3D Conference 2024 shows a brief summary of a couple of seconds for each paper papers cover an extensive range of topics, from ML techniques, VR research, upcoming display technologies, new filtering approaches, and much more
archive / summary
the paper discusses a generative model that is trained to generate multiple types of noise and blend between them presents the network architecture, how it has been implemented and improved shows many examples of the generated results
archive / summary
the paper presents a framework to shape rendering noise to optimize samples for perceptual quality and denoising performance shows how sampling patterns can be optimized to take advantage of knowledge about post-processing spatial and temporal filtering characteristics demonstrates how to use the framework on example applications
archive / summary
the video shows the limitations of Nanite from an artist's perspective presents the debug views to explain why vegetation scenes are more difficult for the system to process discusses possible solutions through the use of procedural generations and fallback LODs
archive / summary
the Godot engine is switching the definition of near/far plane, with the near plane now mapping to a depth of 1 and the far plane to 0 this post explains common patterns that are affected by this change additionally provides links to explain why this new mapping allowed significantly improved depth buffer precision
archive / summary
the presentation is packed with detailed information about the process of implementing shader graph support into the Nanite shading model starts with an overview of the system and discusses the steps taken to reach the current support level provides many details on the lower-level aspects and how GPU hardware influences decisions additionally explains how the system has been optimized on PS5 and Series X with console-level access also shows that work graphs for PC enable a new set of optimizations
archive / summary
The Master Thesis is a collaboration with Remedy Entertainment and discusses the implementation of a denoising solution for direct lighting the focus is to find a solution that balances performance and quality to allow real-time utilization of consoles reviews existing solutions and provides evaluation methods to provide analysis capabilities discusses the implementation and tradeoffs done presents performance, memory, and image comparisons of the developed solution against existing solutions
archive / summary
the start of a series of articles covering the implementation of ray tracing for a voxel system presents the initials of light and shadow calculations concludes with challenges to the reader to improve their understanding of the material
archive / summary
the blog post shows how to implement Acceleration Structure compaction using D3D12 this compaction step is run on the GPU timeline and often reduces the memory size required by 40% discusses the necessary API steps, GPU synchronization, and memory management strategies
archive / summary
the article provides a full explanation of the derivation of multiple-importance sampling explains the different components and how to combine them correctly
archive / summary
the article explains how to implement a marching cube compute shader the implementation is shown both in Vulkan and WebGPU compares the performance of both implementations and finds that WebGPU performance is close to native Vulkan
archive / summary
a blog post covering the effect of using C++ final on a ray-tracing demo the author presents the findings with several platforms, compilers, and scenes and presents the performance results
archive / summary
this page serves as a starting point for the articles of the author covering topics such as BVH building series, Probability Theory, CPU Optimization series also contains various articles on Ray Tracing, graphics techniques, and fixed point math
archive / summary
the article introduces how shaders from GPU Profiler captures can now be opened in the GPU Analyzer for more detailed investigation additionally shows UI updates and presents how instruction latency provides more information about where the latency occurs
archive / summary
the video presentation (free login required) discusses the implementation details of Path Tracing within the Alan Wake 2 technology stack starts with an overview of the implementation used (vertex accessing, BVH creation, dealing with dynamic geometry, etc.) shows how Opacity Micromaps are used for alpha-tested geometry from there, explain how Path tracing has been implemented, covering the whole pipeline from shading, shadows, reflections, and reconstruction techniques
archive / summary
the paper presents a method that allows existing non-differentiable rasterizers to be made differentiable explains the underlying technique and how to derive per-pixel stochastic gradient estimation shows how to use the concepts to implement a 3D assets optimization system
archive / summary
the article introduces a specialization for the isotropic distribution of visible normals for GGX-Smith discusses the limitations and implementation source-code for HLSL and GLSL is provided
archive / summary
a collection of summaries about color science aimed at computer graphics artists provides a summary of the physics of color, the human vision, as well as the representation in computer graphics additionally discusses color transformation onto displays
archive / summary
the paper introduces an object space shading method based on per-half-edge texturing (Htex) presents a comparison against existing and shows how a Htex based method helps to reduce texturing seams implementation of ReSTIR GI in object space using Unity is provided
archive / summary
the video explains how to use OpenGL tessellation shaders to implement a dynamic level of detail for mesh based terrain system explains how to setup the data for usage with the shaders presents the shader and C++ code implementation required
archive / summary
the video presents techniques to represent light shafts explains an overview of two existing approaches present an approximation technique that uses 2D planes combined with shadow map sampling and temporal filtering
archive / summary
the blog post explains the Radiance Cascades technique for global illumination shows the different stages of the algorithms and how to implement them for 2D cases source code is provided
archive / summary
the post presents three methods to convert (Quadratic, Cubic) Bézier curves and elliptical arcs into line segments provides interactive examples to visualize the methods An example javascript code is provided
archive / summary
the GDC presentation provides an in-depth view into how the visual stylized shading was implemented covers a large number of topics from Deferred Toon Rendering, Comic Shader, over Global Illumination to Toon Face Shadows and more the game is based on Unreal Engine 4
archive / summary
the GDC 2024 presentation covers the problems with Draw Indirect and how Work Graphs are designed to solve them presents a walkthrough of the API and how AMD/NVidia have started to use the feature additionally introduces DirectSR, the new API that abstracts upscaling techniques behind a command D3D API
archive / summary
the video deep dives into font rendering starts by exploring the True Type Font format showing how to extract the glyphs and the bezier curves that represent them discusses several techniques to render the curves to form the fonts presents issues and solutions for a large number of issues encountered
archive / summary
a new graphics programming conference to happen in Breda (Netherlands) in November currently looking for speaker and master class proposals
archive / summary
the blog post discusses how to implement a continuous LOD system for meshlet-based rendering shows how to calculate the error metric and structure the data for GPU access presents how to select the correct LOD level at runtime A video of the results is included
archive / summary
the presentation provides an overview of the Nanite and Lumen systems shows a high-level look at which parts affect performance and how performance intuition doesn't match the classical rasterization model the whole presentation slide deck is done in the UE5 editor
archive / summary
the video explains the difference between alpha blending and dithered transparency shows sorting issues related to blending order and how dithered transparency solves them presents how to implement the technique using Unity Shader Graph additionally shows the limitations of the technique
archive / summary
the latest version adds support for Slang with Vulkan, additional extensions support, D3D12 Pixel history support, and many bug fixes
archive / summary
the article presents how usage patterns of copy queues to upload and download data from the GPU can significantly affect the amount of stalls discusses the different patterns and presents timelines to show the waits additionally shows how multiple copy queues interact and the importance of copy queue priorities
archive / summary
the blog post describes a method to apply lighting to Gaussian Splats shows methods to reconstruct geometry with normals and how to filter the results additionally discusses limitations and ideas for improvement or leveraging of existing mesh-based solutions
archive / summary
the latest video in the series explains how to create a Vulkan Swapchain explains the different presentation modes additionally shows how to create a view of the different images of the swap chain
archive / summary
the GDC presentation provides an overview of the profiler tools available from AMD presents the updated shader analysis tool, including a preview of the single shader stage mode additionally presents an overview of the raytracing and memory debugging tool improvements
archive / summary
the article presents a walkthrough of how to implement a post-processing effect that emulates Jean Giraud's art style shows how the author approached object outlines, shadows, and lighting patterns provides interactive WebGL implementations that showcase the individual stages of the implementation
archive / summary
the blog post announces that the Windows PIX runtime has been released as OpenSource this includes logic to decode PIX events as well as the runtime logic that writes ETW entries additionally, the team is looking for feedback for a proposed task API for PIX
archive / summary
the article introduces an alternative low discrepancy sampling strategy for circles provides a quick introduction to rejection sampling shows how adaption could be used to sample only within a quad within the disk and still fill the whole circle with samples compares the characteristics of the technique and presents the applications to different shapes
archive / summary
the blog post describes how to use the CUDA Compute Sanitizer to implement a resize-aware memory pool additionally discusses the APIs available to allow memory debugging more insightful
archive / summary
the GDC presentation discusses how the GPU Reshape tool enables GPU timeline validation explains how the validation logic can be written in an API-agnostic manner provides a look at future developments where the same infrastructure could be used for profiling or data debugging
archive / summary
the article provides an introduction to ray marching explains the underlying concept and how it compares to ray-tracing extends the concepts to introduce the various operations (scaling, translations, boolean operations) required to express geometry combines the knowledge to build a fractal object called the Menger Sponge
archive / summary
the presentation discusses mesh shaders and the techniques they enable discusses how to compress index data and how to allow quad source data presents the importance of vertex reuse and meshlet generation for performance
archive / summary
the presentation presents why debugging GPU issues is difficult explains how the AMD Radeon GPU detective presents information to help developers track issues down presents how to use the tool, read the information, and understand the cause of the issue with the information provided
archive / summary
the article discusses updates in the Nvidia developer tools covers new debugging capabilities, improved performance collection, and profiling tools
archive / summary
the blog post describes how to implement a procedural grass system using mesh shaders explains how the grass mesh is described using bezier curves and combined into a grass patch presents how to write the index/vertex buffers for efficient rasterization
archive / summary
the blog post provides a brief overview of how glossy reflection got added to the GI 1.1 release looks at how the denoiser is required to reduce the inherent noise images
archive / summary
the article provides an overview of the announcements AMD made during GDC additionally provides links to the slides and videos of the presentations
archive / summary
the article explains how to approach differentiable rendering for mesh-based rasterization presents the limitations of a simple method and how to achieve it with PyTorch expands the idea to expand the idea with soft probability to solve some of the limitations
archive / summary
the article provides a suggested collection of resources for beginners in graphics programming covers mathematics, working with APIs, and writing shaders
archive / summary
the video provides a brief overview of the difference between physical and logical Vulkan device presents the C++ code necessary to implement the device creation
archive / summary
the video provides a walkthrough of the steps when optimizing a voxel renderer each step is explained and visualized to make it very easy to understand covers a large number of optimizations and, for each, discusses the effect on performance and memory usage
archive / summary
the article provides an overview of the different models available to describe the appearance of a mesh using OpenUSD Explain the advantages and the disadvantages of the available methods
archive / summary
the article provides an overview of all new features available in the D3D12 Agility SDK update covers work graphs, new shader model, accessible memory for CPU/GPU, as well as unifications on shader creation
archive / summary
an overview from Microsft into what work graphs are what possibility it enables, a brief summary of the spec additionally points out the changes since the preview version last year
archive / summary
the article provides an overview of how a G-Buffer classification system for BRDF selection can be authored using work graphs provides performance numbers for the work graph and an Uber shader approach discusses lessons learned, pitfalls, and performance considerations It additionally discusses the open challenges and future developments
archive / summary
AMD provides a list of talks they will be presenting at GDC (starting today) each talk is given a small summary and where it's taking place
archive / summary
the article provides a detailed walkthrough of how to implement Loop’s and Blinn’s font rendering approach from Siggraph 2005 provides an overview of the approach with many visualizations shows how to implement the algorithm using D3D12 mesh shaders source code is provided
archive / summary
the blog post discusses a method for generating uniformly distributed quaternions explains the theory of quaternion and the proposed method to generate random rotations provides an implementation without using trigonometric in C++ SIMD as well as GLSL
archive / summary
the whitepaper presents which tools and optimizations passes in spirv-cross and glslang are available to optimize shaders, taking advantage of knowledge from multiple shader stages shows an example of how vertex outputs can be eliminated if the connected pixel shader doesn't read the attribute
archive / summary
second part in an article series about creating a LODing system that allows per-cluster LOD selection focuses on performance and quality fixes for the proposed solution from part 1
archive / summary
the video provides an explanation of Gaussian Splatting and how it connects to point clouds and nerfs presents the base idea and optimizations that have been applied to speed up the technique
archive / summary
the blog post provides an overview of new features and improvements in PIX additionally presents at which state of support the new D3D12 features, such as shader graph, shader model 6.8, etc.
archive / summary
the article presents a method for efficiently calculating the Cumulative Distribution Function or CDF, for image-based lighting explains the underlying prefix sum algorithms shows how to improve the initial implementation for improved GPU performance the implementation is provided using CUDA
archive / summary
the article provides a brief overview of the rendering engine architecture of the indie game Solar Storm presents how the systems are designed around immediate mode principles shows how the world is built up, shaders are created, and objects submitted for rendering additionally presents a quick look at post-processing and performance
archive / summary
the blog post provides a walkthrough of the author's implementation of grass rendering using compute shaders + indirect draw shows how the instances are generated, animated, and culled, as well as how LODs have been added code samples are presented using Vulkan
archive / summary
the article presents how to implement screen space reflections using a single shader pass starts from a basic technique description and presents how to resolve common issues each step and improvements are visually represented the source code for a Unity shader is provided
archive / summary
the article provides an in-depth look at the Smooth-Minimum operator and its characteristics shows that many varieties exist, and they all have different strengths and weaknesses presents examples of all and discusses when to use the different variations
archive / summary
the article provides an in-depth look at the hardware details of the Snapdragon 8+ Gen 1 GPUs shows the hardware design, compute throughput, performance, cache performance, and much more
archive / summary
the video tutorial explains the concepts related to GPU hardware detection shows how to enumerate connected GPUs, what capabilities they support, and how to pick the hardware that matches the application requirements
archive / summary
the article presents a new driver-level validation for Ray-Tracing implemented by Nvidia discusses what kind of issues can be detected by the system and how they are reported to the developer presents how to enable the system and expected performance overhead
archive / summary
presents a complete walkthrough of the forward rendering model employed by Persona 3 Reload discusses how different effects are combined to create the stylized rendering effects provides an overview of shading, shadowing, and ray-tracing integrations presents how art-driven effects are integrated to improve the visual appearance additionally, it presents how the UI system is integrated
archive / summary
the article explains the concept of Look Up Textures (LUT) shows different use cases with interactive examples discusses 1D and 3D Lookup textures covering examples from Left 4 Dead of how LUTs are used and the possibilities they enable
archive / summary
the article discusses the feasibility of replacing 4X4 Matrix multiplications with Geometric Algebra concepts in a forward renderer presents the implementation of the required concepts and how to replace classical methods discusses conversion limitations when using normal maps additionally, it discusses the amount of instruction required for different operations
archive / summary
Microsoft presents what will be discussed at GDC 2024 Introducing DirectSR (Super Resolution), a new API for the uniform integration of different super-resolution solutions with the same API will be presenting an update on Work graphs and how they will affect GPU programming in the future
archive / summary
the article presents the importance of profiling when optimizing shows a comparison between precomputed sample positions (with a buffer load) and on-the-fly computations
archive / summary
the short video tutorial explains how to create and destroy a surface handle from a GLTF window
archive / summary
the article provides an in-depth discussion of how light behaves, how it interacts with the human visual system, and finally, how paints are made up given the theoretical underlying presents a model to derive a model to represent the mixing of colors discusses how to implement the solver The Python source code is released as open-source
archive / summary
the video recordings of the talks from the Vulkanised 2024 conference have been released covering efficient rendering for mobile, Vulkan synchronization, shader language innovation, practical porting lessons, and much more
archive / summary
the article introduces the Shadeup language that aims to minimize boilerplate code required when authoring WebGPU workloads provides a quick introduction to the various features of the system and how to interact between CPU and GPU code covers basic rasterization as well as compute shader usage code examples are interactively editable for experimentation
archive / summary
the video tutorial explains the necessary steps to ensure that all Vulkan validation messages will be intercepted shows the C++ code implementation required and how to use the debugger to collect additional information when an error occurs
archive / summary
the second part of a video tutorial about the implementation of Caustics using Unreal and Unity The first part explained how to implement an underwater caustic effect this part shows visual issues (noise, edges) from the previous part and shows how to solve them
archive / summary
the Rust-based 2D editor Graphite is looking for Students to join the Google Summer of Code project one of the suggested project ideas is to rewrite the Shader-driven graph UI for improved performance
archive / summary
The paper introduces a machine learning model that generates a set of PBR Textures (albedo, Roughness, Metallic) trained on a locked RGB model to take advantage of existing models discusses how the model was designed, tradeoffs, and common failure cases
archive / summary
the article discusses the new RenderGraph implementation in Godot 4.3 discusses the limitations of the old system and the advantages of the new system shows the implementation of dependency tracking, dealing with sub-resources additionally discusses CPU and GPU performance impact
archive / summary
the blog post article discusses the implementation of a box blur shader presents explanation of Gaussian, Kernels, Separable blurs closes with a discussion of things to do and avoid when implementing a blur shader for good results
archive / summary
the Rendering Engine Architecture Conference is looking for speakers for the 2024 edition post describes what kind of talks are being looked for and the formats of the talks
archive / summary
the course presents an introduction to GPU compute shader algorithms discusses the primitives available how to implement parallel reduction, prefix scan, and radix sort additionally presents a look at optimization techniques
archive / summary
the video provides a history of ant-aliasing techniques used in games discusses capabilities and limitations of the different AA techniques presents in-depth the advantages and disadvantages of temporal antialiasing techniques all examples are presented with videos from games that use the presented techniques
archive / summary
the article explains the extension method to gradient descents called Adam provided implementation is shown in C++
archive / summary
The slides for the talks of the 2024 Edition of the Vulkanised conference have been released 3-day conference covering Vulkan SDK changes, synchronization, common learning mistakes, presentations of integration into larger systems, shading language developments, as well as future looking developments
archive / summary
the video in a series of Vulkan tutorials explains how to create a Vulkan Instance explains the API concepts required to understand code samples are provided
archive / summary
the video tutorial explains how to add surface foam around the edges of objects that intersect the water surface shows how to implement the foam effect and how to limit the effect to the area around the intersection implementation is shown using both Unreal and Unity using a visual shading system
archive / summary
the article presents the authors' work on allowing the DXC compiler to be built into a static library for Linux, MacOS, and Windows additionally presents how to remove it's possible to replace the dependency on DXIL.dll for shader signing
archive / summary
the presentation shows an overview of the Slang shading language presents how it fits into the ecosystem, what features are supported, and what additional capabilities it brings to shader authors shows how the integrated automatic differentiation can be used for different use cases
archive / summary
the video explains Forward+ shading techniques shows how to express frustum culling, how compute shader allows the workload to be expressed additionally presents how to use RenderDoc to visualize the involved data
archive / summary
the paper presents a novel approach to the Point Splatting rendering technique the presented approach uses multi-layered feature maps that are processed with a neural network to generate the final output
archive / summary
the blog post presents a frame investigating into a frame of the game syndicate from 2012 shows the different rendering passes and provides an overview of the techniques used in each pass
archive / summary
the video explains a compression technique developed for height field compression covering quantization, quadtree, delta encoding, as well as linear regression source code as a Godot implementation is provided
archive / summary
the blog post describes the observer correlation and coupling that is introduced into computer graphics through the use of RGB rendering explains physical definitions of terms and how the rendering definitions introduce these inherent limitations compared to spectral definitions
archive / summary
the blogpost discusses the changes AMD made to LLVM these changes might indicate hardware changes coming for the upcoming RDNA4 generation
archive / summary
the video introduces a new Vulkan tutorial the video focuses on the introduction of the audience, software/hardware requirements shows how to set up Vulkan and create a window
archive / summary
the article presents updates in HIP (Heterogeneous-compute Interface for Portability) Raytracing implementation presents how multi-level instancing allows reduction of memory usage additionally discusses BVH construction speed improvements
archive / summary
the video provides an in-depth explanation of why LOD (Level of Detail) for 3D models helps to improve rendering performance shows how the hardware pipeline is organized, what data GPUs are optimized, and how different workloads cause different bottlenecks explains all stages of the pipeline involved and provides additional reading sources
archive / summary
the article presents the start into a series of explaining BC (DDS, Block Compression) formats this part shows how to build a working BC4 compressor explains each step and discusses the limitations of the presented techniques
archive / summary
the new Vulkan extension allows developers to express local dependencies between sub-passes so that drivers can stay on-chip memory for tiled hardware blog post explains the extensions, how to post existing applications to use the new extension
archive / summary
Khronos released two new SPIR-V extensions the first extension guarantees reconvergence behavior to require the behavior many programmers' intuition assumed to work additionally, a new extension allows correct divergence handling within a quad the blog post explains the previous issues and how the extension solves them
archive / summary
the blog post describes the history of Portals and BSP trees expands the ideas to more modern concepts and suggests the applicability of GPU based solutions
archive / summary
the article presents issues with moving averages and suggests using binomial averages instead shows data examples to highlight the issues and explain in frequency domain why they happen
archive / summary
the article shows how PIX can be used to debug WebGPU applications shows what is required to attach PIX, get debug-marker output, as well as frequent issues
archive / summary
the author discusses a method to use indirect drawing to draw a dynamic number of instances of each type on the GPU The article provides an overview of the implementation (with code examples) additionally provides a couple of optimizations and future development steps
archive / summary
the blog post provides a detailed walkthrough of the implementation of a caustics effect using WebGL shows the different elements the effect is made up of and how to simulate the different phenomena intermediate samples are presented as interactive WebGL examples
archive / summary
the article presents an overview of mesh shaders and amplification shaders shows the considerations and constraints on RDNA2/3 hardware showcases the tools available to profile the different stages and identify bottlenecks
archive / summary
the article presents a detailed look at implementing a mesh shader based rendering pipeline each step is accompanied by performance numbers on Nvidia and AMD shader code samples are provided
archive / summary
the author presents an alternative method to calculate the previous frame screen space position given a world space position this technique doesn't rely on projection matrices
archive / summary
the blog post introduces a new GPU-based debugging tool to make finding shader issues easier allows the detection of out-of-bounds access, resource-bound validation, NAN detection, concurrency validation, and more works with Vulkan and D3D12 on both AMD and Nvidia GPUs
archive / summary
the video provides an overview and introduction to machine learning from a game development perspective explaining the standard terms, intuition, building an example network, and finally running the example network using D3D12 the example code is provided
archive / summary
the article presents a method to construct rhombic dodecahedral honeycomb elements from an integer grid shows an example of an SDF represented using the method presents how to generate the mesh surfaces additionally presents some ideas on what the method might be used for
archive / summary
the article explains the packing rules for Constant buffers when used with D3D11/D3D12 provides examples of different structures shows visually how the different members are packed into memory
archive / summary
the article provides an overview of GPU sorting algorithms provides high-level comparisons between the techniques links to papers and implementations of the techniques are provided
archive / summary
the article discusses how to implement a printf statement that can be used from a shader presents a workaround that allows HLSL 2021 to convert strings into a char array for writing into a buffer code examples are presented with HLSL and D3D12
archive / summary
the article presents a walkthrough on the steps required to generate simplex noise shows a comparison between texture and function-based noise generation additionally presents steps required to ensure that noise is tileable
archive / summary
the article discusses the portability of different methods to calculate noises/hashes across GPUs comparing methods to calculate, float, int, and functions as well as sampling differences
archive / summary
the video provides an overview of different tessellation modes visually explains where the tessellation is applied and how different modes subdivide differently code examples are provided with OpenGL
archive / summary
the video tutorial shows how to create a water surface through the use of vertex displacement the effect is implemented using a visual shader editor using Unity and Unreal
archive / summary
the article discusses the complexities of using operations on the surface of a sphere presents issues of different encodings and extra difficulties with operations such as rotations, precision, distortions, etc.
archive / summary
the article presents how to accurately calculate the average of a set of quaternions shows issues with a common method, why these errors happen, and how to improve it visually shows the improved method
archive / summary
ACM has released the video recording for the SIGGRAPH 2023 courses a large number of topics such as USD, WebGPU, Vulkan raytracing, and many more
archive / summary
ACM released the video recording of the Siggraph course on the introduction to ReSTIR the full ~3h30 video is available for streaming & download covering from the basics to practical integration into Cyberpunk
archive / summary
the Digitial Foundry interview with a Technical Director and Lead Graphics Programmer from the Alan Wake 2 team discusses engine changes, mesh shader usage, ray tracing design, memory optimizations, etc. the full interview is ~50 minutes long
archive / summary
the video tutorial presents several use cases that vertex offset enables shows how to implement the techniques in Unity and Unreal Engine
archive / summary
the article presents an overview of recent advances in light transport and compute graphics algorithms shows noise reduction techniques, screen space-based GI techniques as well as displacement mapping with continuous LODs
archive / summary
the paper presents a method to estimate HDR EnvironmentMap (Chrome Ball) from a single input image shows how the LDR diffusion model was trained, what insights enable better estimation as well as how to generate HDR sphere source code and example implementation are available
archive / summary
the article presents how different shader constructs are converted into instruction on RDNA2 shows the impact on code generation that small changes can have what can be optimized by today's compilers and what cannot be optimized
archive / summary
the article discusses a technique that calculates the transformation required between a known base and target position applies this technique to a 3D cloth simulation to calculate the shading tangent and normals
archive / summary
the article discusses how to generate LODs using a meshlet-based Directed Acyclic Graph approach talks about the data structure, the approach, and implementation details of the model mentions considerations for choosing meshlet sizes as well as LOD selection using the graph
archive / summary
the video provides a great visual breakdown of the rendering pipeline covers how scenes are represented, how the source triangles are transformed, rasterized, and shaded to finally appear on screen additionally provides a small overview of more recent techniques such as ray-tracing and DLSS
archive / summary
the article provides an overview of different heuristics to choose from when building a BVH for raytracing compares the ray tracing performance of the heuristics in a test scene additionally provides ideas for future research in the area
archive / summary
the article provides a walkthrough of the practical tweaks and tricks used to implement a ReStir-based global illumination system into a research framework discusses the caching strategies, light leaking improvements, and performance optimizations
archive / summary
the article provides insights into how to convert OpenImageDenoise into HLSL compute shaders shows a high-level overview of the technique presents a couple of steps to reduce the performance cost
archive / summary
the blog post is the beginning of a series covering mesh shaders and how they map to the RDNA hardware explains the classical pipeline and how the mesh shading pipeline differs presents which AMD hardware stages are used to implement the stages additional presents how amplification shaders can be used to represent dynamic workloads
archive / summary
the article provides an in-depth look at understanding shader occupancy on RDNA hardware shows what occupancy is, what factors could limit it, and how to observe the actual occupancy presents how to improve occupancy additionally, it presents pointers to detect cases when more occupancy might not be beneficial
archive / summary
the article presents techniques to help identify the performance cost of shaders created from unreal shader graphs shows how to see the generated instructions additionally, it presents a couple of examples to optimize the generated shaders
archive / summary
the article presents a shader function that uses wave intrinsic to calculate interpolation of the result of lane-dependent calculations across lanes shows step-by-step how the shader is structured additionally presents how to take advantage of SPIR-V inline to further improve the generated code
archive / summary
the article provides an overview of the implementation of a render graph implementation presents how the implementation uses versioned resources to structure the order of render passes shows how the execution order of the render graph is established additionally, it discusses how unused render passes are removed
archive / summary
the blog discusses the implementation of Vulkan video decoding to get the first frame of a video shows the steps necessary, from loading a file to unpacking the mp4 to actually decoding a first frame discusses pitfalls encountered along the way additionally, it presents a collection of other resources used to get to the stage
archive / summary
the paper presents a retelling of the Surface Gradient Bump Mapping Framework paper from the author's perspective shows what normal maps are, how they encode information, and what the difference between object and tangent space is discusses issues with blending normals from different sources and how the alternative representation can achieve better-blending results
archive / summary
the blog post discusses how GPU-based animation for large crowds is implemented presents how the animations are structured, driven on the GPU, and acceleration structures for ray-tracing are generated additionally presents how skeleton instancing can be used to reduce animation costs while still allowing object variations
archive / summary
year-end video that discusses the standout graphical games of the year presents demonstrations of the effects of the game-nominated shows the top 3 picks for best-looking games of the year and presents the reasoning for the choices
archive / summary
the blog post aims to introduce and explain the ReSTIR technique with a focus on implementation and intuition instead of the underlying theory shows how to start with a first implementation and expand it to implement shadows additionally shows how to take advantage of temporal and spatial data to reduce noise
archive / summary
the article presents a breakdown of the primary render passes of the Knockout City frame provides a high-level overview of the rendering techniques used, what existing techniques they are based on, and how they modified the techniques to fit the requirements of the game
archive / summary
the blog post collects advice on how to achieve the most stable presentation results when using DXGI presents what flags to set, how to size the queues, and how to make sure the results stay consistent after window/resolution resizes
archive / summary
the blog post presents an overview of the FSR3 SDK improvements shows the debug display modes to help during implementation additionally shows how it's possible to run workloads on one queue to make initial implementation easier
archive / summary
the article discusses several ways to query the driver version and how to interpret the results presents how to query the information with AMD, and Nvidia-specific API and the API standard way exposed by D3D12 and Vulkan
archive / summary
the interview between DigitialFoundry and some of the developers of the developers from Massive provides insights into the implementation of the game discussing raytracing, GI, GPU rendering pipeline, and many more topics also provides into the CPU side structure as well as PSO management
archive / summary
the article presents how to use Simplygon to generate micro-meshes (base structure + displacement information) shows examples of what kind of results can be expected from different settings and how it affects memory usage and quality presents how the way a model has been created can affect the base resolution vs. tesselation amount to achieve high-quality results
archive / summary
the blog provides an introduction to fluid dynamics and rendering the implementation is explained with the growing sophistication of the simulation an interactive WebGL demo of each stage is provided closes with how to apply temperature to color space conversion to enable a first completed fire simulation
archive / summary
the video tutorial explains how to sample textures from a vertex shader explaining the quality difference and how the mesh vertex distribution and the texture content can significantly affect the quality of the result additionally presents the different strategies that are available for the selection of varying texture MIP levels
archive / summary
the blog presents a walkthrough of the author's R&D process when approaching the issue of generation of a scene approximation shows how to analyze the constraints, develop a high-level intuition for the problem, and use this to explore the problem space discusses the different solutions' pros & cons and shows how to start prototyping and iterating through the process
archive / summary
the blog post provides an overview of GPU programming concepts for non-graphics programmers discusses GPU architecture, how to author shaders, how to read/write data, and basics of synchronization For example, d3d11 code for an image converter is provided
archive / summary
the research paper presents the performance impact of different vertex clustering (meshlets) on the efficiency of mesh shaders discusses hardware design/limitations that affect considerations when deciding on cluster sizes discusses different algorithms, providing an overview of the technique, implementation considerations, as well as performance differences source code for the meshlet generation is provided
archive / summary
the presentation shows the complexity of debugging issues that cause crashes that originate from GPU issues provides an overview of available techniques and tools and how to combine them to track down issues explains the steps required to track down example crashes from The Witcher
archive / summary
a small website that allows the authoring of GLSL shaders and running them on a virtual "The Sphere" located in Las Vegas contains a couple of examples as starting points
archive / summary
the article provides best practices to follow when comparing WebGL and WebGPU workloads It presents how to verify the underlying API, output configuration, blend modes, and other aspects that can affect performance additionally presents how to report issues after confirming the aspects are identical
archive / summary
the video provides an explanation of techniques used by rendering systems to reduce the number of objects that need to be drawn to the screen shows how frustum culling is only the first step, expand upon the idea by introducing occlusion culling explains how to use the depth buffer to improve culling further and take advantage of temporal information to further enhance culling results
archive / summary
brief example blog post that presents how it's possible to use DXVK to build a native Linux elf that uses the D3D11 API shows how to integrate the necessary steps into Cmake with a SDL based application
archive / summary
the video tutorial shows how to move computations from a pixel shader into a vertex shader presents two examples and uses them to show the change in visual results when moving from pixel to vertex shading frequency code examples are shown in unity and unreal visual scripting
archive / summary
the blog post shows the release of the new version of the AMD GPU profiler presents the updated UI and how divergence raytracing pipelines can be visualized better
archive / summary
AMD released a sample for DirectStorage that was presented during GDC 2023 the code shows how to use the API and how to compress assets to be able to take advantage of the API patterns
archive / summary
the blog post announces USD integration into the AMD RenderStudio presents how the system allows real-time collaboration between different authoring tools (Maya, Blender, Houdini, RenderStudio) additionally also supports MaterialX into the renderers
archive / summary
the presentation provides an overview of bitmasks and their uses in rendering It covers many applications for the technique (rasterization, font rendering, culling, global illumination, raytracing, etc.) explores the properties and how they are a fantastic fit for GPU programmability and machine learning
archive / summary
the video provides an excellent and detailed overview of the dot product shows how the product is defined in algebraic notation as well as geometric interpretation explains relationships and properties with visual explanations additionally provides practical examples of how to use the different properties and operations introduced in the video
archive / summary
the article presents the issues when creating a color gradient from sRGB and linear color spaces introduces how the OkLab color space is designed to be perceptually linear and allows smoother gradients provides code for the color space conversion
archive / summary
the video explains how to use a geometry shader to render a wireframe overlay on a mesh using a single pass provides the overview of the presented algorithm before showing the OpenGL implementation
archive / summary
the video provides the story of the author becoming a professional graphics programmer discusses the author's view on the path into the industry for graphics programmers, technical artists, as well as general shader artists shows the importance of self-learning, portfolio creation, and the lack of intermediate resources
archive / summary
start of a new shader tutorial series covering vertex shaders starts off with an overview of vertex shaders and how to use them from Unity and Unreal
archive / summary
the video presents techniques used to optimize terrain rendering shows how to compress vertex information to reduce the memory and bandwidth requirements additionally shows the importance of LODs for rendering performance
archive / summary
the article discusses a system to compute shader rasterize large point cloud datasets at interactive rates the detailed blog presents how they solved problems along the whole pipeline covering point reordering, point rejection and hole filling, level of detail selection and calculation, as well as memory usage optimizations additionally presents how the data is expressed and used from the Unity implementation
archive / summary
the article gives some advice on how to get started with graphics programming discusses the complexity of different graphics APIs additionally provides a list of tutorials/blogs and courses that provide a good starting point
archive / summary
a start of a collection of books and resources for (graphics) engine programmers that I recommend covering mathematics, engine architecture, graphics programming, collision detection, software design, as well as knowledge organization
archive / summary
the article presents Phi and the Golden Angle shows how to use these numbers for a point distribution in a rectangle as well as a disk provides a shader toy example to present the effect when using blur kernels
archive / summary
the article provides a visual explanation of what an optimal transport problem is presents how the problem can be solved a lot simpler in 1D extends on this insight to present how a multi-dimensional problem can be sliced and approximated in multiple 1D steps
archive / summary
the article describes the concept of render-bundles and how they can be used to reduce CPU overhead presents what changes are backed into the bundle and how updating referenced resources enables flexibility beyond static scenes code examples and internals are discussed in WebGPU terms but apply to other APIs as well
archive / summary
The author updated his library for spherical harmonics and zonal harmonics added GLSL shader variation and shader toy additionally, the update fixed several bugs and made improvements
archive / summary
the article presents a look into the internals of the gfx-rs wgpu implementation demonstrates the limitations of the implementation in terms of multithreaded uses shows what changes were made to reduce lock-contention and how the implementation might change in the future further
archive / summary
short blog post lists a couple of tricks to use when writing shaders for higher performance additionally provides a small trick on how to reuse data between iterations when using shaderToy
archive / summary
the blog post shows how to use Nvidia-specific intrinsics with D3D11 and D3D12 how to use them from shaders and how to verify that the hardware supports it
archive / summary
the article presents a couple of methods that can be used to read vertex information from shaders shows the more flexible approaches enabled by Vulkan/D3D12 presents how more modern approaches allow data quantization shows the effect of different quantization formats on precision and how to choose which one to use
archive / summary
the article discusses an approach for the calculation of sun-soft shadows the solution uses a 16x16 software rasterize per fragment to establish occlusion presents performance numbers, limitations as well as possible improvements
archive / summary
the video tutorial presents how to use Mesh Optimizer to optimize meshes for faster rasterization shows five different types of optimizations (duplicated vertices, vertex cache, overdraw, vertex buffer optimization, as well as draw simplification)
archive / summary
The I3D conference for 2024 is looking for papers the page lists important dates and the submission process
archive / summary
the tutorial provides a brief overview of matrix operations covers matrix types, how to fill it with data, and how to express different operations
archive / summary
the guide provides a collection of reference materials for different black hairstyles and advice for improving the look GitHub provides reference images, textures, and 3D meshes for the presented hairstyles
archive / summary
the talk presents an insight into the job of a technical artist covers what TAs tend to work on, what they need to know, and how to learn additionally covers how to get started on the journey of becoming a technical artist
archive / summary
AMD released a performance guide that helps developers with profiling work when using UE covers command line options for predictable results, how to create test cases, and enable profiling tool support provides some pointers for getting started with profiling for systems such as Nanite, Lumen, and upscaling additionally provides practical examples to showcase the effect of the optimizations
archive / summary
the 4th edition of the Physically Based Rendering has been released to read on the web for free the book teaches both the mathematical theory and the practical implementation of a photorealistic rendering
archive / summary
a brief blog post that describes what advantages Wave intrinsics can have advises on group sizes and how they can affect code generation
archive / summary
the article provides an overview of the way D3D12 deals with resource descriptors presents how shaders use the RDNA2 instructions use the descriptor when sampling from there, shows how Render/Depth targets are different and only used from the CPU side
archive / summary
video of the Performance-Aware Programming series that presents in real-world terms latency, throughput, and dependency chains aims to develop the intuition of these concepts by explaining the process of doing laundry and showing that the same fundamental ideas apply to accelerate chores
archive / summary
the video presents an overview of the hardware changes in new Apple hardware generations discusses how new hardware features enable better hardware utilization through dynamic shader register usage additionally covers the updates to the hardware raytracing capabilities
archive / summary
the video discusses updates to the profiling capabilities of hardware/software updates presents new views that visualize screen space costs and allow better visualization of hardware counters explains how the new capabilities allow performance issues to be identified with examples
archive / summary
the article provides a breakdown of the GPU scene rendering of Cities: Skylines 2 presents how the scene is drawn and points out performance optimization issues
archive / summary
the video tutorial presents how to extend the generic bevy rendering material to support custom effects shows the process in two examples covers the shader changes, how to bind custom data, and how to use the newly defined material
archive / summary
the video provides an overview of how Ghost of Tsushima rendered grass presents the process of implementing the rendering step by step inspired by the technique
archive / summary
the slides for the advances of rendering presentation have been released proposes a novel approach for BRDF authoring against photograph references covering how to develop the main character shading model and validate the results additionally covers raytracing reflections, transmissions, and related optimizations
archive / summary
Nvidia released a sample that explains how to render Micro-Mesh using both the Vulkan extension and classical compute shaders presents how to read the necessary data all the way to render it shows how to rasterize and ray trace the data
archive / summary
the blog post describes the first public release of the Open Physically-Based Rendering model the model is built upon MaterialX by Adobe and Autodesk the early release that is looking for feedback from the community before the final release in 2024
archive / summary
the article presents the story of the development of a cloud shader that uses raymarching to render a cloud space starts with raytracing, and the reformation of tracing density as the starting point from there, expand the example step by step to implement more advanced capabilities all intermediate stages are presented as interactive examples
archive / summary
the article discusses the implementation details of an efficient method to compute roots of Polynomial functions with high degrees presents an overview of the underlying method (Bracketed Newton bisection) and the implementation issues related to performance and precisions shows how to use Nvidia's Nsight to identify the performance issues and how to resolve the register spilling problem to improve performance significantly
archive / summary
the blog post discusses the changes in the latest significant PIX release improved application performance, vastly improved raytracing debugging capabilities, and much more also lists breaking changes introduced in the accompanying WinPixEventRuntime
archive / summary
the video shows the visual fidelity of the PC version of Alan Wake 2 presents how the different levels of raytracing affect the visual results contains many insights into what limitations can be resolved with raytracing and what can still be improved additionally presents a brief look at the DSSL upsampling logic being used
archive / summary
the video discusses the nature of hair and the aspects that make it a complex topic to reproduce presents how hair can be represented as shells and builds up the technique step by step additionally presents what issues the technique has and workarounds to reduce the visual impact of the limitations
archive / summary
the video provides a beginner-level view of how a camera orientation can be represented and transform vertices from the 3D world onto the screen explains the concept in OpenGL terms and shows the necessary library calls to create the matrix
archive / summary
part 2 of the animated flag series extends the effect from the previous video adds support for allowing the flag to be rotated additionally shows how to recalculate the normals for improved lighting
archive / summary
the talk presents an overview of linear algebra covering topics from the basics of vectors, complex numbers, operations between vectors, and more shows how intuition developed connects to geometric algebra
archive / summary
the blog post introduces a new series about machine learning that aims to connect different disciplines provides an introduction to machine learning and shows how it can be expressed in shader code
archive / summary
the blog post describes the The Marschner Hair Shading Model focuses on high-level information and develops an intuition for the model additionally provides corrections and extensions for ideas from the original paper
archive / summary
the article presents the importance of tone mapping to reduce color clamping shows visual examples of different tone mapping implementations
archive / summary
the article presents the types of checks available by the NVIDIA Compute Sanitizer shows how to use sanitizers to detect memory access errors, uninitialized device global memory access, thread synchronization hazard detection, and more each example is provided with source code to the issue and how the sanitizer helps to detect it
archive / summary
the article presents a collection of recommendations for descriptor usage on Nividia using D3D12 and Vulkan discusses what are best practices, what should be avoided, as well as pitfalls to avoid
archive / summary
the video presents how shaders are translated between HLSL and the target shading languages explains the limitations of existing solutions and why a custom solution was developed shows how DXC is used as a frontend and the steps necessary to convert to GLSL
archive / summary
the video presents an overview of the RE ENGINE graphics stack shows how shaders/material are authored, how raytracing has been deeply integrated and optimized additionally presents how bindless allowed reduced CPU overhead and shows limitations, risks, and GPU performance impact of the approach briefly covers mesh shaders and visibility buffers
archive / summary
the in-depth article presents how to render a high-quality grid from a shader presents what issues occur when rendering lines commonly shows how to render anti-aliased lines that are free of these common artifacts code is provided for unreal and unity
archive / summary
the article provides an overview of the methods available in UE5 to deal with Pipeline loading presents timings to show the effect of lacking PSO pre-loading discusses the new methods available and how to use them additionally presents what is still missing for a 100% fluent player experience
archive / summary
the video tutorial shows how to animate a flag using vertex shaders step-by-step presents how to develop the effect using Unity and Unreal Engine
archive / summary
the paper introduces a method to reduce the amount of rejected rays for tracing rays following a visible normal distribution function (VNDF) the unbiased method improves variance for highly rough and low-anisotropy surfaces
archive / summary
the article presents the white furnace test discusses what the purpose of the test is and provides a real-life example of the behavior additionally provides a ShaderToy example of the test and also demonstrates how incorrect sampling can be caught using the test
archive / summary
the blog post presents how to set up a book with turnable pages shows how to create the art assets and shaders to enable the effect implementation is shown using unity visual shader graph
archive / summary
the article discusses dynamic resolution scaling and its effect on memory usage presents findings of texture sizes/formats on Nvidia, AMD, and Intel GPUs
archive / summary
the article presents three issues with linearly transformed cosine (LTC) Line Lights presents an improved routine that reduces the required usage of arc tangent calculations
archive / summary
the blog post introduces the new automatic differentiation feature for the slang shading language provides an overview of how it's integrated into the language presents a comparison between tensor and shading languages
archive / summary
the blog post discusses the implementation of WebGPU into the sokol-gfx library shows what issues had to be solved and how the author resolved them
archive / summary
the article provides an overview of the tesselation pipeline explains how it fits into the rendering pipeline and what possibilities it enabled presents how to render cubic bezier splies using tesselation implementation is shown using OpenGL
archive / summary
the paper introduces a level of detail technique for triangular meshes for use with ray tracing workloads proposes a data structure for hierarchically representing triangle meshes, allowing localized decisions for the desired mesh resolution per ray
archive / summary
the blog post shows how to implement a scan-line rasterizer using D3D12 work graphs presents how to implement the rasterization using D3D12 work graphs, showing the C++ and HLSL implementation shows how to split work between GPU threads and how it affects performance
archive / summary
the article discusses the author's development of a real-time voxel rendering and authoring system in Unreal Engine covers the data structure usage, compute shader implementation as well as issues transition between UE4 and UE5
archive / summary
the blog post discusses advice to help debug issues with GPU workloads covers how to track GPU progress, get debugging information from shaders, available tools, etc additionally provides a list of steps to follow when tracking down issues
archive / summary
the article covers how to generate a 4D hypersphere discusses multiple generation techniques presents how to sample 4D noise uniformly
archive / summary
the article discusses ten implementation details to consider when working on a Dynamic Resolution Scaling (DRS) solution covering memory handling, resolution choices, effects on frame timing, debugging advice, as well as UI rendering
archive / summary
the blog post introduces the updated Vulkan documentation website it combines the spec, proposals, samples, shader language information, etc., into one place the blog post provides the reasoning and an overview of where to find the information
archive / summary
the video tutorial presents how to implement a material effect that simulates an old LCD screen effect the effect combines scan lines, vignette fading, flickering, half-tone shading, and flipbook animations implementation is shown in Unreal and Unity Visual Scripting
archive / summary
The master thesis provides an overview of the different trade-offs of volume data structures introduces a method for storing density data in block-compressed textures combined with deduplicating homogeneous nodes shows how this enables efficient flipbook animations
archive / summary
the video provides an overview of the FSR3 frame generation presents the state of FSR related to frame pacing with Vsync and variable refresh rates additionally presents the effect on latency and compares against DLSS
archive / summary
the paper presents a method to incrementally construct a LOD structure for point clouds directly on the GPU and render points as they are still being loaded shows how the tree is built, the interaction between CPU and GPU, as well as a look at the performance
archive / summary
the paper introduces a new method to render Spherical harmonics glyphs efficiently SH glyphs are used to visualize High angular resolution diffusion imaging (HARDI) presents how to intersect the rays, calculate bounding boxes, as well as how to apply shadows
archive / summary
the website presents a collection of USDs and glTF information collection of introduction articles, specification links, as well as supporting tools
archive / summary
the paper introduces the concept of micro grains to approximate layered materials allows the separation of structural properties from their reflectance properties present results, underlying theory, and approximations
archive / summary
the in-depth article discusses noise generation presents a generation approach based on generating in the frequency domain source code and example app is provided
archive / summary
the blog post discusses issues encountered when moving AnKi object visibility onto the GPU covers data layout, the command buffer building, as the occlusion techniques used
archive / summary
This article explains in detail how to render 4D objects in 3D space shows orthographic projection, perspective projection and cross-section techniques to visualize 4D objects many visualizations and code examples are provided
archive / summary
the article discusses Parallax-corrected cube maps and their related approximations discusses issues and limitations of the technique
archive / summary
the article introduces that the Desmos calculator now supports 3D visualizations contains interactive examples to demonstrate the capabilities
archive / summary
the blog post provides a summary of common spaces found in graphics operations covers texture, screen, object, world view as well as Projection Space
archive / summary
the video shows how to sample texture lighting information stored in environment maps using importance sampling shows the underlying math for the different contributing elements also presents how to implement the technique using GSN Composer
archive / summary
the article presents the basic steps for a toon shading implementation provides an overview of the different toon shading techniques covers toon ramps, cel-shading, lighting, and extensions such as shading ramps
archive / summary
The paper presents a combination of Resampled Importance Sampling (RIS) and Projected Solid Angle Sampling (ProjLTC) for many area lights. provides a method of improving the efficiency run-time as RIS with a lower error shows the comparison between previous methods
archive / summary
the paper introduces a new approach to perform acceleration structure traversal and intersection tests against micro triangles texture space implementation is using nonlinear rays as degree-2 rational functions present performance and memory usage additionally discusses the effect of floating point precision
archive / summary
the blog describes how to compress the Gaussian splat SH data by using clusters and color palettes shows the effect on memory usage as well as quality
archive / summary
the article provides an in-depth discussion about how WebGPU is implemented within Chrome shows how the different implementation layers communicate presents a look at bugs found during the research process and possible attack surfaces
archive / summary
the blog post describes the importance of considering the total runtime when calculating performance characteristics discusses how failing to do so can skew the results towards a more positive conclusion
archive / summary
the article provides a brief overview of the FSR algorithm implementation discusses how the frame generation interacts with the underlying native APIs as well as the state of the UE5 plugin integration
archive / summary
the video explains BC texture compression covers how the compression format works and the differences that exist explains guidelines on which format to use for different use cases additionally also covers SRGB color space and explains when/how to use it
archive / summary
the paper introduces a new method for the triangle mesh reconstruction from an SDF representation The presented method is based on the insight that each SDF sample represents a spherical region generates an initial mesh and then shrinks the shell using a gradient flow approach
archive / summary
the article presents improvements to using floating point atomic operations if all inputs have the same sign additionally discusses how half and double floating point numbers might be operated on with uint atomics
archive / summary
the article presents how to implement Worley/Voronoi noise starts with Voronoi shapes and expands to noise additionally presents how to animate the noise
archive / summary
the article presents a set of differences between WebGL and WebGPU covers clip space, synchronization, mip-generation, canvas handling, and more
archive / summary
the latest version of the raytracing analyzer adds support for visualizing the rays in the scene allows each ray to be visualized, heatmap information, and ray types presents how to analyze performance given the provided information
archive / summary
the latest edition of the Memory Visualizer adds improved support for resource aliasing additionally adds support for post-crash analysis
archive / summary
the article presents changes in the latest AMD GPU profiler update improved work graph, instruction search, output merger state visualization as well as shader hashes
archive / summary
the blog post provides an introduction to the Gaussian Splatting rasterization technique discusses the technique, data collection, training as well as downsides of the technique
archive / summary
the blog post provides a visual introduction to Raymarching builds up from simple spheres to animated shapes and concludes with more complex terrains all examples are provided as javascript and GLSL code examples that are fully live and editable
archive / summary
the article provides a brief overview of alpha blending and weighted averages additionally shows a simple technique to create a perspective effect
archive / summary
the article discusses how to compress the data for the Gaussian Splats technique for reduced memory usage presents how to re-order data for spatial coherence, compressing data relative to a local reference point discusses how to compress splat data as textures and the effect of different BC compressions on the visual quality and memory reduction
archive / summary
the series of blog posts covers floating points and fixed point representations for numbers discusses different representations for numbers, how to estimate precisions and ranges shows how floating point numbers are expressed in hardware and how to implement common mathematical operations
archive / summary
the video presents an overview of virtual texturing discusses texturing concepts and how to represent textures using tiles shows visual presentations of the variations of texture resolution required and how it affects which tiles of textures are required implemented for N64
archive / summary
the 2024 Vulkan conference Vulkanised is looking for speakers the blog post discusses topics being searched for, what is required for a talk proposal, as well as applicable submission deadlines
archive / summary
the latest edition of the GPU Zen books is looking for authors the blog post lists some recommended topic, answers to frequently asked question as well as deadlines
archive / summary
The presentation covers the development of a new material model based on Slaps, Operators, and Trees explains what these three concepts represent and the issues they aim to resolve shows the implementation details, data storage, and integration into the rendering pipeline additionally presents how to integrate visualization for tool purposes
archive / summary
The article provides an overview of ray tracing rendering concepts shows a summary of different methods such as Ray Marching, Cone tracing, and photon mapping discusses how it fits into the rendering pipeline as well as what phenomenons it enables to be simulated
archive / summary
The blog post describes a brief overview of the Gaussian Splatting technique how it compares to previous techniques additionally discusses memory and performance of the demo application
archive / summary
The article discusses a technique to implement atomic min/max operations on HLSL (that doesn't support it natively) presents how to map floats into uints and reverse the mappings
archive / summary
The blog post shows the importance of thinking in gradients Consider acceptable input domains and output ranges to prevent errors and unexpected results Utilize periodic functions, trigonometry, dot products, and exponentiation for various shader effects and measurements
archive / summary
The article introduces how to encrypt/decrypt are methods to allow reversible changes to data shows how to generate cheaper models than cryptographical methods to solve specific problems expands the concepts to present a method that allows grouping and shuffling in a stateless manner provides source code for a couple of examples of the presented techniques
archive / summary
The video presents a comparison of 3D Gaussian Splatting for Real-Time Radiance Field Rendering against Instant NeRF techniques discusses a summary of the technique and how it can achieve the results without using any neural networks
archive / summary
The video provides a discussion of ocean simulation and shading presents an overview of the theory, mathematics, and practical considerations for implementation additionally presents a look at the shading models for water surfaces
archive / summary
The article presents a brief discussion of Aliasing in computer graphic presents how the sampling patterns cause the artifact additionally presents techniques to resolve the artifacts
archive / summary
The presentation provides a detailed look at how the rendering API for HypeHype was rewritten for a modern mobile architecture discusses a large spectrum of topics from API design approach, memory API, data update frequency shows in detail how the draw operations are represented for the most efficient rendering performance presents performance numbers on PC and various mobile hardware
archive / summary
The presentation covers the terrain rendering methods used in previous Call of Duty and shows the shortcomings discusses how the new method virtual texturing method improves upon the issues shows the implementation details as well as new capabilities that have been enabled
archive / summary
The article presents the steps necessary to use the GFXReconstruct on Android how to capture the information and replay it at a later date
archive / summary
The video tutorial contains a high-level overview of the profiling tools available for Cuda workloads shows an example of how to use the tools to identify a cude performance issue
archive / summary
The article presents a new D3D12 work graph sample to demonstrate how to classify screen space materials presents a high-level overview of the demo application additionally presents how the Radeon GPU Profiler can visualize the performance of work graph applications
archive / summary
The article explains the Tencent tree rendering system explains how tree information is compressed, automatic LODs are generated, as well as how GPU-driven rendering techniques are used for efficient rendering provides videos to show the LOD transitions as well as comparison against (older versions of) Nanite
archive / summary
the article presents a robust solution to resolve self-intersection issues with secondary rays the proposed solution works by calculating error bounds and offset the starting point to lie outside of these bounds presents methods to reduce floating point numerical issues through using the suitable coordinate space and operation ordering HLSL and GLSL implementations are provided
archive / summary
the blog post provides best practices for shader performance covers generic shader advice, as well as vertex/pixel/tesselation/compute specific advice
archive / summary
the video presents a deep dive into the technical aspects of Starfield covering ship geometry details, materials, lighting, cities, landscapes, character details as well as reflections additionally, look at the loading structure, loading times, and brief frame-rate discussion
archive / summary
the article presents how to use geometry shaders from OpenGL provides an overview of what geometry shaders are and how they can be used to overcome some vertex shader limitations implements a simple shader that calculates normals for a displaced plane first expands the implementation for billboarding, explaining the math and the implementation
archive / summary
The article provides an interactive explanation and exploration of Bezier curves presents how the curves are represented and controlled allows the user to change settings and interpolation settings to explore the effects on the curve
archive / summary
Video recording of MaterialX-related developments in the virtual town hall meeting covering OpenPBR, MaterialX shader editor, MaterialX in USD, and many more topics
archive / summary
Blog post explains the different compute shader semantics shows the difference between SV_DispatchThreadID, SV_GroupThreadID, SV_GroupID and SV_GroupIndex
archive / summary
The simulator provides the ability to experiment with different factors that affect the vsync effect presents the effect of vblank intervals, CPU and GPU time differences, and how it affects frame stability and latency
archive / summary
The presentation and source code for the screen space shadows used in Days Gone have been released shows the effect, covering the implementation, and also discusses optimizations The code is released under the Apache License
archive / summary
The paper introduces a Ray-aligned Occupancy Map Array as an alternative to BVH-based ray tracing shows how to generate the data structure from a single rasterization pass and compute-based processing comparing against Distance Field and Hardware Ray Tracing
archive / summary
The paper presents a global illumination technique based on radiance cascades Radiance Casdaces allow the storing and calculating of radiance fields by decomposing them into multiple ranges (from near-field to far-field) with asymptotic scaling The paper discusses the data structure, implementation, and how the presented technique is used in Path of Exile 2
archive / summary
the slides cover the difficulties of VR and what is required for a good user experience presents what hardware features the PS5 GPU supports to improve the results shows how raytracing was integrated into the rendering pipeline and an overview of the overall rendering pipeline covers how the sky rendering was implemented, introducing the mie approximations used additionally presents how multiple weather skys are implemented using multiple sets of lookup textures that are blended
archive / summary
the article discusses the concept of focal length, presenting how different definitions of focal length are used for other aspects explains the underlying optics concepts to clarify the meaning discusses Nominal focal length, Pinhole focal length as well as Effective focal length
archive / summary
the video explains how mirror balls enable the representation of 360-degree views focuses on the derivation of the mathematics of the approach and how to deal with projection bling spots additionally presents several demos and use cases of mirror sphere projections
archive / summary
the article presents how to use MTLFunctionStitchingGraph to allow the creation of a final shader from multiple pre-compiled pieces at runtime shows how to express that functions will be stitched at shader compile time, how to load and stitch the shaders from the API combines everything to show how to use the stitched graph to apply image processing operations
archive / summary
the blog post gives insights into debugging crashes originating on the GPU presents what API level tools are available to track down the range of possible draw calls further expands from there to show how barriers can help to reduce the search space additionally shows how on AMD + Linux native hardware information is available to improve the debugging experience
archive / summary
AMD released a new tool to help with debugging GPU crashes the article provides a brief overview of the tool, what information is available, and how it's to be interpreted additionally discusses the limitations and usage tips
archive / summary
extensive bibliography of more than 3000 rendering papers collected by Wojciech Jarosz from papers, conferences, and own research findings
archive / summary
a combination of three conference presentations recordings from the sony creator event the videos cover VR, Ray tracing, and sky simulation in Gran Turismo 7 Screen space shadows by Bend Studio, as well as ML Research by Haven Studios
archive / summary
the latest version of DXC switches the default HLSL version to 2021 this article presents what number of cases where default behavior changed shows what changed and how the code needs to be adjusted. Presenting quick solutions and more ideal solutions to deal with the changed behaviors
archive / summary
release of a small header helper to implement a basic assert for GPU shader code will trigger a GPU memory exception on purpose to halt the execution helper is meant to be used together with Radeon GPU Detective
archive / summary
the course notes and slides for the ReStir course from Siggraph are available covering from introduction level content to more advanced use cases to the practical implementation in Cyberpunk 2077 video recordings are available for those who registered for Siggraph 2023
archive / summary
a growing collection of content from Siggraph 2023 presentations, talks, slides, posters, and more
archive / summary
the article presents how projection matrixes are expressed in different APIs shows how to adjust the classic projection to reverse the direction of the z projection followed by an explanation of how this matter helps when combined with floating point numbers to improve depth precision significantly
archive / summary
the article presents a way to categorize graphics programmers into four broad groups for each group, discuss what tasks they typically work on and what questions might be asked in an interview additionally provides general advice for graphics programmer interviews
archive / summary
Nsight Aftermath now supports application-specific markers to be inserted and accessed from the crash dumps the blog post provides an example of how the tool shows the information explains how to enable application marker support
archive / summary
the article presents how to create a post-processing effect that simulates the look of CRT TVs the individual steps are explained shadertoy implementation is provided
archive / summary
the article presents how the author organized an online shader programming contest presents how the problems were designed, challenges faced additionally presents how the judgment system was implemented
archive / summary
the video presents a short overview of the new developer features in Nvidia tools the graphics performance profiler now supports sampling profiling additionally covers aftermath debugging and improved Cuda memory profiling
archive / summary
the video presents the theory behind Skydomes and how they compare to sky boxes explains spherical coordinates and how to use them to generate a sphere mesh combines the information to implement skydome rendering using OpenGL
archive / summary
Khronos released a new tool to improve the experience when working with KTX compression the tool allows the changing of settings, exporting of files, and side-by-side live comparisons
archive / summary
the presentation covers an overview of many rendering techniques used in Path of Exile these techniques cover a large number of topics, such as flow fields, decals, subsurface raymarching, bent-normal shadows, waves, and much more additionally presents details about a hierarchical probe system for GI that uses multiple hierarchical levels to approximate GI information with bounded cost
archive / summary
the paper discusses the Shadow Techniques used by Final Fantasy XVI presents the Tiled Deferred Shadow implementation, performance, and quality results the paper discusses how the Oriented Depth Bias technique can be used to replace the traditional Hardware Depth Bias additionally, it presents debug visualization techniques
archive / summary
the first part of a 3 part series that discusses occluding contour rendering first part discusses the issues the second part presents methods to efficiently generate smooth, sensible occluding contours from a triangle mesh and the final part presents suggestions on what techniques to use for which problems and an overview of open research problems
archive / summary
the article presents a discussion of functions calls in shaders covering issues with having and not having function calls discusses how CUDA and ISPC support functions pointers, but GLSL doesn't presenting the costs associated and possible solutions
archive / summary
the blog post provides an overview of leadership topics aimed at new graphics leads lists lessons learned and advice separated by categories covering Hiring, Day to Day actions, Performance Reviews, Advocacy as well as Self-Care
archive / summary
The paper proposes an adaptive sampling technique for efficient Monte Carlo rendering with deep-learning-based denoising The suggested method estimates the variance of neural network outputs with random inputs to drive adaptive sampling methods When combined with denoising post-correction, it significantly accelerates error convergence during rendering
archive / summary
the blog post presents the rendering equation and derives the meaning by following the physical units used explains differences and relationships between the different units
archive / summary
the blog post presents the idea of using decals to drive where post-processing and object-level effects discusses considerations when applying the decals and how to combine them with other effects presents how to use the technique for post-processing shaders and object-level vertex-displacement and alpha effects
archive / summary
the blog post presents the announcement of the formation of an organization for fostering the standardization, development, and evolution of USD to OpenUSD
archive / summary
the article has been updated with improvements covers efficient, conservative projected bounds for spheres as well as AABB presents the implementation and discusses the performance of the presented techniques
archive / summary
Nvidia presents the best practices for asynchronous compute queue work scheduling mentions how expensive workloads need to be to see an advantage additionally mentions patterns that should be avoided
archive / summary
the article presents a method that uses any hit shaders to implement order-independent transparency compares the performance and quality against the closest-hit shader method of the last post
archive / summary
AMD announced the release of a Vulkan extension to support the experimental D3D12 Work Graph concept The extension is called VK_AMDX_shader_enqueue and presents the API, reasons as well as open issues sample application is provided
archive / summary
the blog post announces that the book Real-Time Rendering is now also available in Korean
archive / summary
the article discusses different methods that are available to convert from f32 to u32 data formats losslessly presents use cases and what to consider when choosing between the methods
archive / summary
the article presents an overview of dithering techniques shows how the type of noise influences the effect includes a shadertoy implementation of the presented techniques
archive / summary
the article presents an introduction to the fourth dimension and explains how to imagine mathematically and geometrically accurate 3D objects shows the mathematical foundation the series aims at giving the reader the knowledge to simulate how 4D objects would behave in a 3D world
archive / summary
the article provides a comprehensive overview of game color management and encoding complexities introduces the separation between color and radiometric units additionally also touches on the subjectivity of converting rendered data to displayable via "tone-mapping" operations
archive / summary
the article presents how to render geometry to the six faces of a cubemap from a single draw call explains how to use the VK_EXT_shader_viewport_index_layer extension shows how to use the extension, what kind of hardware support can support the feature additionally shows a high-level performance comparison between the classical approach and the usage of the extension
archive / summary
the blog post shows the talks Roblox will be presenting at SIGGRAPH covers Surface Simplification, Differentiable Heightfield Path Tracing, hair simulation, and much more
archive / summary
the GDC presentation covers geometrical limitations and techniques that can be used to solve the bottlenecks shows how Simplygon can be used to simplify models for improved rendering performance discusses a large number of issues that will be encountered when simplifying common workflows and how to solve the issues
archive / summary
the talk presents is a combination of leadership methods and rendering techniques of God of War Ragnarök covering lightings units, optimization techniques, PS5 Enhacements such as raytraced cubemaps reflections presents optimization appraoches used for shadows, geometry, and how it was tracked
archive / summary
the article provides a list of best practice recommendations for usage of PSOs with D3D12 additionally also presents what patterns are not recommendation explaining why these recommendations are made
archive / summary
small twitter thread that presents how to use Quad intrinsics and IsHelperLane to visulize how efficent quad shading is
archive / summary
the quick video presents a method to render an outline of an object by taking advantage of wireframe rendering mode relies on rendering backfaces only and drawing lines that are thicker than 1 pixel presents how to implement the technique using OpenGL
archive / summary
the article explains how most tecture encoding formats operate in blocks, presenting how this reduces time complexity Additional computational complexity of encoding textures depends on the search space of possible endpoint/mode combinations, which can be reduced using heuristics and pruning techniques
archive / summary
Santa Monica Studio release the slides for all GDC 2023 presentations covers not only rendering topics but also AI, Animation, Testing, Art, accessbility and visual scripting
archive / summary
the article presents an in-depth look at SDF font rendering techniques shows issues with common implementations and show how to correctly render on a sub-pixel level discusses how to blend more complex shapes such as Emoji additionally presents how the glyps are cached into runtime dynamic texture atlas
archive / summary
the blog post provides a first high level overview of the micro-mesh technique contains links to nvidia sources that discuss the technique in more detail
archive / summary
the article presents what ReBAR is and how it allows GPU resource to be directly CPU adressable shows recommendations when and how to use the technique addiotinally discusses hardware constraints, and how to validate the availbility
archive / summary
the presentation present a neural network approach used to upscale textures shows an overview of BC7 block compression, explaining different modes available and tradeoffs discusses the implementation of the network, preseting performance and quality
archive / summary
the video tutorial presents how one can use clip planes to cut geomeetry along plane equations presents the underlything math as well as how to implement the feature using OpenGL
archive / summary
the articles continues the exploration into order independent transparency techniques presents the performance and quality of a solution that uses ray tracing discusses advantages, disadvantages and how it compares to other solutions
archive / summary
the video tutorial provides a visual introduction into linear programming explains how to represent problems in a geometric fashion and then presents how to use the simplex method to solve it additionally presents how to solve linear problems using the pulp python package
archive / summary
the articles aims to provide an intuitive understanding of the marching cubes algorithmn starts by explaining how to render a circle on a pixel grid generalizing this method to marching square (the 2D equivalent) and expands it into 3D
archive / summary
the video describes how to use raymarching to draw a lava lamp effect shows how to represent spheres using SDFs and combine multiple shapes implementation is done using Godot
archive / summary
collections of papers from the High Performance Graphics 2023 conference contains the PDFs and where available also the video recordings covers topics such as Acceleration Structures, Primitives, Surfaces & Appearance Modeling, Deep Learning for Graphics, Distributed & Cloud-Based Rendering as well as GPU Mesh Computing
archive / summary
AMD has released FidelityFX SDK that was announced during GDC 2023 the SDK provides a unified interface that aims to reduce the overhead of integrating AMD provides techniques into applications added new Blur, depth of field and lens effects additionally updated existing techniques for the new SDK and introduced improvements
archive / summary
collections of papers from the Eurographics Symposium on Rendering 2023 conference covers topics in Ray Tracing, Neural Rendering, Spectral, NeRF, Materials, Scatter as well as Patterns & Shadows
archive / summary
the blog post presents how to use available D3D12 APIs to create stable applications for profiling purposes shows that SetStablePowerState is only one part of the solution the second part SetBackgroundProcessingMode and shows how it allows drivers to communicate back to the application to allow stable performance results
archive / summary
the paper introduces a tile-based decompression scheme aimed to allow data queries to operate in a single pass provides an overview of compression schemes shows how to combine delta decoding step and bit unpacking step into a single pass
archive / summary
Meta open-sourced their cross-platform library that provides a common graphics API abstraction a couple of examples are provided that show how to use the API
archive / summary
the blog post discusses signed distance fields (SDF) for rectangles as well as how to render borders and rounded corners shows how to apply masking, transformations, and clipping of shapes and effects such as conversion into borders only and inversion additionally shows how to combine multiple SDFs to create more diverse results with a limited number of base shapes
archive / summary
the article provides a breakdown of how to implement a rain effect using Unity visual shaders shows different types of implementation with varying levels of sophistication and implementation difficulty simulates raindrops and rain streaks
archive / summary
the article provides an overview of skeleton animation in-general and then presents how to parse the information from gLTF files shows how to combine transforms, interpret hierarchical information and apply the data in vertex shaders
archive / summary
the Digital Foundry video provides an overview of the Apple Game Porting Toolkit shows how the toolkit works with several recent AAA game releases additionally presents how to setup the toolkit for use
archive / summary
the video tutorial presents how to render a skybox using OpenGL explains the theory of the technique and the implementation covers considerations such as culling, rendering order, and positioning
archive / summary
the video tutorial presents how to build a road network using a spline system discusses how to extrude a road mesh from a spline and create junction meshes presents how to calculate tiling UVs that follow the density of the bezier changes
archive / summary
This article discusses a code sanitizer in CUDA that is similar to one used in C++ The tool can detect race conditions, memory violations, uninitialized memory access, and thread synchronization issues.
archive / summary
the article provides an in-depth study of a Diablo IV frame rendering on PC presents the different stages and passes of the frame additionally contains a section of some technical ticks & tricks that were employed from art and programming
archive / summary
The paper introduces a new method for representing scattering with varying particle sizes using uniform parameters The method combines Henyey-Greenstein and Draine's phase derivation The paper provides an analytic evaluation of the method The quality of the method is compared to other methods
archive / summary
the video shows an humerous overview of what is required to model a camera, with functioning lenes, filters etc shows the difficulties and complexities that camera's following a real-world model face finally shows a number of images that got generated using this method
archive / summary
the article dicusses how to use signed distance functions to render a circle show render a circle with antialiasing, drop-shadows, and edge borders.
archive / summary
the paper introduces a replacement for bottom-level BVH traversal based on neural network techniques presents performance and quality comparison additionally also shows how the presented technique is view and scene dependent
archive / summary
the Siggraph 2023 course notes discuss the challenges faced related to water rendering on Avatar: The Path of water gives an overview of the challenges faced, a solid foundational background for the underlying models presents practical implementation strategies used additionally presents several unsolved problems
archive / summary
the video explains the concept of convolution functions/filters starts with distinct distributions and generalizes from there into continuous functions develops two separate ways to visualize the computations and show how they allow different questions to be answered more neatly
archive / summary
the paper introduces a method that enables micro-poly geometry for raytracing workloads geometry is preprocessed, clusters formed and simplified into a compressed hierarchical level of detail representation presents how using clusters enables fast BVH building in the appendix discusses in detail how to select clusters to be guaranteed crack-free between different clusters
archive / summary
the blog post announces the first public release of a new D3D12 feature called Work Graphs shows how this feature enables GPU shaders to spawn further GPU work from the GPU timeline presents an overview of the spec additionally, it discusses which samples are available at this time
archive / summary
the AMD guide provides a more in-depth look at the practical use of D3D12 Work Graphs presents how to get started and the building blocks of the programming model additionally, it presents a section on tips & tricks to help during the development (guides for tracking down issues, best practices, etc.)
archive / summary
the blog post announces support for the new d3d12 work graphs feature in the preview version shows the first level of debug support and discusses what is coming in the future
archive / summary
another part of the glTF rendering series part focuses on how to interpret the scene hierarchy and flatten it for rendering
archive / summary
the video tutorial presents a walkthrough on the integration of a real-time fluid simulation shows how the physical model is translated into shader code implementation is shown using Unity C# and shader code
archive / summary
the talk discusses the design of the Task Graph architecture used by Activision covers how to author tasks, design iterations, interactions with the memory allocation systems additionally presents how it interacts with multi-threaded command recording
archive / summary
the presentation slides explain the improvements done to decoupled shading discusses how decoupled shading enables improved visual stability presents how the technique has been implemented by using Shadels that reduces the limitations of overshading of previous iterations of the technique show how to generate a PrimiteID texture from rasterization as a replacement for position texture maps additionally shows how the material system has been designed to enable utilization of the new shading method
archive / summary
the paper presents a new method to render glittery materials introduces a new statistical method to calculate the number of glints for each pixel source code and a Unity implementation demo are available
archive / summary
the article presents an overview of line extraction techniques discusses line theory and types presents Screen-Space Extraction as well as Geometry-Based (Mesh Contours) discusses limitations and considerations of each technique additionally gives recommendations on when each technique should be used
archive / summary
the article presents a discussion of the limitations of metal hardware related to barriers across thread groups also discusses the complexity of the current compute ecosystem across platforms
archive / summary
the paper introduces a novel importance sampling algorithm for the GGX microfacet BRDF presents an explanation of the method and how it compares to the Heitz method code implementation is provided
archive / summary
the presentation covers the development story of the Far Cry shader system shows how over multiple games, the architecture was iteratively improved to solve the D3D12 transitions focuses on how the PSO design was approached by making all PSO information known during build time presents techniques to reduce PSO hitching by skipping draw calls, introducing optional variations, and allowing fallbacks
archive / summary
the talk covers how the author designed a new rendering architecture aimed at mobile hardware presents how an iterative API Design was utilized covering the resulting solution and reasons for the design decisions much in-depth advice to consider for the best performance in different mobile GPUs
archive / summary
the article presents how a LUT (Look Up Table) can be used to apply a color transformation to convert a daytime scene into a nighttime presents how to express a color transformation into a texture and how to apply it from a shader discusses implementation considerations and how to reduce color banding
archive / summary
slides covering Screen Space Indirect Lighting with Visibility Bitmask presents how bitmasks are used to track visibility along the visibility horizon show how this allows you to handle objects with thickness better additionally shows performance and image results
archive / summary
the blog post covers a high-level overview of topics covering Diablo IV graphics techniques discusses the guiding principles, the interaction with tech art shows how HDR enables an improvement in visual quality additionally provides an overview of resolution/refresh rates on consoles as well as graphics options
archive / summary
the presentation presents how to convert the D3D12 shader for use with metal presents a shader converter tool that converts DXIL into metal shader IR this tool also supports the conversion of tesselation shaders into mesh shaders additionally presents performance pitfalls and advice to bind resources to the pipeline efficiently
archive / summary
the 2-hour interview discusses the history of the development of Graphics APIs discusses the origins of APIs, how OpenGl and Direct3D came to be tradeoffs, design decisions, and many insights into the history of computer graphics
archive / summary
the keynote presents an overview of the state of the art in neural rendering covering image reconstruction, texture compression, mesh simplification, and others presents a look at what might be coming next in research and open areas for further development
archive / summary
the video tutorial explains shader programming aimed at newcomers explains how to create digital art using shaders showing the fundamental concepts, tools, and mathematics required along the way the example is provided using shadertoy and portrayed from an empty shader to the final result
archive / summary
the article provides a tutorial on how to use CUDA for beginners presents how to set up a project and an overview of the basic programming model additionally presents how to interop with OpenGL
archive / summary
The paper presents a new approach for constructing Bounding Volume Hierarchies (BVH) by leveraging sampling techniques the aim is to create higher quality BVHs to be maintained under real-time dynamic conditions and minimize the need for refitting The presented approach involves ordering input primitives using a space-filling curve and building a Cumulative Distribution Function (CDF) for sampling
archive / summary
the tutorial provides common scaling, stretching, and centering patterns when using pixel and UV coordinates in shaders explaining the process for newcomers and discussing common pitfalls
archive / summary
the paper presents a rederivation of diffusion models with more straightforward concepts of mixing and de-mixing of images previous models relied on advanced knowledge and practice of statistics such as Langevin diffusion or score matching
archive / summary
the short video presents how ray-sphere intersection points behave when expressed with imaginary numbers
archive / summary
the video recording ACM SIGGRAPH Symposium on Interactive 3D Graphics and Games 2023 for Ray Tracing has been released the talks covered are the following: Subspace Culling for Ray-Box Intersection Performance Comparison of Bounding Volume Hierarchies for GPU Ray Tracing Accelerated Photon Mapping for Hardware-based Ray Tracing Importance-Based Ray Strategies for Dynamic Diffuse Global Illumination
archive / summary
open, digital, and freely accessible conference covering many rendering engine architectures is happening on June 5th and 6th talks from HypeHype, Activision, Ubisoft, Wētā Digital, and more the talks cover modern mobile rendering, task graph architecture, decoupled rendering, shader pipeline, and much more
archive / summary
the video tutorial explains two different techniques of frustum culling presents how to implement culling in object and clip space code implementation is provided for OpenGL
archive / summary
slides and videos from the Khronos Osaka Dev Day have been released covers how to read and write SPIR-V, use the Vulkan Validation Effectively as well as what tools are available
archive / summary
the article presents how the terrain in Deus Ex is quite different compared to other solutions shows how the terrain uses translucent materials to blend between opaque objects and the terrain
archive / summary
the video shows how rotation matrices are defined in mathematics and glm + OpenGL presents how to read a 4x4 matrix as columns matrices to understand the effect
archive / summary
the video explains the effect of the Halton Sequence compared to random and grid sampling shows how to implement the Halton Sequence using GLSL presents the practical effects when applied to image space lighting
archive / summary
the article explains how to create a stylized waterfall effect shows how to integrate SDF objects to interact with the water flow
archive / summary
the paper presents how to construct micro meshes from high-resolution triangle meshes provides an overview of the micro-mesh data structure discusses advantages and disadvantages of the mesh structure
archive / summary
the article provides a formal definition of a Unit Gradient Field compares an SDF to a UGF and possible applications presents a visual component to provide further insights
archive / summary
the article presents CPU performance consideration for efficient usage of APIs shows the importance of running the right workloads on separate threads
archive / summary
the blog post describes a new Vulkan raytracing extension that allows the retrieval of positions from a hit shader discusses how applications used to fetch position information manually and how this extension will simplify the logic
archive / summary
video recording for the first I3D conference paper session has been released the three talks are Interactive Editing of Neural Radiance Fields, A Primitive for Animatable Neural Rendering with Interactive Speed as well as Metameric Inpainting for Image Warping the Q&A for each talk is included as well
archive / summary
the second part of the glTF mesh series covers how to interpret mesh data and render from WebGPU covers the ASCII and binary format
archive / summary
the article presents the effect of Shader Execution Reordering (SER) on GPU performance shows the effect on Cyberpunk 2077 and shows how improved coherence improves performance presents how the extension is represented in the DXIL and changes the shaders
archive / summary
AMD released a new research framework aimed at the rapid development of multiple rendering implementations in parallel The first release contains a GI implementation and a reference Path tracer
archive / summary
the article provides an overview of the Photon Mapping technique discusses the issues with ray counts from ray and path tracing methods and how photon mapping aims to reduce the number of rays developed to solve rendering caustics efficiently
archive / summary
the paper investigates and presents the quality and performance influence of stochastic texture filtering stochastic texture filtering makes it possible to perform filtering outside of the lighting integral this could allow for the adoption of higher-order texture magnification filters as the introduced noise can be removed with temporal filtering algorithms
archive / summary
the article provides a walkthrough of how to investigate a GPU hang found in Splitgate on Steam Deck shows how to narrow down the issue using Vulkan validation, the AMD open-source drivers, and UE source code access presents the complex interconnections of GPU systems
archive / summary
the GDC presentation present a GI solution that aims to cache radiance into a cache hierarchy shows how the technique combines screen space probes with world space-level cells presents the implementation, quality, performance as well as limitations of the technique
archive / summary
the video tutorial expands on the terrain rendering series by adding support for calculating LOD levels for each patch shows how to implement the technique using OpenGL
archive / summary
AMD released an extensive tutorial on how to use the Render Pipeline Shaders SDK broken down into multiple parts, it explains the basics to more advanced concepts shows how to render a triangle, express more complex resource dependencies, as well as how to interact between the graph and host application additionally shows how to take advantage of multithreading when recording commands
archive / summary
the paper proposes a new method for the combination of rough surface NDFs The presented techniques aim to accurately simulate multiple scattering from heightfields with height-dependent roughness and material properties the solution is based on a layered-Smith microfacet model
archive / summary
The paper presents a new method to represent materials utilizing learned hierarchical textures combined with neural decoders presents how to integrate the technique into real-time applications such as path tracers
archive / summary
the article presents a history of graphics API and how WebGPU fits into the history shows an overview of how WebGPU works presents possible implementations for different programming languages and how to get started
archive / summary
the guide contains best practices for using Sample Feedback on Nvidia hardware shows what is expected to perform well, what is not supported, and possible edge cases to consider
archive / summary
the article presents the video functionality that Vulkan exposes discusses how to use the API and what pitfalls were encountered as the Wicked Engine is open source, code and links to the necessary implementation are provided
archive / summary
the article presents an overview of Unit Gradient Fields (UGFs) UGFs offer a generalization over SDFs, enabling a more expressive language for implicit modeling this is only part one of a planned series on the topic
archive / summary
the article presents an in-depth look at the performance of the latest Cyberpunk 2077 update shows how the hardware is utilized and what the bottlenecks are additionally shows how RDNA2 and RDN3 workloads compare
archive / summary
the video tutorial about rendering terrain using OpenGL continues by explaining how LODs can be implemented for the terrain system covers how to create LODs and make sure the terrain doesn't have any cracks
archive / summary
Article discusses implementing backface culling in mesh shaders Compares the efficiency of three different methods: Cluster cone culling, precomputed visibility masks, and multi-cone culling Presents performance numbers for each technique on different scenes
archive / summary
the article presents progress on a Rust-based home graphics engine project focuses on the discussion of how to integrate resource management into the Rust memory model and GPU-driven rendering considerations presents how to setup bindless rendering pipelines, implement frustum culling in compute shaders, and how to integrate with an ECS-based engine
archive / summary
the article presents improvements done to the AMD GPU profiler It primarily focuses on the shader/pipeline disassembly view improvement and has been updated to make it easier to navigate but also mesh shader and Conservative Rasterization mode have been added to support
archive / summary
the video explains how to use partial derivatives in HLSL shaders to calculate the amount of light distortion to calculate refractions presents the results and implementation using UE4
archive / summary
the video tutorial explains how matrices are combined visually explains the operations by explaining how a robotic arm transformation is implemented followed up by explaining how the multiplications are implemented mathematically but always visually explaining the relationships
archive / summary
the video explains how PVS (Potential Visibility Set) used by Quake is implemented visually shows how the graph is constructed and what optimizations were applied to optimize the set further
archive / summary
the article explains how star wars battlefront explosion VFX has been implemented shows how flipbook textures are combined with LUT textures for recoloring as needed
archive / summary
the article explains a series of Interpolation and shows how they build up to cubic Quaternion interpolation covers Hermite Curve, Catmull-Rom Cubic, and finally, Quaternion Catmull-Rom Cubic Interpolation
archive / summary
a collection of papers from the I3D 2023 presentation contains links to the papers and related material where available
archive / summary
the GDC talk explains how Quaternions and Dual Quaternions work and how they affect objects under transformation starts by building an understanding of Quaternions, shows the advantages and limitations followed by an extension to cover Dual Quaternions, explaining what problems they solve and how they compare to 4x4 transformation matrices
archive / summary
the GDC presentation discusses the new sky rendering model developed for GT7 presents the physical foundations and how to simulate them in an offline rendering system followed by how the sky method has been adjusted to be used in real-time through heavy use of LUT discusses how to control the method through simplified parameters additionally covers how they approached cloud rendering
archive / summary
the short tutorial presents how the FXAA algorithm is implemented presents how the algorithm works in simple terms
archive / summary
the article discusses techniques to calculate Bézier that use fewer segments than the existing original path presents the importance of an error metric and discusses different available options
archive / summary
the latest version released from the Open MaterialX standards adds support for MaterialX Graph Editor and support for Metal shader generation also adds support for coated emissive surfaces and bitangent input vectors
archive / summary
the article presents several different methods to convert between 32 and 16-bit floating point formats discusses the implementation, issues, and considerations with each technique
archive / summary
the tutorial explains how to use WebGPU to use compute shaders to calculate the MIP maps for textures presents the implementation of a one MIP level at a time technique
archive / summary
the article presents how to introduce custom shader nodes into the Godot Visual shader graph shows an example of how to color an object following the UVs
archive / summary
the article introduces two new interactive playgrounds for integer and floating point numbers allows experimenting with how different numbers are encoded into the underlying bit patterns
archive / summary
the talk discusses how the PC port approaches PSO management to reduce stutter and manage memory when the game was designed for unified memory how they approached ray-tracing for parity with the PS5 implementation and what extension got added to improve the quality detailed section on how to further debug GPU issues on PC and how to deal with super wide resolution rendering
archive / summary
the video explains visually to read and understand 4x4 transformation matrixes explains the basic of matrix/vector operations presents how to combine the operations to allow rotations, scaling, and translations of objects using a visual approach
archive / summary
the blog post describes the approach of incrementally accumulating voxel data to augment the reprojection of the previous depth buffer shows images of how the depth buffer develops over time and how small sub-voxels can help to improve the results
archive / summary
the article describes how Godot converts SPIR-V shaders to DXIL for D3D12 covers the old approaches (SPIRV-Cross) and why it was replaced with using Mesa’s NIR approach discusses what SPIR-V Specialization constants are and how a patchable DXIL is created to allow the approach with D3D12
archive / summary
the video presents an overview of the papers that will be presented during the I3D 2023 in Bellevue covering interactive Neural Radiance Fields, importance sampling for Dynamic Diffuse Global Illumination, real-time dune simulation, and many more
archive / summary
the video presents the visual difference the overdrive (ReStir-based) raytracing implementation for Cyberpunk 2077 can achieve compares against the prior ray tracing implementation and the maximum rasterization quality shows cases where the mode makes a huge difference additionally presents the performance influence of the mode
archive / summary
Nvidia released the Displacement Micro-Map Toolkit SDK provided samples and documentation explaining the capability and how to use them from Vulkan the technique allows the triangle to be sub-divided and displaced with a highly compressible format this can be raytraced to add additional detail at lower costs
archive / summary
the tutorial shows how to render a first triangle with WebGPU this is using the final WebGPU spec as it is now publically available in Chrome
archive / summary
the website collects information about the API and extension availability for Web-based usage supports WebGL, WebGL2 and WebGPU
archive / summary
the article provides a central place for matrix understanding for computer graphics explains storage and multiplication order, how they are expressed in HLSL and GLSL explains coordinate system handedness, what the left-hand/right-hand rules are additionally presents some questions that help to detect conventions used if applications did not document their choices
archive / summary
the blog post shows different sampling strategies presents the patterns along 1D lines, 2D squares as well as 2D circles
archive / summary
the tutorial explains how to apply color modifications in shaders shows how to modify luminance, saturation, brightness, or contrast implementation is provided using Unity shaders
archive / summary
the long Video explains detailed how to render a Stylized grass covers the art creation, shader logic, performance considerations additionally covers how to apply movement, occlude parts if intersecting with the camera, LOD setup, and much more
archive / summary
the paper proposes a new solution to accelerate AABB when used as BVH for objects that are thin and diagonal the solution presented embeds a binary voxel data structure for each node and showed how to use these to reduce false positives additionally presents how to use a LUT to compress the voxel data
archive / summary
the paper introduces a new rejection method based on the PDF shape similarity between pixels for single-bounce ReSTIR this helps to reduce spatial resampling across shadow edges and material boundaries
archive / summary
the article presents an overview of ReSTIR/ReGIR, explaining similarities and differences between the techniques shows how to set up reservoirs to allow spatial path reuse
archive / summary
the article presents the difference between Object Normals, Tangent Normals as well as World Normals
archive / summary
the article presents an overview of use cases for mesh shaders shows how to implement a mesh shader implementation that breaks down a mesh into parts and culls these presents frustum culling and cone culling for a meshlet-based model
archive / summary
the blog post introduces the VK_EXT_shader_object extension that allows Vulkan to be used without pipeline objects instead, applications create shader objects for each stage (and optionally link these). All state setting is dynamic the article describes performance expectations that drivers need to follow if they report the feature as supported additionally describes how to test the feature on hardware today
archive / summary
the paper introduces a generalized ray concept into wave-optical light transport presents how to use the generalized concept to apply path tracing sampling techniques to wave behavior modeling shows how the technique compares in quality and performance to existing techniques
archive / summary
the new D3D12 SDK adds support for CPU and GPU shared heaps on iGPUs and GPUs with re-bar support additionally adds support for texel coordinate sampling
archive / summary
the article explains what function derivatives are and how they are helpful in shaders presents a couple of examples to show derivatives in action
archive / summary
slides of the GDC talking covering Geometric Algebra have been released the presentation covers the building blocks of the algebra and how it connects to concepts from other algebras shows how common operations and primitives can be represented using Geometric Algebra concepts
archive / summary
the detailed video tutorial shows how to implement raytracing applications explains and implements concepts such as reflection, simple sky models, depth of field, lighting, and much more
archive / summary
the new API allows applications to disable the use of kernel WRITE_WATCH for CPU-visible GPU memory applications promise to track access and inform pix explicitly instead of relying on the OF this is required because of limitations in win10 and non-insider builds of windows 11 today that affect performance negatively
archive / summary
AMD released the videos and slides from the sponsored session at GDC23 covers the new FidelityFX SDK, Real-time sparse distance fields for games, temporal upscaling as well as direct storage
archive / summary
the presentation introduces the implementation of Brixelizer, an AMD real-time generator for sparse distance fields discusses what sparse distance fields are, how they can be generated followed by a discussion of how Brixelizer can be used to generate the necessary data
archive / summary
the article introduces Spherical Gaussians based on the Spherical Harmonics covered in the last part presents how these two representations differ, strengths and weaknesses additionally introduces Ambient Cube encoding for diffuse lighting
archive / summary
the second article of the series continues uncovering how Deep Neural Networks are implemented looking at aim to reconstruct the Intel Open Image Denoise open-source library explains the concept of Tensors, Convolution, and how these concepts are combined to form Convolutional Neural Networks
archive / summary
the terrain video tutorial series introduces a continuous level of detail for geometric details explains the implementation of Geomipmapping, discussing the vertex number requirements and how to deal with edges between LODs implementation with OpenGL is provided
archive / summary
the article uses the AMD and Nvidia dev tools to take a look at how they approach the BVH building process compares different hardware and presents performance comparisons Hogwarts Legacy and Cyberpunk 2077 are used as examples
archive / summary
the blog post discusses designs and considerations for occlusion Culling techniques lists limitations of existing techniques for fully dynamic worlds discusses two prototypes covering screen-space depth reprojection as well as world space voxelization presents weaknesses of the techniques, open issues, and next steps
archive / summary
the article discusses the implementation of the GPUI library shows how to derive SDFs for rectangles and how to apply drop shadows using separable blurs additionally covers how font rendering is implemented by using the OS and GPU caching
archive / summary
the Twitter thread discusses different methods to upload per-draw call GPU data presents how to use Metal, Vulkan, and WebGL 2.0 additionally presents pointers on how to apply it for D3D12
archive / summary
the article presents different use cases of Fourier Transforms from a user perspective explains what to use them for and how presents strengths/weaknesses of the library design and how it affects the workloads
archive / summary
the video tutorial explains the effect of iridescence, why it happens, and how to replicate it then uses the principles to implement a soap bubble shader using both Unity and Unreal shader implementation is shown using the Visual Shader language
archive / summary
the article discusses how to implement a lighting model as found in the Legend of Zelda: The Wind Waker presents how to set up the blueprint as well as the shader logic required for the effect
archive / summary
the article discusses the basics of Convolutional Neural Networks the series aim is to explore the denoising implementation of the Intel Open Image Denoise library
archive / summary
the article shows how to implement SSAO using WebGL 2 provides a high-level overview of the steps required and how to implement these discusses limitations of the technique as well as parts where forward and deferred shading paths would diverge
archive / summary
the tutorial explains how to create a Stylized Water Shader using Unity from start to finish show how to calculate water depth, apply underwater color, waves, foam shading, and more to create the effect presents the results of the different effects and how to tweak them for the desired results
archive / summary
the short paper presents an extension to the Adobe Standard Material model that allows specific reflectance at 90 degrees and the ability to control the interpolation exponent discusses reflectance models limitations, evolutions, and proposed solutions
archive / summary
the article aims to provide an understanding of Spherical Harmonics without requiring advanced mathematics develops the intuition from 2D cases before expanding into an extra dimension additionally discusses why 3rd order Spherical harmonics are commonly used in computer graphics
archive / summary
the video tutorial shows how to create a text shader using signed distance fields and how to develop data for use with the effect compares the result against a classical texture approach implementation is shown using Unity and Unreal visual scripting
archive / summary
the article discusses the author's experience of writing "Mastering Graphics Programming with Vulkan" explains the approach taken to concept development, lessons learned along the way and a look at what could be improved
archive / summary
the article discusses matrix and vector representation shows the distinction between logical row vs. vector and the memory order explains the effects of different layouts for multiplication order additionally lists the pros/cons of different combinations
archive / summary
the article continues the series on float compression topics presents how to optimize the process by redesigning the system to take advantage of SIMD instruction sets shows how much of a performance difference the usage can make
archive / summary
new release of PIX contains a vast list of new developments some examples are RayGen debugging, the ability to show selected draw objects, pix capture diffs, improved memory allocation view, and much more
archive / summary
the article explains the alignment requirements of buffer loads from VK_KHR_buffer_device_address provides a walkthrough of the generated SPIR-V and explains why the issue occurs by explaining the spec requirements
archive / summary
the presentation covers a real-time cluster-based path-tracing renderer discusses how the architecture was designed to allow linearly scaling with the number of GPUs
archive / summary
the video tutorial presents a simple lighting model that uses sprites to define light effects this is done by defining lights as one render target and combining it with the base world implementation using Defold is presented (using GLSL shaders)
archive / summary
the paper explains the experience of transitioning university classes to be taught using Vulkan instead of OpenGL discusses difficulties and advantages encountered shows how it affects student learning, grades, and project results
archive / summary
the video discusses the problem of non-uniform constant loads within a single wrap shows how to use Nvidia NSight to identify the problem discusses in detail how to correlate counters, latency, and instruction traces using Structured Buffers instead of Constant Buffers will be able to resolve the problem once identified
archive / summary
the paper presents how to use GPU-based techniques to implement LOD construction of point clouds discusses the different implementation approaches' impact on performance and quality
archive / summary
the latest part of the video tutorial discusses how to apply lighting to a terrain using OpenGL discusses standard diffuse lighting and Slope Lighting provides a high-level overview of each technique and discusses the implementation
archive / summary
the article presents an overview of 10 aspects to consider when approaching solving a computer graphics problem discusses the importance of understanding the working space, data representation, as well as time constraints presents how to take advantage of generic data science techniques (such as data visualization/exploration, Numerical optimization, ...) to gain new insights additionally shows how ground truth and Machine learning techniques can be combined to develop an intuition of the limits of a given solution
archive / summary
the talk describes to setup a bindless rendering pipeline using Vulkan, D3D12, and HLSL shaders shows how to set up the CPU side management to allow GPU side validation describes the emulations required for Vulkan
archive / summary
the article continues a series of understanding the Robust Monte Carlo Methods for Light Transport Simulation master thesis this article focuses on the understanding of multiple-importance sampling explains the insights required to better understand the balance heuristic especially
archive / summary
the article provides a calculator that generates offsets and weights for a separable Gaussian blur filter allows the specification of a couple of settings (radius, sigma, filtering mode, ...) and generates GLSL code explains the underlying logic and shows how to implement the filter in GLSL
archive / summary
the article describes the error handling techniques that are available when using WebGPU defaults will print detailed errors to the console, but developers can define scopes to collect information from the program and attach additional information to objects additionally presents how to collect detailed information from shader compilation errors
archive / summary
the official website collects the links to the videos and slides of the talks presented at the Vulkanised 2023 conference not all talks have slides at this time
archive / summary
the article presents issues with the ARM/mali GPU device IDs and how they relate to GPU performance for game setting tweaking shows how that reusing the same ID for multiple chips with large performance delta makes it challenging to identify capabilities correctly
archive / summary
the author presents his impression from the Vulkanied conference presents an overview of the topics covered, what discussions revealed during panel discussions, and what are common issues
archive / summary
the playlist of video recordings of the talks presented at the Vulkanised 2023 in Munich covers a large number of topics such as Mesh Shader best practices, source-level shader debugging, performance optimizations ranges from mobile and desktop to virtual reality
archive / summary
the article presents a breakdown of how Teardown is being rendered shows all stages of the pipeline required for the final frame shows how the G-Buffer is drawn, how details are applied to the voxel additionally presents how the weather effects, lighting, as well as denoising are implemented additionally covers many more steps of the frame pipeline
archive / summary
the article provides an overview of different techniques to adjust object colors from objects shows how to implement the presented techniques using Unity visual shader language as well as in HLSL
archive / summary
the video tutorial explains how to implement ray-sphere intersection testing discusses the mathematic derivation of the technique shows how to implement the intersection testing using GLSL in shadertoy
archive / summary
the paper presents a technique to approximate hair lighted by an environment map, direct lighting, or a global illumination build around the modeling of obstruction around each hair using spherical harmonics instead of requiring deep opacity maps
archive / summary
the blog post continues the series on float compression techniques investigates how SIMD instruction sets can be used to optimize presents how it affects the results
archive / summary
the video discusses the difference between Parallax Occlusion and normal mapping presents how to optimize the implementation to adjust the steps only for cases where precision is required implementation is shown in both Unity and Unreal
archive / summary
the paper proposes an expansion of Horizon-based indirect illumination by using visibility bitmasks instead of horizon angles stores (occluded / un-occluded) of N sectors uniformly distributed around the hemisphere slice instead meant to improve results for thin surfaces
archive / summary
the post provides a walkthrough of how to implement raymarching for volumetric clouds provides an implementation using shadertoy additionally discusses further issues and further steps
archive / summary
the short tutorial shows how to recreate photoshop blend modes using GLSL shader code contains a link to a GLSL implementation of additional blend mode implementations
archive / summary
the article presents how to implement a software triangle rasterizer discusses how to evaluate if pixels are inside a triangle covers how to deal with edge cases, how to improve constant precision through the use of a fixed-point number representation additionally presents performance optimizations
archive / summary
the tutorial explains the basics of compute shader usage with Vulkan by implementing a compute-shader-based particle system shows how to load compute shaders, bind resources and interact with graphics resources additionally covers how the hardware executes compute shaders by explaining concepts such as workgroups and invocations
archive / summary
a collection of tech art tweets covering topics such as procedural modeling, volumetric motion blur, skin shader, VFX and visual shader WIP reports
archive / summary
the video tutorial explains how to apply textures to a terrain system provides a recap of texture mapping techniques and how to apply textures based on the height of the terrain expands upon the techniques to tile texture across the terrain additionally shows how to use mipmapping and how it improves the quality of the results
archive / summary
the start of a series of blog posts that explores the space of compressing floating point data this post explains the source of the data and patterns of the underlying data series compares a large number of techniques, compression solutions, and libraries
archive / summary
short tutorial explains the concept of normal maps and how it influences the lighting computations shows how to interpret the meaning of the colors additionally shows the importance of normal map orientation
archive / summary
the article explains how to create a shader in Unity that gives an object a subsurface scattering effect shows what effect subsurface scattering has on the lighting model presents how to integrate it into the standard surface shader
archive / summary
the blog post explains how to convert a one-dimension threadIndex from compute shader into a 2D coordinate shows how to use Quad-wide Shuffle Operations to reduce reliance on group-shared memory
archive / summary
the video tutorial shows how to adjust Unity and Unreal Shading models to be more fitting for Sand rendering shows how to adjust textures sources for efficient usage from shaders
archive / summary
the article presents a summary of what was discussed at the WebGL / WebGPU meetup lists new extensions coming for WebGL and the state of WebGPU rollout shows how the most significant obstacle for ThreeJS to adopt WebGPU is the requirement of WGSL shader language
archive / summary
the paper presents an alternative way to deal with the instability of generative adversarial networks (cGANs) suggests replacing the reconstruction loss with the energy distance paper contains a one-page summary of the technique
archive / summary
the article presents a look back at the Shadowman game implementation for the PS2 describes how to implement and optimize the four-point light setup while staying within PS2 limitations
archive / summary
the article presents a rendering analysis of the game Teardown shows a look at video captures of the game to develop an intuition before diving into RenderDoc shows that the game objects are drawn using a 3D Sprite concept the game uses a volumetric shadow map that is updated from the CPU additionally covers Lighting, Compositing as well as Post-Processing
archive / summary
the paper presents how to take advantage of ray tracing hardware for progressive photon mapper shows how ray tracing–based collection outperforms hash-based GPU photon mapping algorithms additionally introduces Photon Culling, a technique to reduce the number of photons stored per iteration
archive / summary
the article explains updates required for Chapter 4 of Battle Royale shows how increasing triangle counts of the mesh tented is better than masked materials and techniques to preserve vegetation density discusses how to handle object animation and improve culling
archive / summary
the new release introduces support for the Brotli-G lossless compression format additionally adds support for RGBA_10101002, R8 and 16-Bit PNG File support
archive / summary
the video presents how to implement image-based lighting of the Cook-Torrance microfacet BRDF contains how to derive the Ground Truth Solution and shows how the Split Sum Approximation can simplify the equation presents how to implement the required shaders using GLSL
archive / summary
the article introduces the idea of expression quadtrees in terms of a collection of square grids this allows the space to grow indefinitely as the used spaces change (movement or zooms)
archive / summary
the WIP guide covers how to use the WebGPU graphics API from C++ at this time, presents how to create a render a basic 3D mesh additionally shows how to load and apply textures
archive / summary
the article presents how to implement a camera look-at matrix visually shows how the components combine to form the result mentions the difference between rasterization and ray-tracing workloads
archive / summary
the blog post describes what changes were required to make Lumen work in 60 FPS mode for the new season of Fortnite discusses how a reverse lookup structure is used to accelerate per-mesh surface cache information for sharper reflections and lighting when using software ray tracing at low resolutions shows how spatiotemporal blue noise was able to improve results from the same number of rays
archive / summary
the article explains the issue that needed to be solved for Virtual Shadow Maps at 60fps explains common issues that are often encountered when trying to cache sun shadow maps additionally explains a collection of techniques required to improve performance and quality for the Fortnite art style
archive / summary
the video explains how Spatial hashing applies to storing sparse spatial data presents how to extend the technique for cache coherence using view-dependent effects using world-space temporal filtering additionally presents how to improve quality by using visibility-aware environment sampling
archive / summary
the article explains a method to compress 32-bit floats into 24-bits shows how IEEE floats are defined and how to take advantage of conventions to further compress them for constrained ranges HLSL and C++ code is provided
archive / summary
the High-Performance Graphics 2023 conference is open for submissions the pages list topics covered and important dates for the submission
archive / summary
the article announces that the GFXReconstruct now supports D3D12 (previously was Vulkan only) explains how to use the tool to record D3D12 applications additional shows workflows to reduce capture size and increase playback speed
archive / summary
the video explains a second technique to generate terrains taken from the Focus on 3D Terrain Programming book provides a high-level overview of the algorithms as well as an OpenGL implementation additionally, details on how to deal with edge cases of the technique
archive / summary
the article shows how to rotate a 2D sprite using 3 shear operations discusses the properties and advantages of this method
archive / summary
the new AMD hardware guide for RDNA3 has been released covers the shader execution model, the various wave execution models as well as how the shader core interacts with the memory hierarchy
archive / summary
the article shows techniques implement conservative techniques to project bounding boxes and spheres into screen-space these techniques are optimized for use in culling use cases as it affects the meaning of near-z clipping presents trade-offs between the techniques in terms of computational cost and culling efficiency
archive / summary
the article describes how the Use.GPU level of abstraction is continuing to evolve presents how scene management can be natively expressed as part of the same pass-based architecture shows how the same high-level logic allows switching between deferred and forward rendering easily additionally discusses strange limitations in the graphics APIs that make switching work between texture formats, pixel shaders, and compute shaders more difficult
archive / summary
the article provides an overview of Tangen Space Encodings covers how to use Octahedral Encoding and further compress it with Tangent Angle from there, develops the suggested Diamond Encoding technique that extends the Octahedral approach into the tangent angle space additionally provides a brief section on rethinking how tangent space encoding might be better expressed on a mesh(let) level on modern hardware
archive / summary
the article presents the Meta Quest exclusive features of the RenderDoc fork the extensions allow the visualization of the tiled-based hardware binning into screen tiles and how they are executed allows drawing call tracing to gather the latency of draw calls additionally allows the collection of hardware statistics of shaders through KHR_pipeline_executable_properties
archive / summary
during the Vulkanised 2023 conference in Munich, a full-day tutorial will take place this post explains the target audience of the course and the associated price
archive / summary
the article aims to develop an intuition for FFT (Fast Fourier Transform) and how it's underlying the math of waves provides a large number of interactive examples to experiment with the effects of different parameters contains a high-level introduction to complex numbers and how they relate to rotation and scaling
archive / summary
the author describes the personal experience with GLSL and HLSL gained through moving AnKi 3D between the shading languages mentions why HLSL seems like a better bet for the long-term future also mentions shortcomings of using HLSL when developing Vulkan applications
archive / summary
the blog post explains how to improve the precision when encoding min-max per tile the author suggests storing only one as an absolute value and a delta to reconstruct the other
archive / summary
the article covers how Wave Matrix Multiply Accumulate (WMMA) presents how to use the intrinsics available in the HIP framework to accelerate the matrix operations typically found in machine learning work
archive / summary
the article provides techniques to speedup raytracing workloads discusses techniques to integrate "importance sampling" for dynamic objects that are off-screen but still contribute to effects how to optimize shader table updates additionally presents the idea of aligning TLAS boxes so that bounding boxes are aligned with the world axis
archive / summary
the article presents a breakdown of how a Snowglobe can be implemented using Unity shows how to set up glass sphere refraction/reflections additional covers on how to simulate the snow using particles
archive / summary
the article presents a discussion of different sources of GPU hangs shows techniques that can be used to track down the cause of hangs techniques available in D3D12 and Vulkan that can be used to develop techniques to track down the source of the issue
archive / summary
the presentation contains a step-by-step walkthrough of the FSR implementation shows how the API is structured and what updates have been made from FSR 2.0 to 21
archive / summary
a new version of the D3D Agility SDK has been released includes the d3dx12 headers, and those have been split into separate headers so users can only include what they need additionally, the implementation of GetCopyableFootprints has been open-sourced
archive / summary
the video shows how to implement a Fault Formation algorithm for a procedural terrain using OpenGL additionally presents how a (Finite impulse response) FIR filter can be used to smooth the results presents an overview of the filter, visualize the effects using Excel, and shows how to implement it using GLSL
archive / summary
another part of the Vulkan series that implement GPU culling this part focuses on optimizations and cleanup tasks presents the effects on the performance of the different techniques covered
archive / summary
the blog post continues the discussion of the effects of using 16-bit floating point values in the temporal resolve shader from the FidelityFX SSSR sample looks into AMD hardware instruction generated by the compiler shows how why the VGPR usage is so different presents alternative ways to express the work and how it affects the generated code
archive / summary
the article discusses the reasoning why Vello (a GPU compute-centric 2D renderer) choose to transition to WebGPU discusses the choices made during the implementation looks at strengths and open issue additionally provides a look at more advanced features and how WebGPU limits are affecting the project
archive / summary
The article discusses the use of 16-bit floating point numbers (fp16) in shaders Using fp16 can reduce the memory and bandwidth requirements of a shader The article presents the results of experiments and how it affects the generated code
archive / summary
the article discusses techniques for improving color quantization algorithms presents several heuristics for improving the quality of quantization the article discusses the trade-offs involved in using different heuristics and provides examples of the results
archive / summary
the tutorial shows how to implement an effect that recreates the color and wave pattern of the screensaver found in macOS presents how to create the different aspects using shadertoy and how to combine the effects
archive / summary
The article discusses screen-space variable rate shading (VRS), a technique that can improve performance VRS allows the shading rate to be varied across the screen code examples show how to use the technique from Unity
archive / summary
the article explains the difference between row-major and column-major matrices discusses the relationship between matrix storage format, matrix layout, and operation order presents that the choice of storage format can affect the performance of matrix operations
archive / summary
The video explains how to create a hexagon using SDFs in shadertoy expands the concepts to show how to tile the grid of hexagons demonstrates how to expand on the concepts to create more complex shapes
archive / summary
the article discusses strategies for optimizing the performance of mobile games in Unity presents the importance of tradeoffs between quality and performance shows techniques for improving performance, such as reducing draw calls, minimizing overdraw, and using batching and instancing
archive / summary
the blog posts describes how Hierarchical Z-Buffer (HZB) Occlusion Culling uses a depth buffer to improve culling efficiency describes two possible solutions that can be used to solve the problem that a depth buffer of the view is required to accelerate the rasterization of the same view focuses on a technique that uses information about which objects have been visible in the previous frame to accelerate the current
archive / summary
summary of two Siggraph talks by the author covering Ghost of Tsushima the talks cover Lighting, Atmosphere, Tonemapping as well as PBR Shading in Ghost of Tsushima
archive / summary
the post announces that the new edition of PBR will be released on March 28, 2023 [chapter 11 Volume Scattering](https://pub-49ca6a23a58a46ef9cf5a5b34413a7ba.r2.dev/pbr-4ed-chap11.pdf) and [Chapter 14, Light Transport: Volume Rendering](https://pub-49ca6a23a58a46ef9cf5a5b34413a7ba.r2.dev/pbr-4ed-chap14.pdf) are available as PDF download already
archive / summary
the stream covers the implementation and exploration of triangle culling into a GPU culling pipeline discusses trade-offs of different techniques and locations in the pipeline shows the effects of different culling techniques on the number of primitives that need rasterization
archive / summary
Intel released a Path tracing workshop of 76 minutes of videos and ShaderToy exercises shows how to implement a ray tracer, the path tracer how to speed up the algorithms through the use of importance sampling
archive / summary
a new version of rust-GPU that allows Rust code to generate SPIR-V has been released this release adds support for raytracing additional contains many new APIs such as support for ByteAddressableBuffer or debug_printf
archive / summary
the video presents how to implement Bezier Interpolation shows how curves are defined, visualizing how the factors are combined to create the final curve all implementations are presented in ShaderToy
archive / summary
the article continues the series by covering an overview of raytracing techniques covers the Path Tracing Equations, Direct Lighting (single and multiple lights), Indirect Illumination Additionally covers high-level approaches such as Bidirectional Path Tracing and Metropolis Ray Tracing
archive / summary
the article presents metrics to calculate to judge the optimal size for meshlets compares the AMD and Nvidia limits to see how they might affect the choices
archive / summary
the video presents how to integrate a compute shader into the Rust-based bevy engine shows how to integrate the compute pass into the render graph system additionally shows how to read back simulation results back to the CPU
archive / summary
the article provides an explanation of deferred shading discusses the issues with forward shading and how deferred shading can solve them shows how deferred shading can be implemented, including techniques to reduce memory and bandwidth usage for the technique
archive / summary
the article presents how to use wave intrinsics to reduce the number of atomic operations required when compacting sparse arrays into packed arrays presented technique is based on FidelityFX’s SSSR implementation
archive / summary
This article provides an overview of the Render Pipeline SDK design and implementation it shows how the SDK can reduce the complexity of render graph implementations presents that it's able to manage resource barriers and transient memory additionally presents a demonstration of the performance effects that could be observed from real game workloads video version is available
archive / summary
the article provides an overview and history of raytracing it covers different styles of raytracing, common elements additionally provides a brief on how different phenomena can be simulated
archive / summary
the video is the start of a new video series to render a height map using OpenGL shows how to load and render a terrain from a textural heightmap
archive / summary
the video tutorial shows how to implement a shader in Godot that mixes two textures into a single material based on the normal directions of the mesh explains all the necessary vector space transformations, how to unpack normals as well as combine normals
archive / summary
the video discusses new features in Cuda 12 and a look at future developemnts covering Dynamic Parallelism (GPU side task launching), lazy loading to reduce load time and memory usage additionally covers updates to the CUDA compiler, math library updates as well as compability updates
archive / summary
the article presents a technique to improve the look of a particle based fluid system uses Metaballs to more smoothly blend the particles together as well as simple Refraction model implementation is provided in GLSL for Game Maker
archive / summary
the article explains how the oneAPI API can be used to target intel, nvidia and AMD GPUs presents a high level explanation of the technical implementation and goals for the future
archive / summary
the blog post explains two new extensions that have been added to Vulkan to improve interaction with windowing systems applications can now better be sure when to release swap chains, clean up the deletion flow as well as added additional flags to open the opportunity for driver optimizations during swap chain resize operations
archive / summary
the in-depth article explains the mathematics behind the original ReStir and an in-depth analysis of why it works covers the preliminary knowledge required (Multiple)Importance Sampling, Sample Importance Resampling (SIR), Resampled Importance Sampling (RIS) as well, as Weighted Reservoir Sampling (WRS)) uses the information to develop a mental framework for understanding ReStir (Reservoir Spatio-Temporal Importance Resampling), how it works and why it's an unbiased technique
archive / summary
the article presents how to integrate a custom toon shading model into UE5.1 explains the necessary C++ modifications and shader work to integrate it presents the complexity and limitations connected to the integration
archive / summary
the video presents a walkthrough of how to replicate a Truchet Weave pattern using ShaderToy covering how to define an SDF for a Grid, Truchet, or Weave pattern and combine everything for the final result
archive / summary
the blog post explains how to build a cumulative distribution function (CDF) to accelerate the sampling of lights in a real-time ray tracer explains the high-level concept of a CDF and shows how to implement this on the GPU presents how to optimize the implementation to better take advantage of GPU hardware and utilize wave instructions for further optimizations
archive / summary
the detailed video explains splines and concepts derived/extended from these covering Bézier Curves and Bézier Splines, explaining the underlying mathematics and concepts provides an in-depth explanation of the concepts of continuity, yet again in a large number of contexts with this information, the video dives deeper into extended concepts such as Hermite Spline, B-Spline, NURBS, and color splines (to name a few)
archive / summary
the tutorial explains how to implement area lighting using OpenGL implements the "Linearly Transformed Cosines" technique as published originally in 2016
archive / summary
the presentation focuses on how to approach the implementation of abstract code/math expressions to make it easier to work with presents the importance of breaking down more complex expressions into sub-expression and visualizing individual components shows the approaches by implementing randomized water puddle placement, a Gerstner Waves simulation, as well as using flow maps to displace water around obstacles
archive / summary
slides and videos for the Neural Volumetric Rendering for Computer Vision have been released covering the fundamentals of Neural Radiance Fields (NeRFs), how to apply them to Volumetric data sources additional presents existing challenges as well as a brief walkthrough of a NeRFs workflow
archive / summary
the article provides a detailed look into a frame breakdown from the Decima engine-powered Death Stranding shows how the frame is rendered in a large number of compute passes, showing what resources are used in each pass and how it's combined includes an overview of a large number of post-processing effects and how they appear to be implemented and combined to create the desired look
archive / summary
the paper presents a new method to calculate texture MIP maps that preserves compatibility with existing MIP mapping techniques the technique uses neural networks to optimize the transfer of material appearance under varying view distances and lighting conditions presents the results on two distinct BRDF models (Anisotropic GGX and Anisotropic Beckmann)
archive / summary
the video provides a summary of the cloud rendering techniques covered in Horizon: Zero Dawn and the FrostBite engine papers shows the individual components visually and how they are combined to create the final cloud effect a brief discussion of performance optimization possibilities
archive / summary
the article continues the series on spectral rendering this part focuses on methods to "upsample" sRGB colors to spectral representations presents an implementation of Spectral Primary Decomposition for Rendering with sRGB Reflectance and discusses possible improvements
archive / summary
the video presents how the author developed a pong game using only a pixel shader in Unity shows how to use the alpha channel of the render target to store persistent state
archive / summary
the video focuses on the definition of a procedural terrain from a vertex shader presents how to combine different noises and rotate patterns to create a planet
archive / summary
the video is the latest part of an OpenGL learning series that focuses on the explanation of vertex data transformation explains the concepts of space transformations, focusing on how to change object positions in the world through the use of a world matrix shows how to pass information from the C++ runtime to the OpenGL shaders
archive / summary
the article explains how two implements two different types of dithering in metal shaders presents and compares ordered and diffusion dithering algorithms
archive / summary
the video does a deep dive into deferred shading techniques to explain why a graphical artifact in Zelda's Breath of the Wild appears in a specific place starting with a discussion of lighting techniques shows how the scenes are rendered, what intermediate information is stored, and how it's used for light calculations (including many visualizations) finally, it concludes by showing how the error happened and why it's localized to specific locations in the world
archive / summary
the article presents the library that allows C# code to be executed via HLSL, D2D1, XAML, and more shows the developer experience, explaining how the code is transformed for GPU execution presents the two execution models that showcase performance vs. ease of use
archive / summary
discusses issues with the current Vulkan binding model presents how the new descriptor buffer extension allows decoupling draw calls from the descriptor binding presents how it helps with the D3D12 layer and can solve common issues with the current binding model it additionally covers how this extension also allows GPU timeline descriptor copying
archive / summary
the tutorial explains how to create an ice wall VFX inspired from the game Valorant in Godot covers the code setup, art asset creation as well as shader authoring
archive / summary
contains a collection of tweets covering procedural texturing with MaterialX, shader VFX examples WIP and prototype effects, as well as VFX breakdowns
archive / summary
the video tutorial presents several techniques for creating a car paint shader covers base coloring, the addition of sparkles, as well as a clear-coat layer additionally presents how to implement a carbon fiber material implementation is shown in Unity and Unreal visual shader authoring
archive / summary
the article presents how to use the DXC library to compile and gather information from compiled D3D12 shaders shows how to use the API to generate root signatures
archive / summary
AMD introduces a GPU-compatible implementation of the Brotli lossless compression algorithm the SDK provides a CPU compressor and a compute shader implementation of the decompressor code is released as open-source using the MIT license
archive / summary
the article provides an overview of the different ASTC Texture Compression formats available shows the quality and file size that can be expected for gradients, normal maps, as well as facial albedo textures
archive / summary
the video provides a great visual explanation of convolution filters starting with random number examples, expanding to image progressing filters such as blurring and sharpening additionally provides more details on methods to compute large convolution filters more quickly
archive / summary
the article explains how to offset normals along spheres so that displacement doesn't cause self-intersections additionally shows how to adjust the normas/tangents to match the displaced normals
archive / summary
the AMD Radeon Raytracing Analyzer has been open-sourced it allows for visualization and inspection of Bounding Volume Hierarchies
archive / summary
new agility SDK release contains Enhanced Barriers (no longer in preview SDK, removing the need for developer mode) the Depth Bias and Index Buffer Strip Cut Value can now be changed after a pipeline has been set
archive / summary
new Vulkan proposal outlines improvements to the management of descriptor memory to allow descriptors to be treated more explicitly and managed alongside other buffer objects shows how a form of GPU descriptor updates can be enabled
archive / summary
the presentation provides an overview of x64 assembly uses the presented information to show how to debug a stack corruption issue
archive / summary
the series of blog posts aimed to share the lessons learned from tuning applications for AMD GPUs at this time, covering the Laplacian Finite Difference Method
archive / summary
the article presents how to decompile NVidia OpenGL and Vulkan shader shows which tools are required to unpack the Nvidia caches and remap to the source shader names presented steps are Linux, but windows should follow similar procedures additionally, it presents a couple of examples of optimizations and their effect on the generated assembly
archive / summary
a collection of tweets covering a flood filling, VFX breakdowns, unit shader books blender geometry nodes and work-in-progress game showcases
archive / summary
the video tutorial explains how to create a metal material explains the effect of the metallic parameter, metal reflectance values as well as specular reflection shows the implementation with both Unity and Unreal Engine
archive / summary
the article describes how to compress high-quality BC1 images efficiently explains how the compression space is optimized in-depth explanation of the vectorization process and how to efficiently use SSE, AVX, ... to optimize the implementation
archive / summary
the article presents an overview of GPU-based GDeflate compression shows the influence of staging buffer size on compression speed list several best practice recommendations
archive / summary
the article presents the API rules for casting between texture formats in both Vulkan and D3D12 discussing sRGB, BC(Block Compression), Depth and generic color format rules additionally, it shows Sparse/Tiled resources can be used to alias textures
archive / summary
the presentation shows how submitting/recording commands lists from the API to the GPU affects performance shows how to use GPU View and Radeon GPU Profiler to understand the execution behavior presents different strategies and how they differ additionally presents insights into the driver behavior by discussing the Open Source Linux driver behavior
archive / summary
the presentation explains what Half edges data structure is discusses use cases and issues presents how to overcome some of the issues by using an Implicit half edges structure
archive / summary
the article provides an overview of the implementation of three different techniques for procedural texture mapping (Triplanar, Dithered Triplanar, and Biplanar Mapping) implementation is provided in UE5 visual shader code explains the trade-offs of the different solutions
archive / summary
the video provides an overview of a Physically Based shading model discusses the Cook-Torrance BRDF model, Schlick GGX, and Fresnel provides both the theoretical overview as well as the GLSL shader code implementation of the presented technique
archive / summary
the blog post describes the design of a validation system for bindless shader resource access shows how the shader code is protected against invalid resource usage presents how shaders can report failures back to the CPU to be able to inform the user about the error
archive / summary
recording of the Siggraph showcase of original, interactive projects of the year includes Horizon Forbidden West, Unity-based machine learning character posing, hybrid VR, desktop sculpting, the cavern UE5 demo from the coalition, Unity Digitial Humans facial capture system, and much more
archive / summary
the slides for the Real-Time Volumetric Clouds of Horizon Zero West from SIGGRAPH have been released covers the cloud modeling, authoring, and improved lighting implementation additionally covers optimizations and presents performance numbers
archive / summary
the video explains the implementation of a 2D deferred shading system shows a breakdown of the individual steps of the lighting pipeline presents how to render shadows using a stencil-based shadow approach shows how to generate shadow mask extension meshes, update stencil buffers and deal with shadows overlapping multiple objects
archive / summary
the article explains how to generate Worley, Voronoi, and fractal noise in a GLSLS shader ShaderToy example is provided
archive / summary
the lecture presents an overview of computer-graphics technology of the last 50 years as experienced by Ed Catmull shows how individual developments combine over time and cause the speed of innovation to accelerate contains a large number of anecdotes about the history of computer-graphics
archive / summary
the tutorial covers how to generate different noise type in shaders covers a basic hash function, value noise as well as perlin noise shader code is provided in ShaderToy
archive / summary
the video talk introduces a collection of fundamental shader concepts and tricks aimed at the creation of VFX some tricks covered are UV distortion, Masks, LUTs & Gradient Mapping, Debugging advice, and much more code examples are provided in Unreal Engine 4
archive / summary
the article covers how to extend UE4 with a custom vertex format and shading pass the provided example code is meant to replicate the logic required to implement the Slug text rendering library
archive / summary
the talk presents a set of common misconceptions about shader code patterns shows what instructions are generated and how these patterns affect performance examples are provided using UE 5.1 custom shader nodes talking about multiply vs. divide, packing floats, use of Lut's vs. Math, as well as the effect of exponential powers
archive / summary
the tutorial explains the basic steps required to execute a metal compute shader kernel shows how to initialize the metal library, upload buffers, compile shaders and execute compute-shaders
archive / summary
the presentation provides an overview of essential concepts when optimizing an Unreal Engine game explains the foundational settings that are required for correct profiling covers how rendering performance can be optimized touches on culling, draw distances, occlusion queries, shadow proxies additionally provides a valuable list of debug commands
archive / summary
the paper presents a mesh computation compiler that separates mesh operations from the data partitioning the system partitions meshes into sub-patches and reorganize mesh data so that attributes can be accessed from local on-chip memory presents performance results and compares against RXmesh, another system that tries to optimize mesh access patterns
archive / summary
the video shows the importance of color profiles presents how in the absence of profiles, applications are free to interpret the results shows how the most reliable way to get consistent results across applications is to convert from authoring color space into sRGB additionally shows how to inspect color profiles
archive / summary
the video presents a new upsampling technique developed by intel (Temporally Stable Real-Time Joint Neural Denoising and Supersampling) presents a comparison against previous techniques shows that the technique can significantly improve denoising and also upscale the image to higher output resolutions
archive / summary
the tutorial presents how to rotate a texture in 2D space explains rotation matrices, how to rotate around different positions of the plane additionally presents the necessary steps to integrate into Unity for demonstration
archive / summary
the article describes a possible solution to generate a color palette with neighboring colors being most different from each other presents issues with some possible solutions it additionally presents ideas about weaknesses of the offered solution and possible improvements
archive / summary
the paper presents a comparison of a large number of methods for the construction of BVHs for ray tracing workloads concludes by making suggestions for future technological developments that appear to offer the most potential at the time of writing
archive / summary
the 5 part series provides a walkthrough of common issues when using the FSR 2.0 upscaler in Unreal Engine Projects discusses why the issues occur, what solutions are available and how FSR 2.1 was improved to deal with the issues
archive / summary
the article presents the story of how the author experimented with binary search in a shader for accelerating SDF tracing workloads shows how to implement a stackless GPU-based traversal presents why the binary search is unable to outperform the SDF raymarching loop
archive / summary
the slides discussing the new GI solution implemented for Godot the talk will happen on Friday, 28th [twitter DM for signup](https://twitter.com/reduzio/status/1583780332524146692) discusses how the technique is based on sphere tracing distance fields how to generate the distance fields, trace lights additionally spends a large chunk of the presentation on optimizations to make the technique viable
archive / summary
the blog post announces that a new, more open model for HLSL language development discusses what feature will be able to be discussed in public and how the process will work
archive / summary
a collection of papers from SIGGRAPH Asia 2022 the list is updated every couple of days at this time
archive / summary
the video shader tutorial series covers how to create a shader that allows procedural rock shading with snow support previous tutorials covered how to create the individual pieces, and those are combined in this part video shows the implementation in both Unreal and Unity visual shader authoring
archive / summary
the AMD paper presents the findings for a new dynamic GI solution proposes the separation into a screen and world space cache that complement each other with additional information provides a detailed description of the individual steps, performance results as well as known limitations
archive / summary
a collection of cheatsheets on the high-level concepts of topics such as AI, machine learning, and statistics
archive / summary
the video presents a history of light transport algorithms development shows a breakdown of each technique and improvements in each iteration
archive / summary
the article presents that the Godot engine supports compilation in double-precision mode shows how to emulate double precision calculation on GPUs that don't support double by using two floats presents what limitations still exist with this solution
archive / summary
the blog post provides the text version of the mesh shader talk presented the presentation covers the issues with the classic graphics pipeline and how mesh shaders can address these presents how mesh shaders are authored, limitations, and hardware preference differences
archive / summary
the article presents how to improve an outline rendering technique by using surface IDs instead of normals discusses which issues the use of normals can cause and how surface Ids can improve presents what kind of data issues can occur and how to pre-process the data
archive / summary
the article presents how the Nvidia hardware feature Shader Execution Reordering (SER) can be leveraged in D3D12 ray tracing workloads shows how to integrate the API and the necessary Root signature and shader changes presents how the new feature was integrated into UE5 Path Tracing and Lumen additionally mentions when the feature should be used and what kind of speedups can be expected
archive / summary
the article (and video) explains how to author and integrate shaders with transparency support for use in Unity covers Alpha Blending, Alpha Cutouts, sorting as well as shadow integrations presents code examples for all stages with detailed explanations
archive / summary
the article presents that the next DirectStorage release will start to support GPU-based GDeflate decompression drivers can provide optimized implementation, but a generic DirectCompute fallback will be provided lists what hardware and software will support the feature
archive / summary
the video tutorial series covers how to build a complex rock shader this episode shows the implementation of a snow shader in both UE and Unity with view-dependent sparkles presents how to analyze source texture data and separate information so that smaller texture resolutions can be used without quality loss shows how to pack textures and manually unpack them from the shader
archive / summary
the Developer Guide provides a functional description of Intel’s hardware ray-tracing implementation additionally provides a list of guidelines for developers to allow them to maximize performance
archive / summary
the blog post provides a comparison of DLSS 2.4, FSR 2.1.1, and Intel XeSS upscaling techniques provides uncompressed images of different scenes for better comparison
archive / summary
the video provides a high-level explanation of the DLSS 3 system covering the hardware and system components required for the functionality presents how motion vectors and optical flow are combined to generate intermediate frames
archive / summary
a collection of simple test scenes for light conditions in UE5 and NVIDIA Falcor 5.2 Mogwai path tracer contains Perfect Lambert Plane, Perfect Mirror Plane, Perfect Mirror Weak White Plane, as well as a Glossy Plane
archive / summary
the article presents how to implement a compute shader that can be used to paint on vertex meshes in realtime explains the fundamentals of compute shaders shows how to integrate the system with code examples in Unity
archive / summary
the video explains how to implement blending between two skeletal animations shows what information the ASSIMP library provides and how the data is structured additionally presents how to update the OpenGL implementation to allow blending
archive / summary
the article provides examples of different camera distortion effects (with code examples) presents distortion, expansion/contraction, longitudinal/horizontal stretch as well as extrusion effects
archive / summary
PIX adds a separate preview branch of the tool that supports the Preview Agility SDKs supports Enhanced Barriers, Independent Front/Back Stencil Refs and Masks, Triangle Fans lists known limitations and considerations when starting to use the preview tool
archive / summary
the video provides a walkthrough of ray tracing fundamentals explaining the required concepts, such as BRDF and energy preservation, to understand the rendering equation discusses patterns that cause raytracing techniques to require a large number of calculations explains what the ReSTIR technique is and how it allows a significant reduction in the calculations required by taking advantage of spatial and temporal reuse
archive / summary
the paper introduces a progressive technique to cache material evaluations at runtime presents the implementation details of updating a fixed-size hash table on the GPU additionally shows the performance of the method and presents the effect of different cache sizes
archive / summary
the article discusses recent AlphaTensor’s discovery on matrix multiplication explains what the algorithm applies to and how it compares to existing techniques clarifies the performance results reported in articles
archive / summary
the Twitter thread summarises the real-time distance field generator used by AMD research work can maintain the scene representation in < 0.5 ms each frame
archive / summary
the paper presents a method to extend a mesh BVH with additional data so that it can be shared between multiple LODs presents how to store the fused BVHs shows performance and memory impact of using a different number of LODs
archive / summary
the paper presents a method that combines distance field tracing with hardware ray tracing distance field generation is described in the "Real-time distance field builder Twitter thread" above describes when to choose between hardware ray tracing and where to fall back to distance field
archive / summary
a collection of Twitter posts about a large variety of tech artist topics breakdowns of techniques, tree animation breakdowns, and a showcase of effects
archive / summary
the article presents an overview of ongoing Nanite developments the developer noticed in the UE5.1 preview appears to start adding support for programmable pixel shader evaluation to allow masked materials additionally, initial support for vertex modifications and existing culling limitations
archive / summary
the blog post discusses a numerical method for fluid flow to simulate wind flow over terrain discusses the underlying theory and how to mathematically express the simulation shows how to implement the method using compute shaders in OpenGL
archive / summary
the article provides an overview of the implementation underlying AMDs' FidelityFx screen space reflection technique discusses how the decision is made if to trace a screen space ray or to fallback to cubemap reflections presents performance optimizations done across the different stages
archive / summary
the video provides an introduction to the AMD raytracing tool shows how to use the tools to gather performance information about the raytracing passes video explanation of the [Improving raytracing performance with the Radeon™ Raytracing Analyzer (RRA)](https://gpuopen.com/learn/improving-rt-perf-with-rra/) that was covered in the week [253](https://www.jendrikillner.com/post/graphics-programming-weekly-issue-253/)
archive / summary
the article provides a summary of two plots for the existence of gamma space related to CRT and human perception presents how the workflows are integrated into Unity and Unreal it additionally presents how rendering results are incorrect when done in the wrong space
archive / summary
the article discusses the RGB and HSV color spaces presents how to convert between the two spaces it additionally shows how to use the HSV model to implement fullscreen color adjustments effects such as desaturation
archive / summary
the video presents visual explanations of lerp (linear interpolation) takes the knowledge to extend how to visualize and shape the curve for different effects presents standard functions and presents different use-cases it additionally shows cases where linear interpolation is not enough (camera movement, rotations, ..) and how to resolve them
archive / summary
the blog post provides an introduction level guide to using the D3D12 bindless model shows how RenderDoc and Nsight show the accessed resources for debugging purposes
archive / summary
the article presents how to calculate the intersection between axis-aligned rectangles extends the methods to cover rotated and more generic polygon shapes interactive code samples provided in javascript
archive / summary
the video explains how DLSS uses motion vectors and optical flow fields to implement AI Frame Generation presents performance and quality comparison discusses the upsides and downsides of the new AI frame generation technique
archive / summary
the 2023 Vulkanised conference has been announced for in-person in Munich in February organizes are currently looking for speakers for the event
archive / summary
Intel has released the SDK for the XeSS upscaler closed source release that exposes the API for D3D12-based applications
archive / summary
the paper presents a comparison of traversal and voxel intersection testing of signed distance function grids compares the performance of the different methods it additionally introduces a new method for interpolating normals for smoother edges across voxel edges
archive / summary
the paper presents a method designed for VR applications that adjust colors to reduce display color consumption shows how to develop a perceptual model to detect what color changes in the peripheral vision are acceptable without being noticeable
archive / summary
the blog post provides a method to allow the retargeting of animations between models that share a common rig setup presented method is meant for offline (tool) processing of the 3D model files
archive / summary
the video tutorial presents how to implement a noise that recreates the interference of unshielded cables shows how to generate white noise and animate it for movements
archive / summary
the slides for the Siggraph 2022 Advances in Real-Time Rendering course have been released covering runtime Catmull Clark Subdivision, Global Illumination and Ray Tracing in Unreal Engine 5, Unity hair system as well as water rendering in Horizon Forbidden West missing slides for Volumetric Clouds in Horizon Forbidden West as well as Cluster Path Tracing for Remote Rendering
archive / summary
the article presents a visual interpretation of Quaternion mathematics starting from 2D rotations and developing towards 3D rotations from there
archive / summary
the video introduces the NVIDIA RTX Remix engine the runtime allows the interception of DX9 applications replaces the application renderer with the custom renderer it additionally allows all assets to be intercepted and exported into a USD format where the assets can be modified and reloaded into the original game
archive / summary
the video tutorial explains how to improve an OpenGL shadow mapping implementation to allow softer edges presents a Percentage Closer Filtering implementation, discussing weaknesses and limitations of the techniques it also shows how to implement a method to improve the edge filtering by varying the sample positions
archive / summary
the post provides insights into ray tracing BVH performance shows how splitting BVHs, usage of instances, BVH splitting, and model creation can affect performance the effect of deformations on update vs. rebuild additionally presents a comparison of iterative and recursive ray tracing
archive / summary
the article presents how a render graph gets updated to handle exclusive resource ownership between multiple GPU queues examples are provided in Vulkan terms explain the difference between binary and timeline semaphores shows how to integrate swap chain synchronization into such a system
archive / summary
the video presentation provides a walkthrough of methods to find the real roots of polynomials presents an example of how to use the technique for hair rendering to calculate hair strand intersections
archive / summary
the article discusses a method to detect artifacts in video applies the concept to detect banding artifacts and present a visual representation of the artifacts present over time
archive / summary
the video tutorial presents how to create a fullscreen post-screen effect that pixelates the screen provides a walkthrough of the implementation in Unity and Unreal using visual shader graphs
archive / summary
a short article that shows an option to apply tone mapping in forward shading without wanting to use a separate fullscreen pass discusses the shortcomings of the technique
archive / summary
the article provides an overview of depth of field effects shows the effect of different camera parameters on the visual results presents an implementation in Unity shader code
archive / summary
the video tutorial provides a walkthrough of issues in supporting animated models shows how to extend to larger support bone counts, dealing with zero bone influences as well as supporting multiple animations
archive / summary
the article explains a method to simulate and render different warped space-times shows how to simulate the light to form a black hole
archive / summary
the blog post provides a walkthrough of how to render 2D billiard balls in a pixel shader shows how to render a sphere, calculate normals, apply textures and specular lighting
archive / summary
the article describes a method to generate a cubic Bézier curve that is parallel with a defined offset distance to another curve compares different methods and presents examples to experiment with the proposed techniques
archive / summary
the article discusses how API pipeline state maps onto different hardware types presents how the open source Mesa stack provides solutions to the problem that can take advantage of the underlying hardware
archive / summary
a collection of tweets about tech art, VFX, and related topics showcases in-progress developments and experiments
archive / summary
the post discusses infinite impulse response (IIR filter) shows when one might want to use an IIR filter, discussing problems with the filters proposes a solution that uses a gradient descent optimization process to learn an IIR filter
archive / summary
the second video of the series VHS filter series adds support for worn-out tape and tracking-out-of-phase effect implementation is done using Unity and Unreal shader graph system
archive / summary
the short video provides a great visual introduction to distance functions and ray marching presents how to express shapes using implicit surfaces showing techniques to combine different shapes and animate them
archive / summary
the article shows the Grid-Based Reservoirs sampling technique for dynamic lights in participating media this enables the temporal reuse of samples among neighboring rays shows the different stages of the implementation and how different sampling and noise distributions change the results
archive / summary
mesh shader support has been added to Vulkan through VK_EXT_mesh_shader the article compares the API against D3D12 and the previous Nvidia extension Khronos additionally provides several queryable attributes that developers can use to tune the algorithms for the hardware capabilities and requirements
archive / summary
the video starts with a visual overview of rasterization, raytracing, and hybrid rendering techniques the talk focuses on how intel hardware is designed to efficiently support raytracing contains benchmark comparisons of expected performance compared to an RTX3060
archive / summary
the article presents a method to generate Progressive blue noise samples that follow the image content shows the implementation in python discusses the effects of different parameters and how they can be used for the required results
archive / summary
the video presents how to implement two VHS effects, interlacing lines and YIQ color grading, in a post-processing effect walkthrough of the effect is provided in both Unreal and Unity
archive / summary
the blog presents the idea of using a simple neural network to encode diffuse indirect light for a scene discusses the various steps in the experiment presents the final results and discusses weaknesses of the approach
archive / summary
second year of the spectral rendering Siggraph course focusing on the practical aspects of spectral rendering shows the limitations of RGB and discusses the advantages of spectral rendering and workflows
archive / summary
a collection of tweets about tech art, VFX, and related topics showcases of in-progress developments and experiments
archive / summary
presents why and when a quad is being drawn as two triangles can cause discontinuities along the edge the paper presents a geometry shader implementation of generalized barycentric coordinates for quads this concept was introduced in 2004 for CPU rasterization when hardware support was not available
archive / summary
the paper introduces an adaptation of the Heitz and Neyret texture tiling technique the original technique required offline preprocessing to enable histogram-preserving tiling the new method removes the requirement and presents the implementation in shader code only presents how to apply the technique for color and normal maps
archive / summary
the blog post provides an insight into how the apple metal driver is separated into components shows how it's possible to call internal APIs and reconstruct hardware behavior presents a discussion of OpenGL clip space mapping and limitations of different emulation behaviors
archive / summary
the video tutorial explains how to implement an outline effect in Unity presents how to detect edges using the depth buffer, create an outline at the edges it additionally shows how to adjust the effect so that objects behind objects get a separate show-through-wall effect
archive / summary
the talk discusses the issues artist encounter and how Nanite goals are designed to resolve them presents a large number of topics Brian Karis had researched along the way shows a brief overview of the techniques, shortcomings, and reasons why they failed discusses how to structure long-term research, focusing on challenges of the field and the importance of coding like a scientist
archive / summary
the paper introduces two convolutional neural networks (CNN) based techniques that can detect LOD transitions and the quality of that transition two models are presented to solve these two issues separately discusses the issue with the current approaches and how the presented techniques could be used to support artists
archive / summary
the article presents an overview of the composable declarative GPU authoring shows how chain compute dispatches, handles historical data as well as visualizes temporary results it additionally discusses how the tree representation allows internal composability and enables background optimizations
archive / summary
the article continues the series of translating DXIL to SPIR-V for use with vkd3d-proton the part covers how to convert structured control flow. DXIL is unstructured and needs to be converted into structured SPIR-V discusses the limitations, oddities and solutions developed to make the conversion work and debuggable
archive / summary
the article presents how to integrate new compilers into the compiler explorer infrastructure (which can be run locally) discusses the DXC and AMD Radeon™ GPU Analyzer integration shows the limitations of the existing integration
archive / summary
the video tutorial presents how to write universal rendering pipeline shaders in HLSL shows how to implement simple diffuse & specular lighting, explaining the render pipeline as the author goes along it also shows how to integrate shadow rendering additionally presents the debugging tools available
archive / summary
the article explains the underlying theory for Bézier curves and shows how the different component interacts presents how to express the curve mathematically so that intersections between a ray and the curve can be found shows how to use the information to detect if a pixel is inside or outside of a shape
archive / summary
the article discusses the different approaches that were tried during the development of lumen presents tradeoffs of the different techniques and how the decision was made on which one to use it additionally shows how the arrival of Nanite changed several variables significantly and therefore made a new evaluation of approaches necessary
archive / summary
the video presents the foundation how to general ReSTIR sampling this allows resampling with importance sampling for arbitrary domains continues to show how to apply these concepts to allow ReSTIR for path-tracers shows how to allow reuse across paths, discusses considerations and limitations
archive / summary
the video shows how to implement a Truchet effect using shadertoy presents the whole implementation from start to finish, showing all intermediate steps it additionally discusses how to extend the concepts and possible future extensions
archive / summary
the paper presents how to adapt multidimensional adaptive sampling for interactive real-time ray tracing applies the technique to stochastic effects such as motion blur, depth of field, and indirect illumination presents a performance comparison against Halton sampling
archive / summary
the OpenGL fog rendering series extends the previous works and implements Layered and animated fog explains the underlying theory before showing the implementation using GLS
archive / summary
the video tutorial shows how to implement cartoon outlines in screen space discontinuities in scene depth and normals are used to detect edges the resulting filtered edge mask is used to apply outlines around objects
archive / summary
Nvidia open-sources MDL distiller and the GLSL backend MDL distiller is a system for automated shader simplifications the GLSL backend enables the usage of MDL for Vulkan applications
archive / summary
A database of physically based values for CG artists (materials, Light Sources, Cameras) contains material information of familiar materials in a unified interface materialX, unity, and unreal shader graphs are available for the different materials
archive / summary
new PIX release allows profiling to target different GPU clock rates (controlled by the hardware manufacturer) added the ability to export metrics to CSV additionally, added support trimming of captures
archive / summary
the post explains how to set up budgets for pix metrics can be defined for the user or system metrics
archive / summary
the article explains the theory of a Gaussian blur algorithm shows how the filter is defined, sample weights calculated it additionally presents how to implement the technique using a Unity Pixel Shader
archive / summary
the article presents a description of the texture/buffer/sampler binding model supported by different hardware manufacturers discusses how Vulkan and D3D12 models map onto the hardware additionally discusses problems arising from the differences
archive / summary
the presentation provides a brief overview of the implementation details for the Nvidia path tracer and the level of optimizations required to archive the performance presents open problems in data authoring, scene description, and material complexity shows ideas on how techniques can be developed together to deliver improved results
archive / summary
a growing collection of content from SIGGRAPH 2022 presentations, slides, videos, and posters
archive / summary
discusses the limitations of linear perspective and how classical artists rarely used it present non-linear projection techniques and how they can be used starts a discussion on how to computationally model and apply these methods
archive / summary
the article presents a technique to generate explosion decals aimed at a 3D topdown game based around forward shading, a projected 3D sphere with procedural noise
archive / summary
video tutorial shows how to implement a bloom effect using Unreal and Unity shader graphs starts by showing visually how the effect works using photoshop before implementing the code followed by presenting a walkthrough of the total effect
archive / summary
the program has been updated with links to the recording of all talks not all papers are available yet; only the author-released copies are available at this time
archive / summary
the article describes the trade-offs between storing vertex information in a single buffer compared to storing the data across multiple streams presents how splitting can have a positive impact on cache usage as well as reduced power consumption
archive / summary
a collection of papers presented at SIGGRAPH 2022 with a one-sentence summary provides links to the ACM entries that provide access to the papers
archive / summary
the paper presents that common image metrics are not a great metric to detect the subjective quality of HDR reconstruction methods shows that only significant changes in metric results are likely to be an improvement suggests that color shifts are more noticeable to the human perception system than most metrics
archive / summary
the video shows how to implement the Cook-Torrance microfacet BRDF provides an overview of the theory first shows how to implement the technique with GLSL
archive / summary
the spec for the new features of shader model 6.7 has been released contains summaries and links to the detailed specification section for each feature
archive / summary
the article presents how to write a metal shader to generate a 1D gradient this is taken as the basis and expanded to generate a 2D, radial, and angular gradients source code is provided
archive / summary
the article contains a small overview of steps taken to port the AnKi engine to support Android discusses how the problem was broken down, issues encountered, and workarounds required
archive / summary
the video tutorial presents how to implement 3 different methods of distance fogs from the ShaderX2 book (released in 2003) implementation is shown in OpenGL/GLSL presents a comparison of the three presented techniques
archive / summary
the presentation introduces compute-shaders, explaining the software and hardware concepts expands upon the basis to explain execution patterns, memory, and cache hierarchies texture reading/writing patterns as well as common mistakes
archive / summary
new tool from AMD to provide more insights into the performance of raytracing applications show much memory is used, if redundant information is stored, all geometric axis aligned, etc video presentation covering the information available is linked
archive / summary
the article presents an Nvidia API extension that allows multiple buffer swaps (between windows and applications) to be synchronized shows the D3D12 API and discusses the usage, conditions for correct usage as well as limitations
archive / summary
Nvidia has updated the performance best practices for RTX usage contains new recommendations enabled with shader model 6.6, updated guidelines for inline ray tracing and many more minor updates across the categories
archive / summary
the detailed article explains the different memory pools available and how they differ between different types shows how D3D12 exposes the memory management discussing strategy for texture and buffer uploads presents performance numbers for CPU and GPU reads/writes and uploads to different memory types
archive / summary
the article discusses the Rust shades crate that allows writing Rust domain-specific language that can be used to generate GLSL code explains the motivation, implementation as well as open issues it additionally provides a comparison against other solutions
archive / summary
the article presents a derivation of a light attenuation function to separately control the maximum intensity and radius function is designed to reach zero influence to be used with clustered shading
archive / summary
the article aimed at beginners explains how images are applied to 3D objects presents what UV (Texture coordinates are) and how to visualize them shows how to explore the relationship between mesh and UV coordinates from Unity shaders
archive / summary
the article presents an overview of barycentric coordinates shows that barycentric can be interpreted as a distance field derives how to render wireframe line rendering from these distances
archive / summary
the article provides an overview of font rendering looks at the different levels that cover glyph evaluation, line layouts, and antialiasing presents rasterization constraints, how to cache glyphs for efficient rendering additional covers how to deal with sub-pixel positioning
archive / summary
the presentation video discusses the LOD generation used in Cyberpunk 2077 (3D models and materials) discusses the different algorithms that were used for different types of models and materials provides an overview of the pipeline and infrastructure integration
archive / summary
slides for the GDC presentation talking about the deferred texturing solution has been released summary in [week 231](https://www.jendrikillner.com/post/graphics-programming-weekly-issue-231/)
archive / summary
a growing collection of graphics samples and libraries for the zig programming language the provided samples cover how to use the released libraries
archive / summary
the article discusses how to load and process glTF models for efficient execution presented techniques aimed at WebGPU but mainly applicable to D3D12/Vulkan as well
archive / summary
a super detailed analysis of the RE Engine used by Resident Evil shows the passes, what data structures are used, and detailed breakdowns of the effects of the passes
archive / summary
the video tutorial explains common shadow problems and why they occur proceeds to present different solutions to the issues and compare the methods
archive / summary
list of papers presented at High-Performance Graphics 2022 contains links to the projects, papers, and youtube videos if available
archive / summary
the video tutorial presents how to implement a fullscreen camera space rain effect implementation is done using Unity and Unreal visual shader system
archive / summary
the stream shows a practical example of how to implement FSR 2.0 into the authors' personal engine presents the complete process, including example project setup, engine integration, and testing
archive / summary
collecting of optimizations done to reduce the Moana USD scene import time into Blender from 3 hours to 1.5 minutes includes generally applicable advice for performant CPU code implementations
archive / summary
a collection of advice for SIGGRAPH 2022 (virtual) attendees list of links and events around the event
archive / summary
article presents improvements in the new Nsight and Aftermath releases improved Ray Tracing Acceleration Structure Viewer and VK_KHR_graphics_pipeline_library extension support for Nsight graphics Aftermath has better support for tracking page faults from data writes
archive / summary
the GDC presentation covers how the grass is procedurally generated in compute shaders how vertex shader animates the blades and wind influences the shapes presents the LOD transitions, how shadows are processed it additionally covers how artists can control the effects
archive / summary
the article presents a couple additional order-independent transparency algorithms provides a brief overview of Weighted Blended Order-Independent Transparency (WBOIT) as well as Moment based OIT (MBOIT) shows the influence of screen size, quality setting as well as render target formats on the performance of the techniques
archive / summary
Nvidia presents best practices to achieve stable performance results on NVIDIA hardware it recommends not only using SetStablePowerState as it doesn't lock memory clocks instead recommends using the NVidia-smi utility
archive / summary
the video recording of the first day of the High-Performance Graphics conference covers temporally stable upscaling and denoising, variance-guided filtering for motion blur, as well as virtual blue noise lighting the recordings of the other days are available on youtube as well
archive / summary
the article focuses on the new capabilities added in shader model 6.7 now supports integer border colors, dynamic programmable offset, as well as new quad all/any operations adds support for writing to MSAA targets via UAV as well as more relaxed uint castable texture formats (same idea as Vulkan, creation time list of allowed formats) it additionally adds support for raw gather instructions
archive / summary
a new preview of the Agility SDK improves the enhanced barrier API support, significantly better debugging support as well as it allows Independent Front/Back Stencil Refs and Masks
archive / summary
a brief summary of the main features of shader model 6.7 and what is supported by the new AMD pre-release drivers
archive / summary
the video shows how to implement a custom material into the Rust-based Bevvy engine presents the necessary Rust and Shader(WGSL) code required to achieve the effect of a dissolving object
archive / summary
the article presents a brief overview of techniques that can be used to upgrade a simple raytracer to generate results that converge quicker shows the effect of importance sampling and what possibilities exist
archive / summary
the short paper presents the Pixar technique for Modeling Braids and Curls
archive / summary
the paper discusses a decoupled shading implementation that separates rasterization from shading by shading pixels before they are rasterized presents how it determines what pixels will need to be shaded what space to allocate for storing the shading results and how to execute the shading discusses strengths and weaknesses of the approach presents performance comparisons against a forward shading implementation it additionally covers numerous considerations that are required for a robust implementation
archive / summary
the paper presents how to generate multiple 2D blue noise textures so that the blue noise is both spatially and temporally a blue noise pattern the presented solution is a drop-in replacement for applications that are already using independent blue noise textures discusses how to generate the textures and compare multiple methods it additionally presents a comparison of the technique in multiple test cases and compares against other methods take a look at the supplemental for more practical information for real-time use cases
archive / summary
the 4-hour video stream discusses the evolution of the Vulkan API discusses the underlying concepts, issues, and how the changes in Vulkan 1.3 try to improve talking about pipeline management, render passes, new synchronization API it additionally also covers the other more minor extensions added to the core
archive / summary
the paper presents a neural network architecture that allows both denoising and supersampling to be applied as part of a single network this is achieved by sharing a joint feature extractor discusses the different stages of the network, what inputs are required and how they interact presents a comparison against existing solutions and offers performance numbers
archive / summary
the paper presents a new GPU-based method to generate 2D contour strokes from 3D meshes proposed solution uses a preprocessing step to analyze the adjacency and geometric information discusses the different steps of implementation it additionally shows how to further utilize the counter edge lines to support different patterns example implementation in Unity is provided
archive / summary
the lesson provides the foundations of ray marching through a volume explains how light interacts with a medium, introducing the required terms along the way
archive / summary
the new home for the AMD research team provides a collection of publications, projects, presentations as well as blog posts
archive / summary
the post provides a walkthrough of all the D3D12 elements that are involved in getting started with a raytracing workload discusses the different concepts and how they relate to each other shows how to author raytracing shaders it additionally shows how the integration in Microsoft Mini Engine has been achieved
archive / summary
the paper introduces a visibility-aware transmittance sampling technique for rendering atmospheric scattering this is achieved by adjusting the sample locations along the view vector past the shadow boundary so that all samples contribute meaningful data compares the solutions against others and presents cases where the proposed solution is not able to improve it additionally provides an example of a CPU implementation
archive / summary
the second part of the blog series that talks about order independence transparency this week focuses on techniques that aim at solving transmittance contribution first and then applying the factors while shading shows how Rasteriser Order Views (ROVs) can be used to implement custom blending operations presents performance implications of the proposed techniques
archive / summary
the Twitter thread discusses the terminology that applies to meshes presents the difference between static, dynamic, deformable, and procedural meshes
archive / summary
the Xfest presentation discusses the portal implementation for Psychonauts 2 covers how portals are represented in the world, how to render the portal world, discusses issues encountered and how they have been overcome it also presents essential performance optimizations it additionally covers how to calculate the required transformations and solve system interaction problems
archive / summary
the paper presents a new method for stratified resampling shows a single pass solution to inverse CDF sampling (similar to reservoir sampling) extends the presented solution to other domains and compares it against existing techniques
archive / summary
the video presents how to use second-order systems to allow dynamic motion control in procedural animation scenarios presents the mathematics and an example implementation in Unity
archive / summary
the article presents how to combine multiple tricks to create the appearance of volumetric fog combines a height map-based mesh with depth & translucency fading to create the illusion discusses the steps required and provides examples in C++ / Unreal visual script
archive / summary
overview of the talks that will be presented at the Advances course as part of Siggraph 2022
archive / summary
the article presents Nvidia's best practices for clearing textures and depth buffers clarifies what methods are preferred and how clear values can influence performance it additionally presents the tradeoffs between the different presentation modes
archive / summary
the video tutorial presents how to create a post-processing effect that simulates an underwater look covers depth-fog, distortion, lens distortion, and caustics presented using Unity and Unreal visual shading system
archive / summary
the article presents how to generate a procedural Icosahedron mesh shows and discusses the differences in point distribution compared to other sphere mesh structures
archive / summary
the article presents how to improve compute shader performance when workloads are memory limited presents how to detect if a CUDA shader runs into register limits it additionally shows how CUDA launch bounds (promises on work sizes) can give the compiler more information for more aggressive optimizations
archive / summary
the article presents how to use per-pixel linked lists to implement order-independent transparency presents performance and memory results of the solution it additionally discusses limitations and a look at alternatives to reduce memory overhead
archive / summary
the article presents a discussion of the different physical Units used for light description provides explanations for each unit and the relationship between them it includes a handy summary graphic as a cheat sheet to remember the relationships
archive / summary
the article compares BC decompression libraries compares the level of format support, decoding performance, and build complexity
archive / summary
the blog posts announce the release of a first preview of the DirectML backend for the TensorFlow 2 this allows workloads to be executed on generic D3D12 capable GPUs (AMD, Intel)
archive / summary
AMD released FidelityFX™ Super Resolution 2 (FSR2) to the public source and documentation about the integration is available it additionally provides information about the different modes and provides comparison images in different scenes
archive / summary
Khronos is sharing the first details about what the cross-vendor Vulkan mesh shader extension will look like presents what the differences to the VK_NV_mesh_shader will be and what to take into consideration when designing a solution today
archive / summary
the paper presents an overview of the NVidia Fast Volume Rendering with Spatiotemporal Reservoir Resampling paper video compares against previous results and how ReSTIR techniques can help to reduce noise and require a large reduction in sample counts
archive / summary
the last part of the series covers how to extend the ray-tracing onto the GPU using OpenCL presents the extensions necessary to render hundreds of Stanford Dragons with reflections and lighting
archive / summary
the video discusses the importance of color transformations to final images shows how color shifts can make for very unnatural behavior shows how filming tone mapping can resolve these issues it additionally presents an overview of how filmic tone mapping curve controls in the darkroom tool
archive / summary
the article presents work done to make GPU operations reactive, declarative, and composable and remove many of the tedious manual boilerplate work required presents the problems and motivation for the suggested solutions the code and demos using WebGPU are available
archive / summary
the video explains how to implement a positional-based cloth simulation on the GPU presents how to use NVIDIA Warp to use Python to author the simulation code it mainly focuses on mapping the algorithm onto the GPU for efficient and valid execution
archive / summary
the video shows to create 3 types of fullscreen masks (square-edge, round-edge, and distance) then presents how to use them to mask off areas where an effect should not be applied it additionally presents how to apply a vignette effect implementation is shown using the visual shader authoring system in both Unity and Unreal
archive / summary
the article presents a method to pack individual power-of-two textures into a texture array discusses the placement rules and how to pack them it additionally includes a brief code sample implementation
archive / summary
the video tutorial explains how to use an orthographic projection to implement directional light shadows explains the mathematical understanding behind orthographic projections and how to create a matrix for the projection it additionally shows the difference between left/right-handed coordinate systems presents the C++ and OpenGL implementation code required
archive / summary
the Vulkan Memory Allocator is now included as an optional component in the Vulkan SDK can be installed directly from the SDK installer
archive / summary
the article presents an overview of the problems and solutions of real-time game graphics technology what aspects have been solved/standardized, and what open problems remain presents the author's proposal for future directions for the industry
archive / summary
the article introduces D3D12Lite, a library that is meant to streamline the introduction to D3D12 the tutorial explains the necessary steps to get started, draw a triangle and advance to drawing a textured cube it additionally shows how to integrate ImGUI into the application
archive / summary
the article presents a method to generate stratified samples of arbitrary dimensionality the method is based on Magic Square Sampler discusses the origin of the technique, how to implement it, and a brief comparison against other methods written in both English and Japanese
archive / summary
the presentation provides a summary of new features in Metal 3 new API to allow direct loading from file storage into GPU buffers using a command-based API allow binary shader generation at build time to remove runtime shader compilation introduction of mesh shaders, improved raytracing with indirect command buffer support
archive / summary
list of all metal sessions at WWDC22 covering new metal features, HDR/EDR handling, bindless resource model, machine learning, optimizations, and more
archive / summary
the text and video tutorial is the start of a new beginner-focused shader authoring tutorial for Unity the first part shows how to implement a text-based shader for the Universal Render Pipeline (URP) provides an overview of the pieces of the general rendering pipeline theory required to be able to render a textured sphere
archive / summary
the video tutorial shows the steps required to set up to create post-processing shaders using shader graphs in both Unity and Unreal presents color tinting and screen warping examples in both engines
archive / summary
the Digitial Foundry video provides an in-depth comparison between FSR 2.0, native TAA as well as DLSS upscaling solutions for God of War shows how they handle camera movement, object movement, transparency as well as hair and vegetation
archive / summary
the article discusses why the explicit synchronization nature of Vulkan is a significant problem on Linux presents solutions possible today and what side effects they cause shows the more modern solution that is possible now and how it allows more efficient explicit synchronization support
archive / summary
the article clarifies the meaning of sRGB encoded textures presents how they interact with (pre-multiplied) blending it additionally presents issues that exist with the combination of block compressed textures
archive / summary
the article provides a high-level description of the techniques used based on a meshless camera-aligned irradiance cache heavily relying on ReSTIR for many of the techniques animations help to explain the processes involved discusses what situations are well suited for the technique as well as what are the limitations
archive / summary
video showing an overview of some of the papers to be presented at Siggraph 2022 covering fluid simulation, sound generation, physics, learned locomotion, and much more
archive / summary
the article presents the first part on how to convert a C++ raytracing kernel to OpenCL presents the differences between the language semantics and how to convert C++ code step by step it additionally provides a quick start guide to the provided OpenCL template code
archive / summary
the Twitter thread discusses a restricted version of specialization constants for D3D12 usage presented method is based on patching DXIL and letting the native compiler optimize the instructions when converting to native instructions
archive / summary
a short article that discusses some ideas to represent frame time in graphs showing issues with different methods and suggesting rectangles proportional to frame time taken
archive / summary
the video tutorial shows the issue when hex-tiling (as discussed in the previous part) is applied to normals presents how to resolve the normal map orientation mismatches implementation is shown using Unity and Unreal visual shader languages
archive / summary
a beginner level focused article that introduces OpenGL compute shaders shows how to fill a texture with a scrolling color gradient
archive / summary
the video paper summary presents the ReSTIR introductory paper presents a comparison between previous techniques as well as the biased and unbiased version of ReSTIR it additionally presents how it interacts with upscaling techniques
archive / summary
the video shows how to extend a 2D Koch curve SDF into 3D using shadertoy presents a walkthrough of the implementation of 2 different methods implementation is done using shadertoy
archive / summary
the article presents how to use compute-shader based Variable Rate shading techniques to reduce the cost of raytracing shows how to decide on the shading rate per-tile compares a thread based rejection efficiency against wave-based rejection
archive / summary
the article extends the BVH constructed over the last couple of posts to implement a more complete raytracer using it shows how to extend the barycentric coordinates to implement texture sampling and generate per-pixel normals it additionally shows how to implement reflections and recursive raytracing
archive / summary
the detailed post presents the basis knowledge required for a single image deconvolution (remove blur) filter it discusses the theory, algebraic, and frequency domain approaches it additionally shows how to combine all the elements to create filters for linear deconvolution
archive / summary
the blog post presents that PIX is now supported on Arm devices additionally, Qualcomm added a plugin to allow hardware counter collection on many devices
archive / summary
the video tutorial presents how to implement shadow mapping using OpenGL shows the necessary theory underlying the technique then proceeds to show the different aspects of the implementation additionally, it presents common problems of the algorithm and how to resolve them
archive / summary
the paper presents the idea of the usage of a meshlet atlas for texture space shading the presented technique is based on meshlets and transforms per-meshlet information into texture space where shading for the samples will take place shows how to use meshlets as the basis for texture space management to use the available texture space efficently additionally compares quality and performance against other methods
archive / summary
the blog post describes the different methods WebGPU offers to upload data from the CPU to the GPU shows different use patterns and what the advantages/disadvantages of each method are
archive / summary
the article presents a frame breakdown of the PC version of Elden Ring shows the different passes, from color passes to post-processing, and finally UI composition
archive / summary
the video provides a summary of the findings of teaching both OpenGL and Vulkan as part of the Introductory Graphics Courses compares the challenges and experiences of students, as well as the workload required it additionally provides pointers on how to teach Vulkan to beginners in the most efficient way
archive / summary
the second edition of the Rust graphics developer meetup covers the WGPU implementation of resource lifetime tracking and barrier detection logic Additionally covers performance optimizations required to speed up these systems
archive / summary
the video explains how to use hexagonal texture sampling/blending to create a shader that allows less noticeable texture tiling presents the logic, explaining step by step how to create the shader using visual shader graphs using Unity and Unreal
archive / summary
the article shows what the DirectStorage API enables on PC presents what workloads can be accelerated by using the API and what API limitations exist additionally presents workloads outside of games that could benefit
archive / summary
15 min video explaining the concept has been added discussed in more detail in [week 231](https://www.jendrikillner.com/post/graphics-programming-weekly-issue-231/)
archive / summary
the article expands the the previous BVH implementation with the necessary logic to support UV and Normals shows how to calculate the intersection point Barycentrics coordinates and how to interpoliate vertex arguments additonally points out the importance of data seperation for good performance
archive / summary
video recording of the I3D 2022 conference, all 3 days are available covering a large amount of topics, including soft shadows, vertex compression, interactive plume, machine learning for humanoid models, ...
archive / summary
the video provides a summary of AMD rayracing research covering global illumination sampling and multi-resolution geometric representation, stochastic light sampling additionally introduces the Orochi library to unify CUDA and AMD HIP gpu execution
archive / summary
the article provides a brief overview of VRS modes available performance advice for how it affects hardware limits additionally gives some recommendations on what workloads can benefit from VRS usage
archive / summary
the article presents performance advice from Nvidia for clear operations shows that the number of different fast clear colors per frame is hardware dependent
archive / summary
the article discusses how the AMD FidelityFX Variable Shading library was integrated into The Riftbreaker presents how the shading rate is selected per-tile it additionally suggests that classification variance cutoff values should be adjusted based on screen resolution
archive / summary
the article compares several .obj parsers for loading speed and memory usage presents a comparison table of supported features
archive / summary
the post presents a list of articles/papers that discusses Reservoir-based Spatio-Temporal Importance Resampling starts from the introduction of the technique, applications of the technique to issues a collection of techniques that improve upon the original technique additionally presents remarks about the limitations of the technique
archive / summary
the article expands the capabilities of the BVH construction to support a more significant number of instances discusses an improved algorithm for the efficient updating of BVHs it closes with a look at performance and the next steps
archive / summary
the video shows a summary of block compressed formats and why they are a good fit for GPUs discusses the different formats, showing strengths and weaknesses of the different BC[1-7] variations
archive / summary
the video lecture contains a detailed description of Vulkan Synchronization topics provides visual explanations of the different concepts to make understanding easier discusses limitations of binary semaphores and what timeline semaphores enable
archive / summary
the article describes a how a system can derive execution order from rendered resource dependencies presents how the dependencies create a graph that can then be analyzed and used for barrier placements, memory reuse shows how to express the API in Rust
archive / summary
the video tutorial explains the theory of toon shading and rim lighting effects presents how to implement the effect using OpenGL and GLSL
archive / summary
the article discusses how to calculate UV derivatives in compute-shaders presents issues that will occur at the geometry edges and how to resolve them
archive / summary
the blog post raises the point that GGX was introduced in a 1975 paper by Trowbridge and Reitz discusses why we as a community should prefer to use the original term
archive / summary
the article presents how to extend the BVH structure to allow multiple objects in the same structure (TLAS) explains the necessary knowledge of matrix (inverse) transformations
archive / summary
the High-Performance Graphics conference is running a student contest students are asked to implement the highest quality path-tracer within a performance limit
archive / summary
the article presents the underlying mathematical modeling commonly used to represent volumetric effects (such as the earth's atmosphere) presents different approaches and derivations to model different effects
archive / summary
the paper presents a method to adapt the set of sampling techniques in multi importance sampling to an input scene automatically the aim is to remove the need for manual tweaking of distributions based on a scheme for estimating the second moments of different sample allocation strategies
archive / summary
the blog post explains the derivations of importance sampling schemes for multiple functions covers uniform, Cosine-weighted, Power cosine-weighted, Microfacet-BRDF, Blinn-Phong, as well as Beckmann derivations
archive / summary
the article presents the idea of using ReSTIR for a checkerboard style pattern for shadow ray generation only every other pixel would sample new; others would reuse the reservoir of nearby pixels
archive / summary
the article presents the implementation of a ray-binning technique the technique aims to improve performance by processing rays that are likely to hit similar objects together
archive / summary
the paper introduces a generalized approach to resampled importance sampling for correlated samples with unknown PDFs presents the results in an interactive ReSTIR path tracer
archive / summary
the video shows how to pack sprites into a 2D texture atlas to reduce the number of draw calls required presents how to set up the vertex data and shader stages to unpack the data it additionally explains uniform buffer objects and presents the effects on performance
archive / summary
the post presents a method for reducing the size of visibility output buffers and the effect on performance shows that it's more efficient to recalculate ray differentials than it is to rely on hardware differentials to be stored in additional channels
archive / summary
the article presents how to update a BVH tree for an animated mesh introduces the refitting technique to allow fast adjustments of an existing BVH tree for changing triangle data
archive / summary
the article presents a walkthrough of how to use GPU Trace Analysis and GPU Profiler to identify performance issues in a shader presents examples of cases that show different limits
archive / summary
the paper presents a database of 63 optimized and regularized SDF functions of varying complexity additionally, a tool for viewing and inspection is provided
archive / summary
the article discusses the complexities of implementing ExecuteIndirect from a driver's perspective presents what kind of functionality is affected and how it affects driver maintainability presents a look at the capabilities of VK_NV_device_generated_commands
archive / summary
the video on how to implement ray-casting from the cursor position into a 3D world to allow the movement of objects discusses the necessary mathematical transformations presents how to implement the technique using OpenGL
archive / summary
the blog post presents the new capabilities of the agility SDK new optional features allow the reduction of alignment requirements it additionally clarifies the copy behavior between resources of different dimensionality
archive / summary
the thread explains the history of the PS1 hardware and how it defined the look of the games of the generation
archive / summary
a collection of news from the graphics windows development world covering PIX, OpenGL on ARM, Dynamic Refresh Rate, as well as win11 updates
archive / summary
the article presents an overview of the shader compilation pipeline in Wicked Engine presents how to track header dependencies when using the DXC shader compiler and how to detect changes to trigger recompilation presents pointers on how to unify Vulkan and D3D12 shaders as much as possible
archive / summary
the Sponza rendering scene has been updated it now contains 4K PBR texture sets and high-resolution geometry optional packages such as curtains, ivy, trees, and emissive candles are available too additionally, a fully rigged and animated knight model has also been released
archive / summary
the article presents the screen space solution for Global Illumination presents the four steps of the process and how the individual results combine code examples for different steps are provided
archive / summary
the article presents the authors' first experience with writing a compute shader to implement a Gaussian blur presents the different stages of the experiment, presenting performance numbers for different work sizes and execution patterns this shows how writing pixel shaders can outperform unoptimized compute shaders by a large margin
archive / summary
the article presents how to use a Surface Area Heuristic (SAH) to improve the quality of the BVH generation shows how much speedup can be achieved with the use of the heuristics it additionally covers additional performance optimizations through ordering changes and the usage of SSE
archive / summary
the article presents improvements to the new profiler version contains support for raytracing performance counters and inline raytracing additionally, searching in the ISA of the pipeline is directly supported now
archive / summary
the article presents how to reduce the time required for the presented BVH build from seconds to milliseconds shows an alternative split plane and binning algorithms to speed up the process
archive / summary
the video tutorial explains how to modify UVs from a shader graph in both Unity and Unreal Engine 5 explains the concepts step by step and presents the results
archive / summary
the talk presents the Slang Shading language presents how generics and interfaces are implemented in an efficient way for GPU execution shows how the language has been deeply integrated into the Falcor material model explains the building blocks for cleaner parameter binding logic across APIs
archive / summary
program for the ACM SIGGRAPH Symposium on Interactive 3D Graphics and Games has been released the conference will take place Tuesday, May 3, through Thursday, May 5, in a virtual setting
archive / summary
the Digital Foundry video analyses the performance of the UE5 Engine presents a comparison between hardware-accelerated and software only Lumen in terms of performance and quality shows how CPU limited the demo tends to be
archive / summary
the video provides an overview of tessellation shader concepts shows how to implement a basic tesselation shader using OpenGL the example presented shows how to adjust the tessellation level of a plane dynamically around the curser
archive / summary
the article introduces standard terms and concepts used in compiler literature applies the concept to start explaining the conversion from unstructured control flow into structured control flow discusses common patterns and issues found in the DXIL generated from DXC
archive / summary
a collection of papers to be presented at Eurographics 2022 a large number of topics are covered, including terrain authoring, spherical harmonic lighting, radiance transfers
archive / summary
the GDC presentations talk about the implementation of the Deferred Texturing developed to reduce the vegetation rendering cost a very detailed look at the different implementation stages how it integrates into the Decima rendering pipeline and a look at the performance improvements achieved it additionally presents how to implement a variable rate solution on hardware without native support
archive / summary
the paper presents a new approach to compressing vertex data at a fixed bit-rate the paper presents error analysis, compares against existing solutions in terms of prevision and performance up to 13 per-vertex skinning weights can be compressed into 64bits with included code
archive / summary
the article presents a detailed look at how different D3D12 ConstantBuffer patterns are mapped into SPIR-V shows how the patterns are mapped onto the hardware in RDNA2 ISA discusses how non-uniform resource influences the code generation additionally discusses quirks/limitations of ByteAddressBuffers and RWStructuredBuffer
archive / summary
the article presents a summary of different methods to express rotations presents interactive visualizations of the methods shows the behavior of linear interpolation, discussing the limitations of the methods it additionally shows the mathematical derivation of the methods
archive / summary
the video presents an overview of the challenges in shader development discussing how Slang can address these challenges shows the decisions made to adjust the project development to prioritize adoption over publication from the start a brief look at how it matches into raytracing shaders and a look at upcoming developments
archive / summary
AMD released a library to enable applications that use Heterogeneous-Computing Interface for Portability (HIP) to access ray tracing hardware this enables general C++ GPGPU computing workloads to take advantage of raytracing shaders on Nvidia and AMD GPUs
archive / summary
the article describes how to construct a BVH from a collection of triangles axis-aligned bounding boxes are used as the foundation of the structure shows how to build and traverse the BVH
archive / summary
the paper introduces an LTC (Linearly Transformed Cosines) approximation to anisotropic GGX using 4D lookup textures the demonstration video shows the importance of anisotropy for metal surfaces example code is provided
archive / summary
the blog posts demonstrate how to implement ReSTIR (Spatiotemporal reservoir resampling) presents the implementation for Lambertian diffuse shows how to extend the concepts also to support specular sampling additionally presents the author's technique to combine the influences
archive / summary
the article provides a showcase of the importance of a projection solver for a real-time fluids presents the Jacobi method and compares it against the Multigrid algorithm
archive / summary
the video explains the concept of refraction and existing techniques to implement the effect covers how to draw transparent objects and how it's expressed in the rendering pipeline shows the importance of drawing order when using rasterization and presents techniques for order-independent transparency presents alpha testing and limitations with mipmapping alpha testing it additionally covers solutions to ensure that objects look correctly under minification
archive / summary
the visual graph provides a visual representation of the different passes from the fluid simulation of the iOS application provides short overviews of the implementation of the different passes it additionally provides a visual representation of the visible state of the textures involved at the different stages of the pipeline
archive / summary
the video provides a complete walkthrough of the creation of a large outdoor environment using shadertoy presents how to implement a terrain using fractal surfaces, sun lighting, atmospheric scattering, clouds, grass, and trees it additionally shows how to apply color adjustments for artistic expression
archive / summary
the article presents a retrospective of raytracing experiments done using compute shader implementations shows an introduction for every experiment and how they present a continuous research space providing links to an article covering each experiment
archive / summary
the article presents an abstraction system to allow shaders to author bindings without having to be aware of binding details in an abstracted method shows how to emulate Shader Model 6.6 ResourceDescriptorHeap functionality in Vulkan where it's not yet available
archive / summary
the article provides an in-depth look at the core loop optimizations of the Oodle decoding step for AMD jaguar CPUs discussing hardware details of the CPU cores and how they define the decoder design
archive / summary
the 30min video provides a summary and examples of the new features in Unreal Engine 5 (UE5) to build an example scene covering things like Niagra particles, fluids, landscape modeling, object material blending, nanite, etc
archive / summary
the video tutorial shows how to implement ten different effects using UnityShader graphs covering outline, dithered transparency, and vertex waves
archive / summary
the video shader tutorial shows how to use tessellation and displacement to create dynamically detailed meshes presents how to control the displacement amount from a height texture it additionally shows how to control the amount of tessellation only to add extra detail when needed on the silhouettes
archive / summary
a high-level overview of what Global Illumination is, the importance for the rendering results presents several techniques that exist for the calculation of GI these include radiometry, lightmapping, Path tracing, Voxel Cone Tracing as well, as Virtual Lights
archive / summary
discusses what Ambient Occlusion is, provides how it fits into the rendering equation and what it cannot express presents a high-level overview of an existing screen space technique to calculate the effect it additionally covers why in most cases, soft shadows are expected and techniques to approximate the effect
archive / summary
the video tutorial shows how to generate a procedural hexagon shape mesh extends the generation to logic to support 3D hexagon shapes and combine them into a grid implementation is shown using Unity C# code
archive / summary
the blog post describes the functionality of the new pipeline library extension and how to use it to reduce draw-time shader compilation stalls the extension breaks up PSO compilation into four distinct areas Vertex Input Interface, Pre-Rasterization Shaders, Fragment Shader, Fragment Output Interface these separate aspects can then be linked together to create the PSO link-time optimizations are optional to trade compilation time for runtime performance
archive / summary
the paper presents an improvement of compute shader-based point cloud rasterization presents LoD structures for point clouds introduces the concept of per-batch Adaptive Vertex Precision that allows each batch to use three different position precisions relative to the center of the batch
archive / summary
the blog post details the changes in the new PIX version enables exporting captures into C++ so that users can simplify or experiment with making changes to the generated code
archive / summary
the GDC talk presents the Mali Offline Compiler and how to use it to analyze shader performance at authoring time discusses the importance of understanding your target hardware to make informed decisions presents how much instruction costs might vary between different hardware generations highlights the importance of choosing the correct variable precision
archive / summary
the video lecture explains the concepts of compute shaders covering how to bind resources, compile and use shaders from OpenGL it also covers the execution model covering execution groups, threads, and how it matches onto hardware cores it additionally covers how mesh shaders fit into the graphics pipeline covering the high-level concepts and presenting demos of mesh shaders
archive / summary
the video tutorial shows how to implement specular highlights for a toon shader extends the shaders from the previous part of the series implementation is shown in both Unity and UE4 visual shader editor
archive / summary
the video lecture presents deferred shading, discussing the problems of forward shading and how deferred can help to overcome them it also covers a brief overview of anti-aliasing techniques it additionally covers how Variable Rate shading can be used to reduce the shading rate for a group of pixels to reduce shading cost further it additionally presents an overview of Deferred Adaptive Compute Shading
archive / summary
the article provides a collection of performance advice to consider with texture sampling discusses how helper lanes are required for MIP selection presents different ways that can allow reduced energy consumption on Mali GPUs
archive / summary
the video explains how to use render-to-texture to enable object selection draws out an object id and primitive ID to a texture this texture is read back to the CPU to allow the detection of which object has been selected
archive / summary
the talk provides an overview of different LOD concepts how different Level of Details modes can be used to achieve improved performance
archive / summary
the article provides an overview of a denoising solution for raytraced global illumination based on the findings of Metro: Exodus presents how to improve temporal accumulation through blue noise and geometry aware blurs it additionally sounds how the ambient occlusion term can be used for further improvement
archive / summary
the article discusses a method for a simple non-PBR method to implement underwater caustics implementation uses a projection volume for multiple tiling textures code examples are provided using Unity
archive / summary
the article presents a walkthrough of the implementation of a complete skybox model, including time of day, moon, sun, and stars it additionally shows how to integrate support for lunar and solar eclipses the implementation of the sky colors is implemented as a function of the sun position to sample multiple gradients
archive / summary
the article describes a large number of changes and improvements made to the AMD and Vulkan Memory allocator the changes include new allocation algorithms, improved statics, support for custom pools as well as support for defragmentation additionally, the allocator can now be used when sub-allocating from a single large buffers resource
archive / summary
a collection of slides and videos from AMDs talk at GDC 2020 covering raytracing, FidelityFX Super Resolution 2.0, game rendering effects as well as CPU optimization advice
archive / summary
Vulkan loader has been improved with more debugging capabilities and improved documentation additionally improved the testing framework to ensure more consistent behavior across layers
archive / summary
podcast discussing the development and design of WebGPU talks about the restrictions, design goals, and how it fits into the broader graphics ecosystem
archive / summary
the page contains links to the presentations (slides and video) to the talks given by Intel at GDC 2022 covering upscaling, optimizations, VRS, machine learning as well as optimization advice
archive / summary
the article provides in-depth details about the new Hopper GPU architecture for data center usage shows performance numbers, new capabilities, improvements as well as new
archive / summary
the video presents an overview of techniques to represent more geometric details without having to use high geometric tessellation levels explains the differences between the different techniques, how they are related explaining strengths and weakness
archive / summary
the blog explains the graphics foundations of Mach, a zig graphics foundation layer provides an overview of the unified API abstractions that use WebGPU and WGSL internally
archive / summary
the paper presents a derivation of a representation for rotation and non-uniform scaling in a compact representation HLSL code for the implementation is provided contains a performance comparison against quaternions and matrix operations on RDNA2 hardware instruction costs
archive / summary
the video tutorial provides a starting guide to OpenGL debugging starts by covering CPU side error detection and apitrace (capturing tool for all API calls) additionally provides a collection of helpful tips to apply when trying to debug GPU side issues
archive / summary
the article recaps the effects of linear transformations of random variables describes three different methods of estimating the effects of nonlinearities on mean and variance/standard deviation shows practically how color spaces can affect the behavior of operations such as blurs
archive / summary
video tutorial presents a walkthrough of implementing volumetric god rays and subsurface scattering into a shadertoy all presented techniques are based on SDF rendering of a 3D sphere orb-like structure
archive / summary
the new release of Pix supports DirectStorage visualization on the timelines article shows what is supported and how it's represented in the UI
archive / summary
Microsft has released the first public version of DirectStorage the release contains the API and basic simples about the usage of the API
archive / summary
the article presents an introduction into Reservoir-based Spatio-Temporal Importance Resampling shows the basics of the technique building on the ideas of Resampled Importance Sampling clarifies how reservoirs work and how reservoirs can be intelligently combined to allow the sampling of large light counts with bounded performance impact
archive / summary
the video course provides an understanding of the geometry shaders' capabilities reviews the OpenGL primitives and presents the new adjacency types added for primitive shaders shows how to use the GS from GLSL additionally shows examples of Geometry Shader usage
archive / summary
the video tutorial explains how to implement toon shading presents multiple approaches on how to achieve the desired look technique implementation is shown using visual scripting in Unity and UE4
archive / summary
the video tutorial covering Tessellation shaders explains how vertex count can be the bottleneck of the GPU pipeline and how tessellation can solve the problem shows how tesselation shaders are integrated into the rendering pipeline and how they are used from GLSL and OpenGL additionally presents a few examples of tessellation shader usage
archive / summary
the article present how to derive a downsampling filter that uses eight bilinear samples shows the process how to create the desired response and optimize the weights includes a shadertoy implementation
archive / summary
the article presents an overview of sRGB, Linear, and Oklab gradient interpolation shows how to optimize the linear and Oklab calculations to get a lot closer in terms of performance compared to direct sRGB interpolation
archive / summary
the article discusses the authors' decision for a home renderer abstraction layer focusing on ease-of-use for experimentation over performance
archive / summary
the article presents the implementation of a bindless binding model using D3D12 and Vulkan discusses the decisions, trade-offset as well (API) implementation-specific details code examples are provided in Rust
archive / summary
the article presents a compiler approach that takes an SDF representation and generates shaders for cheaper execution on parts of the mesh lists several recommendations to consider when implementing additionally provides a few use cases for the SDF Evaluator
archive / summary
the paper extends the ideas of Stochastic Light Culling to compute single scattering in a homogeneous media presents how combining reservoir sampling with the introduced technique can improve performance
archive / summary
the paper introduces a technique to lower the cost of ray tracing by using approximated geometry for shadow rays additionally proposes a stochastic material sampling for material blending presents how to combine the techniques in a path-tracer implementation
archive / summary
the article presents hardware and shader compiler improvements for the new Malig G710 GPU provides details into how the improvements compared to previous generations additionally provides updated best-practices for best performance
archive / summary
the forum post presents the proposal to integrate HLSL and DXIL support into clang/LLVM discussion presents insights into the tradeoffs in the compiler backend and difficulty with GPU architectures
archive / summary
the article provides an introduction to WebGPU for compute shader workloads starts from the basics and walks through all steps required to implement a simple 2D ball physics simulation shows how to upload readback data from the GPU
archive / summary
the page contains information and links to all the talks that AMD will present at GDC22 lists what new tools and libraries are going to be announced number of talks will be freely accessible on GPUOpen
archive / summary
the article presents an explanation of common tone mapping issues, comparing multiple local tone mapping solutions discusses the Exposure fusion technique in detail the technique combines multiple exposed images with varying radii based on the frequency changes in the image present a WebGL demo implementation of the technique
archive / summary
the presentation talks about techniques to use VRS (Variable Rate Shading) to reduce the cost of lighting calculations for deferred shading presents implementation details for PC/Series X and presents performance comparisons of the techniques additionally introduces a technique to reduce block artifacts
archive / summary
the presentations cover the experience of implementing VRS into Doom Eternal and Gears5 contains lessons learned, performance expectations as well as implementation details additionally covers how VRS performance with UE5 Nanite pipelines
archive / summary
the article discusses the effect that human perception and images appear different presents shortcomings of linear perspective shows how different types of focal lengths and perspectives create different effects
archive / summary
the article presents a collection of code samples that allow the selection of random samples from a list of items shows different cases from known/unknown sizes, weight vs. unweighted sampling additionally presents how to combine multiple lists into a coherent sampling strategy
archive / summary
the paper presents a method for improving the quality of motion blur on dynamic triangulated objects it approximates the nonlinear depth, normal, and UV functions the adaptive solution is based on prism volume and will adapt based on the motion and features
archive / summary
the article presents Vulkan for Safety-Critical applications presents how Vulkan SC 1.0 differes from Vulkan 1.2 main differences are pipeline lading and more rigid memory allocation requirements all pipelines need to be compiled ahead of time into caches. No runtime compilation is allowed provides tools to inspect the compiler cache outputs
archive / summary
the video panel discussion presents a look at the VFX development for Dune discussions about the processes, improvements and the effects of the sand screen compared against classical blue screen techniques
archive / summary
the article presents a method to uniformly sample floats in the [0, 1) range shows how floating-point precision can introduce biasing from integer division shows alternative ways that improve the uniformity
archive / summary
the video tutorial explains the concepts required for shadow mapping explains the foundational concepts, discussing transformations presents how to implement shadow mapping using OpenGL
archive / summary
the paper presents a tileable implementation of simplex noise for 2D and 3D cases discusses quality considerations as well as performance code is provided additionally provides WebGL examples on how to use the noise to create desired results
archive / summary
the paper proposed a real-time shading calculation for area lights defined by cubic Bezier curves extends the polygonal area lights via linearly transformed cosines techniques sample code is provided
archive / summary
the article presents a new set of OpenCL and Vulkan extensions to allow interaction between the APIs shows how to use the extensions to import semaphores, memory, and images between OpenCL and Vulkan
archive / summary
the video tutorial explains the process that vertices passthrough after vertex processing shows how vertices are projected onto the screen, clipped to the window additionally shows how the mapping onto the viewport is archived and how it can be used to have multiple viewports
archive / summary
the article shows how GPU memory is exposed to D3D12 application developers presents a detailed view into how heap types are only a convenient high-level summary and how they map onto heap properties shows how to get access to memory budgets, available memory and how it changes with integrated and external GPUs
archive / summary
the article presents an overview of the Graphics driver development model on Android devices discusses Google and OEM initiatives to improve the situation and what problems need to be solved presents a look at how emulators can load custom user-mode drivers to resolve driver limitations
archive / summary
the article presents the authors' API decisions while developing a D3D12 based graphics engine using Rust shows why API decisions are made as well as what difficulties were encountered during development shows that Rust developers still need to be very careful when interacting with unsafe D3D12 calls
archive / summary
the video tutorial explains the concept of a noise hash allows random number generations from other data sources applies the concept as part of an interior Mapping effect to allow randomized rooms inside of a building presents the concepts inside of UE4 and Unity
archive / summary
the video tutorial presents a coding session of an extraterrestrial inspired Orb object shows the modeling and shadowing technique based on Signed Distance Fields
archive / summary
the author presents his list of recommended books for technical artists
archive / summary
the video lectures cover the history and motivation of the rendering equation discusses all components that form the equation, the effects of the components additionally presents the generalized form that also covers Emissive material, BSDF, Sub-surface scattering, Refractions
archive / summary
the article presents a performance benchmark of the naga shader translation system presents comparisons for translations between different shading languages and compares against other translators includes comparisons against tint, Glslang, and SPIRV-Cross
archive / summary
the article discusses an alternative way to procedurally generate spheres from a cube base division presents how alternative distributions can improve the uniformity of the point distribution
archive / summary
new Vulkan SDK updates allows application developers to create their own profiles can be used to define a standard set of extensions and capabilities that should be simulated could be used to restrict all developers to be able to test on min-spec hardware independent of the hardware in the machine
archive / summary
Vulkan webinars about Vulkan 1.3 on March 10th covering Validation Layer Performance and Vulkan Profiles Toolset
archive / summary
the updated article presents a comparison of HLSL, GLSL, MSL, and WGSL compares the syntax, resource binding, and shader interface also shows how to compile shaders ahead of time, during runtime additionally shows how to transpile between the different languages
archive / summary
the video tutorial explains the necessary concepts to use compute-shaders with OpenGL starting with simple examples, it explains the logic, how to load and execute compute-shaders covers how to improve performance, communicate and store results in memory
archive / summary
the article presents light transport matrices and how they relate to light transport concepts expressed this way, computing incident lighting becomes matrix-vector multiplication
archive / summary
the article presents a new windows insider feature that will allow DX10/DX11 games to take advantage of the DXGI flip-model feature is available by default on DX12 games, but older games can take advantage of it from a Windows level opt-in toggle
archive / summary
the blog post presents the new features of shader model 6.7 improved texture operations such as Raw Gather (unmodified retrieval of the 4 samples from bilinear sampling) writable MSAA textures, quad-level operations additionally introduces programmable offsets for load and store from runtime variables instead of compile-time constants
archive / summary
the article provides an overview of the development process of using a texture-based imposter system using raymarching shows the different steps in the development process, quality improvements along the way additionally discusses what ideas the author tried, what did and didn't work, and discusses why they didn't work
archive / summary
Video lecture series of the real-time rendering course at TU Wien this part covers how to use hardware-accelerated ray tracing from Vulkan covers everything required to render a static scene, accelerations, ray traversal, shader bindings as well as processing hits additionally presents ray queries to allow ray tracing from any shader stage and discusses the limitations
archive / summary
the article discusses a problem with effects caused by loss of floating-point precision when game-time is growing presents a method to reset periodic timers cleanly and still allow for continuous motion the suggested solution uses integer multipliers with required precision to make resetting motions natural from an effect tweaking perspective
archive / summary
a collection of tweets about tech art, VFX, and related topics showcases of in-progress developments and experiments
archive / summary
video introduction tutorial to shader programming with OpenGL provides a conceptual overview of how to author, load, and use shaders GLSL shaders from OpenGL discusses vertex transformations required project vertices onto the screen shows how to access information from the CPU in shaders presents multiple examples to show the practical usage
archive / summary
the video session explains Texture set up for usage from GPU shaders covering texture types, addressing, tiling, texture filtering shows how to access the data from the GPU and the necessary OpenGL setup steps additionally provides an overview of the Mesh Color technique and how to represent it as texture maps
archive / summary
the article provides an overview of using raytracing to generate ambient occlusion recaps of ambient occlusion techniques for rasterization, high-level representation of raytracing based implementation
archive / summary
a roundup of WebGPU topics discussed at the January meetup contains references to best practices, new extensions as well as community work showcases additionally contains information about the state of support across browsers
archive / summary
the article presents a walkthrough of the process that leads to the blender obj exporting being sped up by 10x shows how to use the Superluminal profiler to spot the problems and iteratively improve the exporter
archive / summary
the article provides an overview of how SIMD execution models evolved over GPU generations presenting how the changes in architecture affect the way shaders would be authored to provide better performance mapping onto the hardware defines the standard terms such as swizzling/component masking and wave operations
archive / summary
the article provides an overview of the state of 16-bit floating-point support in drivers, compilers tools, and hardware discusses how to take advantage of the hardware feature shows effects and tradeoffs to consider when moving shaders to use 16-bit floats
archive / summary
the article discusses more noise distributions functions, presents grid-based noise definitions based on pixel positions alone shows the derivation of the noise function compares the function against White, Blue, Bayer, and more noise functions presents strengths and weaknesses of the distribution
archive / summary
the article presents why direct lighting computation should be separated from emitted light an approach to separate light emitters from other objects without tracking additional ray logic booleans is presented in the comments
archive / summary
the article presents components are defining the direct lighting component shows the integral that needs to be solved, a brief explanation of the different aspects discusses problems with the presented technique additionally provides suggestions on how to deal with multiple lights
archive / summary
the Vulkan survey presents a summary of the results and presents what next steps will be taken to address the feedback more investment into the Validation layer, macOSX support, more complete learning materials, and dropping VS2015 support
archive / summary
the developer interview answers a large number of user questions discussing the status of the new Vulkan based renderer, dealing with the constant evolution of graphics requirements and effects on the art pipeline, many more topics, such as HDR motion blur, are covered
archive / summary
video lecture presents an introduction explaining how surfaces are light from lights shows the components that affect the calculation covers the Lambertian, Phong, and Blinn material model explains the transformations required to move between spaces, explaining how normals need special treatment
archive / summary
the final video of the skeletal animation series using OpenGL and Assimp the tutorial series explained the whole process required to load information from the file format, interpret the data, and apply the necessary transformations to get animations in an OpenGL example application the last part discusses how to integrate the animation updating into the runtime
archive / summary
4 slides for a brief summary of the 4 common anti-aliasing techniques presenting the technique summary, discussing strengths and weaknesses
archive / summary
the article presents the flow of data when a CPU generated value is accessed from an HLSL shader explaining the differences between the available approaches as well as the implications on memory lifetime
archive / summary
the article provides a summary of the Lumen implementation found in UE5 (Unreal Engine 5) discusses the offline and runtime stages of Lumen (dynamic GI solution) shows the Acceleration Structure tracing approach as well as probe placement presents how the scene is represented using MeshCard (Proxy) approximations and distance fields additionally shows a detailed walkthrough of all the logical stages that compose the system
archive / summary
the article provides a summary of the features that are mandatory in Vulkan 1.3 (removing requirement of render passe, better pipeline creation control, as well as direct buffer addressing support and more ) additionally introduces the new Vulkan roadmap, this will provide guidance on what hardware/software support the group will focus on the 2022 roadmap will require bindless support as well as more consistent subgroup operation support
archive / summary
the article explains the history and evolution of the mesa shader compiler (internal representation) NIR discusses the historical reasons and experience of using it instead of LLVM presents problems and advantages over a CPU focused IR system
archive / summary
the new version of the Nsight Compute allows a better understanding of memory traffic and cache eviction decisions additionally adds new guided optimization support that detects unfused floating-point operations as well as uncoalesced memory access
archive / summary
the article why randomly tracing rays leads to noisy results presents the mental model to improve this in a simple scene
archive / summary
the presentation contains a collection of best practices when working with WebGPU covering compressed textures, debug label usage, data uploading, pipeline creation as well as bind group usage
archive / summary
the video explains the derivation of Cosine Interpolation discusses how the individual components are derived and how they are connected for the final result
archive / summary
the article contains a collection of 53 tips & tricks to consider when writing shaders contains performance advice, common pitfalls, as well as optimization advice
archive / summary
the article discusses how noise can help to reduce banding in light gradients presents the effects of noise on the visual perceptions shows how to implement the required noise operations in a Unity shader
archive / summary
the video provides a great introduction to image compression topics covering Discrete Cosine Transform (DCT), YCbCr Color space as well as Run-length/Huffman Encoding explained in the context of jpeg but applicable to other data compression problems
archive / summary
the WIP article presents a walkthrough of a frame of God of War (PC version) explaining wind and GPU particle simulation shows how snow deformation has been achieved in more detail additionally presents a view at how UI rendering is mainly implemented with grey-scaled source textures
archive / summary
the article presents the new VGPR Pressure Visualization view the tool can show how many VGPRs are used on each line and how usage needs to be reduced to see a benefit
archive / summary
the article presents the shortcomings of Perlin noise and what causes these shows how to implement simplex noise that can archive better results additionally discusses how to improve the information that is shared with the community at large to improve teaching and information sharing
archive / summary
the video presents super sampling techniques showing the issues introduced if super-sampling is done with a scaling factor that is not evenly dividable to the downsample target presents how the NVidia DLDSR improves upon image quality shows the comparison of different settings against native 4x downsampling as well native 1080p images
archive / summary
the paper presents the novel mixbox model for natural color mixing that matches the painting of oil colors explains how color mixing in digital software behaves presents why previous models were impractical to be implemented and how it was improved
archive / summary
the article presents the new debug views that can visualize the wavefront execution patterns able to show execution latencies for each instruction show how many cycles of latency could be hidden by SALU and VALU work
archive / summary
the article presents how to show resource name usage in the AMD memory visualization additionally contains a Troubleshooting section as Event Tracing for Windows (ETW) is required to collect the necessary information
archive / summary
the article presents a deep dive into a gather related artifact discusses texture filtering, how fixed point is involved and how many bits of sub-pixel precision is used on different GPU vendors shows the necessary parts in the Vulkan and D3D spec to understand why an offset is required to match the hardware behavior
archive / summary
the paper presents a multi-resolution hash table of trainable feature vectors the presented system focuses on the task-independent encoding of relevant details and can be applied to a variety of tasks shows the ideas applied Gigapixel images, Neural SDF, NeRF, as well as Neural volumes
archive / summary
the video improves the tri-planar projection shader (allows texture mapping without UVs) shows how to make sure that texture directions are correct on all sides of the projection additionally shows how to convert the node graphs into a single node to make it usable from other shaders more easily
archive / summary
introduction to a university course that covers the fundamental concepts of real-time rendering on the GPU the course is project-based, explaining the concepts and applying them in OpenGL examples
archive / summary
the video explains how to derive the Lagrange Interpolation functions presents how to use desmos to visualize the derivation process
archive / summary
an extensive collection of a large variety of tech art tweets collected into a single post contains VFX, demos, art showcases, and a large number of exciting demonstrations also contains an example that visualizes GPU execution patterns
archive / summary
Two Minute Papers video summary of the Weatherscapes: Nowcasting Heat Transfer and Water Continuity paper shows a new model to simulate weather effects using the microphysics of water
archive / summary
the tutorial shows how to use the VK_KHR_dynamic_rendering extension in Vulkan shows the steps required to load the extension, use it, and how it affects related components such as pipeline creation
archive / summary
the first part of a shader coding course (6 hours!) focusing on textual shaders using Unity explaining the fundamentals of the rendering pipeline, focusing on applicable knowledge across engines
archive / summary
the video contains the summary and overviews of Siggraph PhD thesis covering a large spectrum of resources from collision sounds, AR prototyping, Subsurface scattering and more each summary is less than 3 minutes long
archive / summary
the PhD thesis provides an overview of Subsurface scattering techniques and proposes a taxonomy of techniques the thesis introduces a real-time adaptive sampling algorithm for Monte Carlo sampling using temporal reuse additionally shows how to counteract oversampling in dynamic scenes
archive / summary
the article explains how to set up an effect that allows meshes to appear cut at the boundaries of a sphere shows how to not render pixels outside the sphere and deal with special effects for the inside of objects code implementation is done using Unity
archive / summary
the video focuses on visualizations of GPU performance considerations focusing on memory latency hiding and memory access optimizations in the context of a water simulation system one small correction, the author says cache coherency but actually means cache locality
archive / summary
a collection of video resources for GPU development contains generic resources such as an explanation of GPU rendering pipeline, and best practices provides information about the Mali tools and optimizations that are hardware-specific
archive / summary
the second part of the series explains the mapping between vertices and bones focuses on explaining a step to step approach that visualizes the data to allow functionality confirmation
archive / summary
the article provides an in-depth discussion of the interview process for more experienced developers discussing the different interview styles, kinds of questions, tasks additionally provides an insight into how to discuss previous work, interview process, and clear communication about expectations
archive / summary
the article presents a very detailed look at temporal anti-aliasing shows each component of the technique visually and explains how it solves the problem provides alternative solutions and presents a link to the sources of the technique
archive / summary
the article provides a high-level learning guide for getting started with D3D12 providing a starting point for getting started quickly as well as detailed learning articles contains sources for performance advice from the different manufacturers additionally contains information where to find the official D3D12 specification to clarify uncertainties
archive / summary
the article presents a high-level view of the graphics programming world shows that the specialization has separated into multiple distinct sub-categories presents resources for getting started in the different specializations
archive / summary
the article presents the characteristics of IGN(Interleaved Gradient Noise) that make it a good fit for TAA (Temporal Antialiasing Techniques) compares against Bayer, white and blue noise showing visual explanations to show the Low Discrepancy properties
archive / summary
the article presents the findings of the importance of directionality and occlusion for IBL(Image-based lighting) presents comparisons between ray-tracing ground truth, as well as various versions of screen space GTAO( Ground Truth Ambient Occlusion) shows how to bake the directional aspect into Spherical harmonics additionally contains a follow-up post about the technical implementation details
archive / summary
the article presents a look back at the emergence of the term uber shader showing how a single shader that supported a flexible BRDF evaluation instead of pre-defined categories the comments contain an insightful discussion about the further historical developments of the term
archive / summary
the article compares different techniques to generate blue noise presents the quality of the generated noise providing ideas for future development
archive / summary
the article provides a history of game consoles in the First Generation 1972 to modern-day consoles presents what new hardware was added with each generation and how constraints and programming environment evolved
archive / summary
the article presents branching on GPUs, clearing up that the cost of a branch depends on the kind shows shader code helpers that allow the visualization of the branching patterns additionally presents that extra care is required if branching around texture reads
archive / summary
the blog discusses dependent texture reads and the impact on GPU performance shows why it affects performance and discusses tradeoffs to consider
archive / summary
the paper presents a look at the half/single/double and quad precision for floating-point calculations provides an analysis of different linear algebra tasks to derive precision suggesting which types of tasks might be more suitable to reduced precision
archive / summary
one-minute long video shows the impostors used for far away vegetation in Zelda Breath of the Wild
archive / summary
the article shows how custom shader effects can be integrated into the UE4 pipeline presents a method that doesn't require engine modification but uses undocumented private classes
archive / summary
talk discusses the available memory types in D3D12/Vulkan discussing ways to upload data to the GPU, including the new hardware Smart Access Memory (Resizable BAR) shows performance advice for usage patterns for the different memory types to achieve optimal performance
archive / summary
the article provides a collection of advice to help with debugging GPU issues broken down into sub-categories based on the appearance of the bug additionally contains a list of helpful debug infrastructure elements that should be set up to accelerate the process
archive / summary
the article describes a setup to use a software rasterizer to create winter decorations for tiny projectors to make Christmas decorations happy christmas :)
archive / summary
the post presents the importance of testing images that allow the testing of a renderer discusses the different kinds of test images, how to gather them and compare if they remain unchanged presents heuristics to judge if changes that introduce image changes are valid or problematic
archive / summary
the article discusses sources of nondeterministic rendering in PBRT-3 presents how the renderer was made deterministic additionally presents what advantages and debugging abilities determinism enables
archive / summary
the article presents the release of the kajiya experimental renderer written in Rust discusses the design and implementation choices, targetting the Vulkan API and Rust for shader authoring additionally presents a look at the future direction of the project
archive / summary
The shader video tutorial shows how to create a shader that projects textures from the top, front, and side (Triplanar projection) without UV coordinates implementation is shown in both Unity and Unreal visual shader authoring system
archive / summary
the article presents how to use barycentric coordinates to improve triplanar projections done by blending between smoothed and flat normals presents how to use virtual triangles to generate barycentric coordinates for terrains if not available on the target system
archive / summary
video discussing the best graphical releases of the year presenting the most prominent innovations of the year, showing how the expectations of next-generation have evolved additionally discussing oddities of the year
archive / summary
the article discusses why Vulkan drivers expose a single heap with multiple memory types explains how resource compatibility should be handled in resource allocation
archive / summary
the post describes the differences between the new WebGPU Shading language and GLSL shows the explicit nature of the language highlighting the difficulty in translating between the languages
archive / summary
the article presents alternative mesh structures to generate grid structures shows why two-right angle triangles are problematic under motion transformation discusses Rhombuses and Hexagons as alternatives
archive / summary
the article introduces a technique and generated textures that enable the use of Spatiotemporal blue noise the article discusses the importance of Spatiotemporal blue noise, presents comparisons against existing techniques additionally presents several use cases for the presented technique
archive / summary
the article discusses Spatiotemporal blue noise in more depth showing best practices for several scenarios additionally shows how to extend the provided blue noise texture for other use-cases
archive / summary
the second part of the game of life shadertoy implementation focuses on the improvement of the visuals additionally adds the ability to interact with the simulation using the mouse
archive / summary
the video of the Vulkan lecture series introduces the stages of the graphics, compute, and raytracing pipe using Vulkan explains the stages, how the order is maintained as well as how the stages are essential for a correct understanding of synchronization providing an overview of the new Synchronization2 system in Vulkan and how it differs from the previous iteration
archive / summary
the author presents the design for a composable GLSL system based on the idea of closure discusses the difference of binding models, how to connect CPU and GPU components in a composable system shows how the runtime being aware of all GPU data enables rendering only if any data changes could generate a different image
archive / summary
the article discusses advice for new research on how to effectively read research papers written from the perspective of machine learning, but the lessons apply to computer graphics as well
archive / summary
a collection of tweets covering a large variety of tech art topics such as interior mapping, shading for 2d games, VFX showcases, as well as a rule-based terrain texturing system
archive / summary
the article describes how to use a Vulkan bindless setup for 2D sprite batching presents how to pass the necessary texture index into the shaders shows the importance of nonuniform qualifier at texture sample time additionally presents how to integrate the technique into imGUI
archive / summary
the paper presents a technique that performs reservoir-based spatiotemporal importance resampling in world space caches in the cells of a hash grid built on the GPU along the path vertices
archive / summary
list of AMD research publications contains papers starting in 2010
archive / summary
the article shows how to write data into an offscreen target and process it in a full-screen pass additionally provides a walkaround for missing multi-channel output
archive / summary
Microsoft released the spec for the Enhanced D3D12 barrier API discusses the problems with the current API presents how the new API resolves these problems, expected behavior as well as open issues
archive / summary
the blog post provides an introduction to the new enhanced barrier preview for D3D12 presents how developers can test the API at this time
archive / summary
the paper presents an analysis of multiple scattering BRDF models shows the microfacet distribution function is most important for smooth materials shadowing and masking term increases with roughness shows how a mix of lambert and GGX can approximate a large number of materials
archive / summary
the article presents the new features released as part of the DXC update for December added support for templates, overloadable operators, bitfield members for data types additionally also introduces Operator Short-Circuiting as well
archive / summary
the blog post presents the video encoding API that has been added to d3d12 supports H264 and HEVC shows how the API exposes the hardware and fits into D3D12 design
archive / summary
the article presents an overview of tesselation shaders shows how to implement the necessary steps to implement drawing of a tesselated sphere using Metal
archive / summary
the article presents how to implement 3D mesh rasterization in a WebGPU compute shader additionally provides additional steps to get a better understanding of the implementation
archive / summary
the video tutorial introduces swizzle operations shows how to emulate functionality in Unity that is available natively in UE
archive / summary
the article presents the shader multiply/add operation (fma/mad) discusses how it's mapped onto the hardware and allows more efficient and precise operations shows example use cases, discussing the impact on the precision of the calculation results
archive / summary
the tutorial describes the capturing process for image-based lighting IBL probes are omnidirectional representations of lighting information captured from high dynamic range images of a location shows how to capture the images and set up the pipeline to integrate the captures into the renderer explains how all captured with different exposures are combined into a single IBL probe
archive / summary
the article describes the hardware characteristics of the PS1 renderer shows a visual demonstration of the effect of sub-pixel rasterization and perspective correct interpolation additionally shows how to emulate the hardware shortcomings to create a PS1 style look on today's hardware
archive / summary
the paper introduces a combination of tile-based stochastic light culling and reservoir sampling this reduces the variance for lights close to surfaces such as common in Virtual Point Lights (VPLs) based indirect illumination systems
archive / summary
the article shows how gradients differ with different color spaces compares sRGB, linear, and Oklab color spaces
archive / summary
the article presents the Vulkan SDK layer architectures introduces how to enable Arm performance warning layer additionally shows how to run the layer on RenderDoc captures to gather information
archive / summary
the article provides an overview of use cases for ray tracing discussing disk and memory space-saving, shadows, reflection also mentions the effects on user-generated content
archive / summary
the article discusses the importance of asserts for debugging a renderer shows how asserts are implemented in PBRT additionally presents an example from the PBRT development where asserts helped to catch a performance issue
archive / summary
the article explains what information GPUView and Radeon GPU Profiler show shows how items are progressing through the queue over time additionally shows how to see how utilized the GPU is over time
archive / summary
the article provides an overview of the bloom technique and implementations comparing the technique implemented by UE and Call of Duty and how the suggested solution is a combination shows how to integrate a custom implementation into the UE4 codebase
archive / summary
the video tutorial provides an overview of the skinning animation technique explaining the process of how data is authored, animated, and encoded in a GPU friendly format additionally shows how to set up, compile and use Assimp to parse the initial skinning poses
archive / summary
the article presents the noise issues encountered when rendering out animated camera tracks shows result comparisons between different sample counts and supersampling presents how the noise issue was solved by projecting static rendering onto proxy geometry
archive / summary
the video shows a visualization of reflection and refraction vectors shows how to combine reflection and refraction into a single effect presents how to use these vectors for effects within Unity and UE4
archive / summary
the article presents the overview of a small and simple lossless image compression benchmark against libpng and stbi are available here: [benchmark](https://phoboslab.org/files/qoibench/)
archive / summary
the article presents an overview of fp16 (16-bit floating-point data types) shows what range and precision is available discusses 7 tricks to keep in mind when working with fp16 numbers in shaders
archive / summary
the paper presents a new approach that decouples displacement from the tessellation of the base mesh a displacement-specific acceleration structure is mapped onto the mesh, and tesselation factors are encoded seperate the BVH for the displaced geometry is computed instead of loaded from memory
archive / summary
provides a rundown of the different stages of a WIP experiment combing surfels and ReSTIR for rendering shows images of the different passes, what they contribute and how they form the final result
archive / summary
the article presents a look at the RDNA2 assembly generated from a simple pixel shader that outputs a color from a constant buffer compares D3D12_ROOT_PARAMETER_TYPE_DESCRIPTOR_TABLE, D3D12_ROOT_PARAMETER_TYPE_CBV, D3D12_ROOT_PARAMETER_TYPE_32BIT_CONSTANTS presents pros/cons of each technique
archive / summary
the article presents a starting point for developing unit tests for rendering algorithms shows the importance of small test cases additionally presents two real examples from pbrt-v4 and how unit tests helped to solve them
archive / summary
the article presents an overview of the implementation for various techniques found to mix raytracing and rasterization discussed the implementation of Spatiotemporal Variance-Guided Filtering for Denoising show how to apply this for Soft Shadows, Ambient Occlusion, Reflections, Indirect Lighting as well as a probe-based Global Illumination presents optimization and quality improvement steps
archive / summary
the article presents the quickest way to implement fully bindless shaders using Vulkan shows how to implement the whole process from querying support, descriptor management as well as the shader side
archive / summary
the article shows how Pixel Local Storage can be used on ARM GPUs to implement Translucency and Order Independent Transparency additionally presents the Shader Frame Buffer Fetch to allow access to the render target color and depth stencil from within an active pixel shaders
archive / summary
the article presents the official C++ interface for Metal shows how to integrate it into an application additionally offers how to generate a single header version
archive / summary
the article describes the RenderDoc fork for use with Oculus devices presents what effects on performance the tool has shows how to visualize tile usage and collect performance counters for application optimizations
archive / summary
the author presents his experience trying to run a prefix sum sorting algorithms portably using WebGPU discusses the limitations and issues encountered explains what synchronization primitives are missing to allow the most efficient variation using WebGPU
archive / summary
update on Nvidia scaling solutions the NVIDIA Image Scaling SDK now provides an open-source spatial upscaler can be used on hardware where Nvidia DLSS is not available presents the Image Comparison & Analysis Tool that allows comparison of up to 4 images and videos
archive / summary
the article shows an example of implementing a flood filling algorithm using the BGFX abstraction library provides a brief discussion of issues encountered in getting started with the library
archive / summary
the article presents how to implement GPU particles with movement tails without CPU interaction all particle simulations happen in pixel shaders, and results are copied into ring buffers expressed as rows of textures implementation is provided using WebGL (regl)
archive / summary
the article presents how to render rectangles with rounded edges shows the distance field based shader implementation using Metal additionally covers anti-aliasing and gradient rendering
archive / summary
the Vulkan SDK has been repackaged and now separates between core and optional components
archive / summary
provides an overview of the available Nvidia developer tools includes a brief summary of each tool and references to further information
archive / summary
the post summarizes the new VK_KHR_dynamic_rendering extension enables Vulkan render passes without render pass or frame buffer objects
archive / summary
the video tutorial provides a beginner introduction to signal processing starts the explaining with audio signals to clarify the concepts afterward transfers the ideas onto raster images presents how aliasing and image filters can be explained using signal processing concepts
archive / summary
the talk presents a discussion of performance tradeoffs proposes the idea that algorithms should be separated from how they are executed introduces the halide language/compiler that decouples algorithms from the mapping onto hardware execution models
archive / summary
provides an explanation of point queries and why point queries on unstructured data is a lot more complex compared to grid-based data the paper presents different methods to offload more work onto the RT cores with increasing complexity shows memory and performance results on different hardware and test cases
archive / summary
the article provides a history of text rendering techniques provides summaries and references of the presented techniques
archive / summary
the video tutorial explains how to render lines using OpenGL extends the techniques to draw oriented rectangles
archive / summary
the article presents results comparing the vertex post-transform cache behavior on intel and Nvidia hardware presents that they have very different behavior
archive / summary
summary of Occlulus Quest 2 Application SpaceWarp technology technology that allows an application to render at half of the target frame rate and "upscale" to the target frame rate uses the application provided depth, image buffers, and motion vectors to generate in-between frames
archive / summary
the Unity tutorial shows how to sample shadow maps and implement an edge detection filter extending the concepts to show how to apply outline shadows
archive / summary
the article explains how to implement a portal look into a separate world using stencil buffers for filtering shows why the technique was used and how rendering passes have been structured additionally covers other the aspects of the demo, such as the volumetric fog and candles
archive / summary
weekly round-up of tweets from a large variety of technical art and VFX topics
archive / summary
the article presents the details of the D3D12 binding model and discusses the differences to Vulkan presents a detailed look at all the possible binding possibilities discussing problems, limitations, and how it maps to hardware
archive / summary
the article presents how constructor like functionality can be implemented in DXC HLSL relies on variadic macros support in the compiler frontend
archive / summary
class in introduction to computer graphic series focusing on shadows explains the fundamental of shadow casting and presents practical implementation notes that are required for correct implementations covers ray tracing and rasterization based implementations shows the logic required for reflections and the derivations from the rendering equation additionally covers a small discussion of the different ray types, names, and usages
archive / summary
the video tutorial explains how to implement metaball rendering presents how to approach the approach to the problem and derive the final marching square solution focusing on how to transform a problem into solvable sub-problems
archive / summary
the video for the SIGGRAPH 2021 presentation about UE5 Nanite has been released will explain how the mesh-based data structure is built, streamed, decompressed, culled, rasterized, and shaded
archive / summary
Vulkan extension that allows the use of render passes in Vulkan using a D3D12 style objectless model already being reported as supported on first Nvidia drivers
archive / summary
video tutorial explains the concepts of spotlights and develops a mathematical model to describe the effect presents how to implement these concepts using GLSL and OpenGL
archive / summary
the videos for the excellent SIGGRAPH 2021 Rendering Engine Architecture course have been released covering Unity / Roblox / Activision rendering architectures as well as the Activision geometry rendering architecture
archive / summary
the article shows that out of bounds access reduced rendering performance by 25x shows how to use NSight Graphics to help investigate performance issues
archive / summary
the article discusses the Binomial and Gaussians filter presents what a Binomial filter is and how it compares against a gaussian additionally provides details about how a Gaussian filter behaves with different kernel sizes
archive / summary
the article covers a few high-level points on how command buffers allow parallelization of CPU rendering work provides best practices, and pitfalls to watch out for
archive / summary
the blog post provides recommendations for memory management using D3D12 on provides information on how to receive information about the available budget and manage residency provides suggestions on which resource should be allocated together additionally provides information on tiled resource usage
archive / summary
the article provides information about what practices are recommended for getting good mesh shader performance and what are not additionally mentions how the Vulkan extension allows potentially less usage of shared memory
archive / summary
short 1-minute video that explains how masking with disabled depth testing allows the eyebrows to be drawn above the hair at all times
archive / summary
the presentation presents an overview of different Global illumination techniques discussing strengths and weaknesses presents the solution implemented in O3D and looks at problems and future developments
archive / summary
the article provides an explanation of Homogeneous Coordinates showing a visual explanation of the mapping into Cartesian coordinates presents how these concepts can be used for spline interpolation
archive / summary
the slides and video recordings from the Vulkanised 2021 conference have been released covering Synchronization, layer building, portability, shader pipelines, and texture compression
archive / summary
discussing how the mapping from D3D to Vulkan binding semantics was implemented using SPIR-V patching reflection and code generation is used to implement constant and resource binding in C++ code
archive / summary
the article presents a method to generate and simulate real-time interactive fog based on fluid simulations presents how to generate a boundary mask from arbitrary meshes using Unity
archive / summary
the article presents an in-depth overview of the pipeline required to display a image on screen shows how a frame traverses the pipeline to be presented onto the screen explains how different methods affect latency and fluency of animations compares different methods and presents a look at more modern approaches
archive / summary
collection of best practices for NVidia hardware regarding buffer management
archive / summary
the article discusses considerations when to use async copy queue, async compute, or serial copy engines on NVidia hardware
archive / summary
the article presents a collection of Nvidia advice for getting good performance from async compute workloads shows examples of two workloads that can be combined efficiently
archive / summary
the paper presents how using HDR and 3D scan data, it's possible to reconstruct the material BRDF parameters shows how to estimate the diffuse lighting, surface albedo and use this information to treat it as an optimization problem to match the original image
archive / summary
the tutorial covers a walkthrough of a foliage shader in Unity covering double-sided materials, translucency, normal adjustments for more natural diffuse shading, and wind deformations
archive / summary
the in-depth video tutorial explains how to render a circle using shadertoy explains the required math and implementation in shader code
archive / summary
the blog introduces the topic of shader permutations and why they end up being common issues discussing not only the compilation side but also runtime implications additionally presents a list of questions that a programmer might ask when creating a new shader permutation
archive / summary
the article dives deeper into the issues related to shader permutations covering several possible solutions, discussing the tradeoffs of the different methods presented additionally presented a brief look at the future with callable shaders or function pointers closes with an overview table of the different methods, advantages/disadvantages, and what platform it's supported on
archive / summary
collection of Neural Radiance Field papers that will be presented at Intl. Conf. on Computer Vision starts with a brief summary of what Neural Radiance Fields are includes a small single sentence summary for the content of papers for each
archive / summary
frame breakdown of a single frame from the game control (as video and text) covering shadow rendering, ray tracing passes denoising, tech art passes, as well as Deep Learning Super Sampling (DLSS)
archive / summary
Twitter thread asking for GPU architecture information the replies are full of fantastic resources
archive / summary
the article shows how recent versions of DXC can link DXIL shaders for all shader stages presents the API as well as discusses existing restrictions
archive / summary
interview with Nick Thibieroz, Director of Game Engineering at AMD discussing AMD FSR objectives, design considerations, the impact of Machine Learning additionally provides a few pointers at what different engine integrations could be considered
archive / summary
the articles provides a beginner friendly introduction into fluid simulation starts by developing the readers intuituin and improves from the natural solution additionally includes advice on a number of topics such as caustics, reflections, and boudnary handling
archive / summary
the article explains how BC format encodind differs between hardware vendors presents how AMD, Nvidia and Intel implemented the logic
archive / summary
the post presents an overview of the performance characteristics for nvida applications related to memory oversuscription shows how different access paterns influence comparing a number of hints, allocation models and the influence on performance
archive / summary
the video tutorial extends the Phong lighting model with the addition of specular lighting explains the derivation of the specular model in a generic way additonally shows how to implement the required functionallity using GLSL
archive / summary
the article demonstrates how to implement line segment rendering so that the segments are not overlapping WebGL implementation is provided
archive / summary
the blog presents performance number for Bottom-level acceleration structure when using D3D12 raytracing with animated characters compares nvidia, amd and metal timing in different scenarious
archive / summary
collection of 5 new graphics programming books fundamentals, Vulkan, OpenGL and a history of computer graphics book
archive / summary
the paper proposes a new technique to enable the temporal reuse of samples in scenarios where motion vectors are not enough / available core algorithm of the paper is patch-based correspondence detection within a hierarchical
archive / summary
the paper provides an overview of Spectral Image Representation and Bi-spectral Reflectance explains what kind of materials require the information for correct representation proposes a way to store the data in the OpenEXR format
archive / summary
the video provides an overview of a GPU based fluid solver written with WebGPU and Rust primarily focusing on the implementation details of the simulation
archive / summary
the Unity tutorial shows how to implement a basic flow system in Unity implemented using a projection of 3D shapes into clip space flow is implemented using a double buffering approach using compute shaders
archive / summary
the Unity tutorial explains how to implement a 2D effect where a mask controls the visibility of a line over time presents the code and unity setup necessary to implement the effect
archive / summary
the video explains how to develop a mental model of 3D rotations based around the change of orientation from one coordinate space to another presents an overview of different ways to express rotations additionally shows how to use the techniques in Unity
archive / summary
Khronos released the texture format 2.0, which now supports Basis Universal compression additionally, the new gltf KHR_texture_basisu extension allows the usage in gltf models
archive / summary
the blog post describes the details about parsing DXIL (the output from the Microsoft Shader Compiler) shows how to parse various opcodes, details with SPIR-V provides an overview of the capabilities of the LLVM based encoding
archive / summary
the article presents a few examples of how GPU fixed function hardware is used for other purposes besides the intended use-case including examples from nanite and an example of a point list was used for histogram generation the author is looking for user submissions of other examples
archive / summary
the article provides an introduction to more hardware level information about GPU execution presents an overview for Nvidia, AMD, and intel information discussing many topics such as occupancy, register file, cache, scalar, and vector work additionally presents performance pitfalls and explains why they happen
archive / summary
the article provides a summary of the new hardware features in Apple GPUs covering lossy compression, sparse texture support, and SIMD improvements
archive / summary
the video provides a paper summary from NVidia that uses differentiable rendering to simplify geometry shows several examples, including a Disney island vegetation reduction to less than 1% of source vertex count
archive / summary
the article presents how to use MLIR (Multi-Level IR Compiler Framework) for efficient SPIR-V code generation for convolution filters shows how to take the logical expression of the task and transform it into patterns that are efficiently executed on ARM Mali GPUs
archive / summary
NVidia provides an open-source dashboard for Jupyter and a standalone Boker server these dashboards are python based and expose real-time graphs for metrics such as memory usage, utilization, or memory traffic the article shows how users can extend the dashboards
archive / summary
video tutorial that explains lambert diffuse lighting function additionally also covers the required coordinate space transformations, finally shows how to implement the lighting model into OpenGL + GLSL
archive / summary
the video presents what is new with the A15 GPU added support for lossy compression in addition to bandwidth, it also saves 50% memory usage (quality will be dropped to fit) improved sparse texture support with support for depth/stencil as well as support for SIMD shuffle operations
archive / summary
the article presents a comparison of triangle throughput for indexed buffer rendering, mesh shader usage, MultiDrawIndirect, and custom compute shader rasterization comparison is made for depth-only rendering results are presented on Nvidia, AMD, Intel, Qualcomm, and Apple GPU
archive / summary
the whitepaper explains how to use DevSim to simulate lower spec devices on higher-end devices the Vulkan device simulation layer will adjust the return values of capabilities queries the paper shows how to use the tool, how it fits into the architecture, and what settings can be adjusted
archive / summary
the frame breakdown covers the flight simulator scenes presents how the gbuffer by a texture array with MSAA enabled how reflections, environment maps, and shadows are drawn covers how transparent elements in the cockpit are drawn additionally contains a brief look at post-processing and volumetric clouds
archive / summary
the article discusses lessons learned by ARM's approach for developing raytracing support for Mali GPUs implemented as software implementation that can be loaded as Vulkan layer presents best practices for mobile performance and battery usage
archive / summary
the video shows the smoothstep node in UE5 and Unity3D covering the math, and examples of how it is used
archive / summary
video in-depth interview with VP of developer ecosystems at Nvidia discussing Khronos technologies such as Vulkan, upcoming standards as well as how gaming graphics might be developing with new techniques and hardware capabilities
archive / summary
the in-depth article shows how to implement a custom physically based lens flare effect as post-process presents what lens flares are, how they are used in games and movies finally shows how to implement them into the UE4 pipeline and replace the build-in effect
archive / summary
the paper presents how to extend spatiotemporal reservoir resampling to multi-dimensional path space such as volumetric media combines cheap approximations for transmittance with unbiased methods for per-pixel evaluations
archive / summary
the author suggests a method D3D12 state transition system for multithreaded command recording based around per-resource tokens that use CPU side fences to synchronize access to previous state transitions
archive / summary
the paper proposes a formal model to describe how surfaces/media respond to incident radiation introduces a hybrid matter model for a locally stationary stochastic process
archive / summary
the Vulkan tutorial shows how to use the Vulkan VK_NV_ray_tracing_motion_blur extension (exposed by Nvidia) shows how to extend a static ray tracer implementation with the necessary information to support motion(blur) contains API extensions for time-dependent tracing, motion support in acceleration structures, and support for changing vertex positions
archive / summary
the article presents a derivation of new color spaces designed for more uniform color picker behavior discusses the different tradeoffs and how a perfect solution is not possible presents an overview of existing methods (HSV, HSL, HSLuv), discussing the tradeoffs, weaknesses, and strengths additionally provides an interactive implementation of all the color pickers
archive / summary
the article presents a method for the rendering of static Constructive solid geometry SDFs breaks down an SDF into several sub-trees, with shader specialization for each requires a static source SDF; however, it could still change positions
archive / summary
article introduces a prototyping system aimed at making multi-pass shader experiments easier implemented using Rust and GLSL presents how to implement several systems such as a path tracer, the game of life using the system
archive / summary
signup and schedule for the Vulkanised conference has been published combination of talks and Vulkan layer authoring tutorials
archive / summary
the article presents a look at the making of the fog lost in random shows how the visual style was achieved based on volumetric or screenspace fog based on the platform capabilities
archive / summary
the paper introduces a new metric, CaMoJAB this considers how the judder, aliasing, and blur artifacts introduced by VRS are masked by the sensitivity limits of the visual system presents how to use the metric to derive VRS shading rate as well as required refresh rates
archive / summary
start of an article series discussing DXIL with the intended usage of conversion to SPIR-V first part starts with simpler examples to explain the principles of DXIL library developer speaking from experience developing vkd3d-proton and the dxil-spirv library
archive / summary
AMD published a Vulkan layer that analyzes the API usage checks against the recommendations from the Performance Guide
archive / summary
the whitepaper provides an overview of the Vulkan layer validation tool presents how the different components of the layer infrastructure combine and interact shows how layers are defined, settings exposed, and user control presented
archive / summary
WebGPU is slowly rolled out into mainstream Chrome versions article presents the timeline as well as reading starting points developers are looking for feedback and developer testing
archive / summary
collection of Tech Art tweets covering procedural animation, waterfall simulations, particles, and much more
archive / summary
in-depth frame analysis of a nighttime scene in Mafia, a d3d11 based deferred rendering engine covers g-buffer, occlusion culling, decal blending, GI cars use a precalculated shadow texture to cast AO heavy use of stencil usage for volumetrics, sky, as well as the minimap rendering
archive / summary
the article presents optimizations to the FidelityFX Super-Resolution by AMD shows multiple steps, what gains got achieved and hints at what quality reductions can be expected
archive / summary
the article presents how to implement a shader-based ASTC decoder shows what different modes are supported, how to encode parts pointing out the complexities and special cases of the format
archive / summary
the article contains a brief summary of the content presented at the WebGPU meetup covers WebGPU performance advice, new glTF extensions additionally shows how batching and multi-draw techniques can improve performance
archive / summary
the shader tutorial presents how to implement a grass shader using the Universal Render Pipeline in Unity using Geometry Shaders to generate blade meshes and tessellation shader to control the grass density presents how to deal with a nonplanar surface, supporting rotation and bending additionally shows how to control grass painting onto the world, wind and shadow integration
archive / summary
collection of tweets covering an extensive range of technical art topics VFX, breakdown of scenes, showcases of visual effects, ...
archive / summary
article presents a project that emulates a Linux in a pixel shader running in VRChat emulates a RISC-V CPU in an HLSL pixel shader shows how the emulation was implemented a few pointers on performance improvements made throughout the process
archive / summary
the article presents a collection of TAA resources provides a step by step explanation of how to use the resources to implement a basic TAA solution also provides pointers at possible problems and what could be improved additionally provides a collection of links to other open TAA implementations
archive / summary
the video shows how bezier curves are defined, how they are used explains how to derive the formulation and aspects of these curves with very helpful visualizations
archive / summary
Nvidia open-sourced their internal abstraction layer on top of D3D11, D3D12, and Vulkan the article explains how resource lifetime is managed with ref counting pipeline binding layout, state tracking, and resource upload management additionally, it contains a tool that can generate shader permutations from a text file with shader options
archive / summary
collection of links to Siggraph 2021 content Courses, papers, posters, ...
archive / summary
the paper presents three different variations of static hash tables for GPU usage comparing bucketed cuckoo, bucketed power-of-two-choices, and iceberg hash table implementation
archive / summary
the articles shows Rim Effects, Vertex Extrusion, Blurred Buffer, Jump Flood Algorithm, and Edge Detection shows examples of each technique, discussing the implementation, advantages, and disadvantages of each technique
archive / summary
new PIX for windows APIs that allow applications to take a capture programmatically without having to run the application through pix improved Acceleration Structure Viewer
archive / summary
the article provides a summary of the Using Bindless Resources With DirectX Raytracing chapter from Ray Tracing Gems II the author emphasizes additional points about bindless and the impacts on rendering engine design
archive / summary
the talk presents how Activision had to rethink the geometry pipeline when moving from tightly controlled levels to open worlds focusing on the shipped F+ and experimental V+ implementation shows what mesh types use what technique and explains the reasons showing how the GPU based pipeline has been implemented around bitmasks and data expansion presents performance numbers, final F+ culling pipeline reduces rendering time significantly additionally contains a look at a possible tile-based V+ / F+ hybrid pipeline
archive / summary
the video discusses biases and assumptions that are baked into the graphics research discussing the biases in terms such as skin, hair, flesh tones, human face presents a look at history and how the same biases developed, and how it has been repeated suggests future developments to address these biases going forward
archive / summary
the article presents a new D3D12 Nvidia extension that enables a developer to allocate CPU-Visible VRAM memory directly this allows developers to write directly into VRAM from the GPU explains what tools are available to detect cases where it would be beneficial additionally shows how to detect possible performance problems caused by reading from the CPU
archive / summary
the paper presents a new distance sampling method presents an extension for the null-collision integral formulation that improves efficiency for low-order heterogeneous (such as fog) additionally presents an approach using a spatial guiding data structure
archive / summary
the article presents a polygon extension-based method for the generation of 2D shadows explains the necessary math and how to generate the required mesh data also discusses problems, performance implications, and optimization techniques additionally presents two alternative techniques
archive / summary
the blog post extends the previously discussed hard shadow method to support penumbra based soft shadows presents how to generate the mesh data to include the penumbra and be able to derive the falloff from linear operations presents the shader implementation using GLSL
archive / summary
the blog post presents a new helper class (CD3DX12FeatureSupport) that unifies the D3D12 feature checking into a single class part of d3dx12 aims to unify the patterns and behavior across the different existing methods in stock d3d12
archive / summary
the article presents an overview of a master thesis about caching shading information in world space technique is based on implicit point generation and accumulation into global hash tables the presented example shows the technique applied for ambient occlusion
archive / summary
course page for the content of Siggraph 2021 covering Spatial Upscaling through FidelityFX, Concurrent Binary Trees for Large-scale Terrain Rendering Nanite Virtualized Geometry, Large-Scale Global Illumination Lighting, Atmosphere, and Tonemapping in Ghost of Tsushima and Global Illumination Based on Surfels
archive / summary
a new course happening for the first time in 2021 focusing on the architectural aspect of real-time rendering engines currently publicly released slides include Activision Engine Architecture and Geometry Rendering Pipeline Roblox / Unity Rendering Engine Architecture,
archive / summary
article presents how tone mapping can be implemented into UE 4 using Vulkan sub passes shows how much more efficient the implementation is on Quest2 when using sub passes vs. an additional render pass
archive / summary
free 800+ pages on raytracing a large number of topics is covered, including the following summary of photographic terms, sampling textures without automatic derivatives, visualizing and communicating errors in rendered images, multiple importance sampling 101, ray-traced decals, LODs, and much more source code is available
archive / summary
list of 149 accepted SIGGRAPH-2021 papers containing a machine-generated one-sentence summary for each paper
archive / summary
short blog post that tests EXR compression/decompression speed for the different available options
archive / summary
author shows that path tracers are fundamentally simple if relying on pure brute force approaches starting a discussion if a global rendering network would make it possible to render objects that are easily modeled with microgeometry but difficult to render efficiently
archive / summary
discussion of loading performance in pbrt-v4 showing how IO and CPU performance bottleneck change comparing uncompressed and different compression options
archive / summary
article presents an in-depth discussion of Pseudorandom Number Generators presenting different non Cryptographically generators code examples are presented in Rust
archive / summary
overview of Unity at Siggraph Unity is providing access to a basic level SIGGRAPH pass
archive / summary
author suggested 3 books for computer graphics covering raytracing, introduction to computer graphics as well as deep learning
archive / summary
presents how all ray-tracing based effects were implemented in the game Control opaque and transparent reflections, near field indirect diffuse illumination, contact shadows, and denoiser tweaks
archive / summary
extension of the previously presented Decoupled Visibility Multisampling technique underlying idea is to see 8xMSAA as a 2x2 group of pixels with 2xMSAA each using the sample information for TAA upsampling
archive / summary
part of the series that discusses how GPU support for the Moana Island scene was added to pbrt-v4 presents an overview of ptex approaches chooses by others and shows the currently basic Ptex approximation used shows a comparison between the CPU and GPU version additionally discusses performance and optimizations
archive / summary
the blog discusses Vulkan usage for GPGPU workloads, in particular for machine learning presents the varying requirements for machine learning and how Vulkan can be used to satisfy them discusses how it interacts with the business aspects (OEM, platform holders, ...) additionally shows the authors view onto the current challenges and future developments
archive / summary
a Bachelor thesis that presents a method for GPU based silhouette generation from Polyhedral lights uses an algorithm based on binary space partitioning for storing precomputed silhouettes for every point in the scene additionally presents how to use Silhouettes for Solid Angle Sampling
archive / summary
GDC talk presents a walkthrough of the technical creation aspects of the demo shows UE5 was used, discussing nanite limitations and how the different systems can be combined additionally, art pipeline implications and findings presenting performance numbers of lumen, nanite, upsampling, virtual textures, virtual shadow maps, ...
archive / summary
the post compares different Color Matching Function (CMF) for use with spectral rendering techniques provides an analytical approximation for the CIE 2006 CMF and provides how to calculate the D65 white point
archive / summary
the article presents an overview of numerous techniques that can be used to implement lighting for a 2D game discusses pros/cons of each technique additionally shows limitations of the techniques
archive / summary
the Vulkan hardware database has been updated texture format view now has a breakdown of what tiling mode is supported for each format improved filtering, cleaned up data and color space added for surface formats
archive / summary
the article discusses how Visibility Buffer can be combined with Variable Rate Shading (VRS) Techniques shows how careful selection of sample positions can archive convergence towards the reference non-VRS image presents the performance of VRS usage for forward, deferred, and visibility approaches. Comparing different pixel densities additionally discusses techniques how the sparse g-buffers might be integrated into other rendering passes
archive / summary
the article explains how to express SDFs in Unity and Unreal shows the basic steps for a circle SDF extends this to show how to animate, combine and blend shapes
archive / summary
the preprint from Ray Tracing Gems 2 covers two techniques for caustics One focuses on the caustics around metallic and transparent surfaces the second is for caustics cast by water surfaces
archive / summary
the article presents the idea of compensating for shortcomings of an upsample technique in the downsampling step shows the development of an improved downsample filter to compensate for bilinear upsampling discusses how this is related to the typical sharpening of mipmaps done as part of game art pipelines
archive / summary
the NVIDIA RTX Memory Utility is an open-source (MIT License) SDK designed for reducing the complexity of memory management for Raytracing on Vulkan and D3D12 shows how to use the utility to integrate acceleration structure memory reduction techniques additionally presents how much memory can be saved on different scenes (very scene dependent)
archive / summary
the video discusses the rendering pipeline presents the geometry and pixel processing pipeline shows how mali hardware implements the API pipeline for more efficient execution
archive / summary
explains how the rendering pipeline translates into GPU hardware comparing immediate-mode vs. tile-based GPUs presents the pros and cons of both models and why mobile GPUs are tile-based
archive / summary
the video discusses the hardware essentials presents how CPUs are designed followed by how the design for GPUs is adjusted to take advantage of the graphics workloads
archive / summary
the article discusses tile-based and immediate-mode rendering GPUs in detail exploiting how they work discussing strengths/weaknesses additionally covers how these influence the efficiency of rendering algorithms such as shadow map rendering
archive / summary
whitepaper that discusses how to use printf in Vulkan shaders presents how to use shader printf from HLSL, GLSL, and SPIR-V shaders additionally covers RenderDoc and validation layer integration
archive / summary
a collection of Signed-distance field primitives (Cylinder, cubes, ...) expressed in WebGPU Shading Language (WGSL) additionally contains Boolean operations, displacement, positioning, and rotations for SDFs
archive / summary
the video provides an overview explanation of Global Illumination presents an overview of the fundamental concepts covers several techniques that have been used to approximate it discussing advantages and disadvantages of the techniques
archive / summary
the article goes into detail on how to implement physically correct and affordable ray traced soft shadows for individual polygonal or linear lights presents an overview of the concept of ray queries (rays that can be inline at each shader stage) shows in-depth the steps required for area lights, including importance sampling, diffuse, specular, and texture integration
archive / summary
presents a method that decouples geometry samples from shading samples explains the difference of human vision between the ability to detect edge aliasing and internal aliasing and why geometric frequency is required to be higher explains performance implication of triangle sizes and MSAA shows how TAA, MSAA, and Decoupled Visibility Multisampling (DMV) compare in performance and quality
archive / summary
the article presents a refresher on the concept of slope shows that slope space is a representation for unit vectors in the upper presents the properties of slope space, what advantages it has additionally discusses how slope space is used in normal distribution functions (NDF)
archive / summary
the article explains how the destruction system was implemented based around a world map damage textures that contain a mask to mark destroyed areas this mask is then sampled during a geometry to cull and transform geometry to represent the destruction
archive / summary
the article presents a natural SDF based detail mapping / Fractal Noise displacement mapping technique presented uses spheres of varying radius to represent a varying level of octaves to represent the details presents how to combine the different layers and suggests alternative possibilities additionally presents a video that shows a clear visualization of the different layers being combined
archive / summary
collection of tweets about technical art covering particles, stylized shading, portfolios, and game breakdowns
archive / summary
a collection of resources, links, papers, discussions about SDFs
archive / summary
the article explains how a visibility buffer approach is used presents how the shading pass has been implemented (Frostbite BRDF, tangent frames, ...) covers area light implementation using Linearly transformed cosines and compares different representation and discuss the tradeoffs additionally covers different noise types and the effect on denoising
archive / summary
the first part of the series discusses where mobile GPUs are used presents how the hardware design is setup shows how power usage and thermal efficiency budgets are influencing all systems on a chip
archive / summary
pre-release chapter from ray tracing gems 2 presents weighted reservoir sampling, a technique for the efficient sampling stochastic data shows how optimized variants of algorithms exist to sample with different properties, weighting behaviors, or duplicate output behavior
archive / summary
the source code for the technique has been published on Github also contains a sample implementation of how it can be integrated the technique only relies on color buffer information for the upsampling pass
archive / summary
the article presents an overview of The Visibility Buffer approach compares the technique against forward and deferred shading at varying texture densities presenting performance results including a discussion of derivative calculation and the effect on helper lanes additionally discusses several considerations and future developments
archive / summary
Alex covers many ideas and algorithms classical tools require the artist to deal with technical aspects at all time removing soft constraints allows the artist to focus on the art presents how cluster culling and LOD selection removes the polygon count soft constraint shows different ways to work with SDFs closes with a look at the volumetric rendering and Neural Radiance Fields (NeRF)
archive / summary
collection of ray tracing experiments and presentation of results covering ray divergence, hybrid global illumination, shadow mapped GI additionally shows the effect of second bounce GI as well as improved reverse z-buffer precision
archive / summary
first free chapter from ray tracing gems 2 has been released discusses the implementation of a path tracer that is aimed at being us as a reference renderer for in-engine integration source code is provided
archive / summary
author presents an introduction to automated visual testing discusses how to reduce the combinations that need to be tested how to make sure that runs are deterministic additionally provides source examples of how to use python to run the visual testing
archive / summary
the blog post discusses if it makes sense to compare images in the frequency domain presents a few typical approaches, discuss their shortcomings and recommendations
archive / summary
preview video if a view of the papers presented at HPG 2021 see the video presentation of the papers in [day 1](https://www.youtube.com/watch?v=eGfX1iWzkh0)
archive / summary
second part of the series explaining the WebGPU basics by presenting the equivalent concepts from a metal perspective shows how to apply displacement mapping onto a plane to approximate a terrain covers how to load and sample textures resource binding, pipeline setup for 3d depth testing enabled
archive / summary
the article presents a brief overview of NeRF (neural radiance fields) then presents 3 methods that enable the relighting discussing differences and tradeoffs between the techniques
archive / summary
the presents the use of neural fields to model materials such as fur, fabric, and grass model a layer of mesoscale structure, such as fur or grass, on top of a triangle mesh using neural reflectance fields NeRF textures are volumetric textures that use neural nets instead of voxels
archive / summary
author presents the subset of Vulkan API related to compute workloads covering GPU discovery, resource management, compute pipeline management, synchronization, and object lifetime management
archive / summary
blog post presents a comparison of AMDs FSR, CAS against other upscale techniques shows results from Dota 2, The Riftbreaker showing how quality and sharpening values influence the final results
archive / summary
the paper presents a filter for magnifying pixel art (such as 8 and 16-bit sprites) covering observations on pixel-art filtering, test data, and evaluation methodology shows a comparison against other filters and shows when to use what filter code and demo application is provided
archive / summary
the video tutorial explains how to use the add, subtract, multiply, and divide nodes in UE5 and Unity showing how the nodes behave and the difference in the UI between UE5 and Unity visual shader editors
archive / summary
the paper presents a new operator for blending BRDF texture maps based on a transport mechanism that is feature aware preserve details by mixing the material channels using a histogram-aware color blending combined with a normal reorientation
archive / summary
stream of the first day of Eurographics Symposium on Rendering 2021 all recordings from the 4 days are available
archive / summary
paper presents the Moving Basis Decomposition framework this generalizes many existing basis expansion methods and efficient, seamless reconstruction of compressed data this is introduced as the foundation for a global illumination system compares the method against existing Blockwise PCA, Windowed blockwise PCA, and clustered PCA (PCA, Principal component analysis)
archive / summary
the article discusses the scene structure of the authors' renderer focuses on how to efficiently handle scene export/loading as flat data data quantization, materials, reproducible results, ... iteration time from changing code to getting a render is below 5 seconds
archive / summary
paper presents a new path sampling algorithm for indirect lighting based on the screen-space Spatio-temporal resampling principles of ReSTIR (Spatiotemporal reservoir resampling for real-time ray tracing with dynamic direct lighting.) enables important paths to share contributions time, space
archive / summary
the article presents an overview of why Pipeline State Object was introduced to allow predictable performance shows differences between hardware and drivers and explain why the old D3D11 model was unpredictable presents the concepts in Vulkan, D3D12 and Metal
archive / summary
the video tutorial shows a walkthrough to render the USA flag using shader toy shows how to render a star, stripes and combines the components covers how to animate the flag and apply antialiasing between the features additionally adds some shading to the flag
archive / summary
in-depth analysis of the sources of variance in state-of-the-art unbiased volumetric transmittance estimators propose several new methods for improving the efficiency improving truncated power-series estimators based on U-statistics
archive / summary
the paper presents a new BRDF for porous/dusty materials these surfaces exhibit back-scattering and saturation that is missing from other BRDFs based on a volumetric BRDF derivation based spherical Lambertian particles
archive / summary
the article discusses how to implement gamut clipping into a render pipeline compares different methods and presents the results with different lighting setups
archive / summary
describes the state of raytracing in games presents a high-level overview of a Decoupled Real-Time Ray Tracing pipeline shows where raytracing is used in games and what new problems it introduces additionally presents 4 open problems in raytracing and how it interacts with other developments
archive / summary
the paper introduces a neural radiance caching method for path-traced global illumination uses a self-training process to train the neural network at runtime
archive / summary
the video tutorial explains how to draw Squares, boxes, and rounded rectangles as SDFs presents how to derive the SDFs and presents the extension into rotated shapes additionally shows how to use rectangle SDFs to implement a brick wall
archive / summary
discusses how to generate ocean displacement, buoyancy, rendering of the ocean as micro facets, how to calculate moments from the displacement reflections (specular and environment), masking/shadowing, and light scattering inside the water surface additionally covers interactions with the water, explosions, etc...
archive / summary
the article discusses local tile memory and mobile GPUs presents how different usage patterns affect the ability to achieve optimal bandwidth usage shows some OpenGL extensions that enable tile local memory usage additionally, it shows how Vulkan Subpasses allow the driver to optimize shaders transparently
archive / summary
a new Vulkan extension that adds vkCmdDrawMultiEXT vkCmdDrawMultiIndexedEXT these allow applications to provide an array of draw call arguments in CPU visible memory for uses cases where applications would call vkCmdDraw multiple times in a loop without changing state tests indicate that a doubling of draw call processing rate can be observed
archive / summary
the paper presents a method for importance sampling linear lights such as fluorescent tubes rendering unbiased, nearly noise-free diffuse and specular shading by sampling a linearly transformed cosine (LTCs)
archive / summary
article describes how AMD Smart Access Memory allows applications full access to GPU local memory provides information on how the memory is exposed additionally provides performance advice on the usage
archive / summary
the article provides an introductory overview of HDR concepts covering color spaces, color primaries, Transfer functions presents the integration into our machinery additionally covers blending, precision, and other common issues
archive / summary
the paper presents a polarizing filter function for specularly reflected light support for direct and image-based light sources presents integration into Falcor rendering framework
archive / summary
the article shows an overview of new features and changes presented at WWDC21 covering raytracing integration into tile memory, motion blur, shadows, and improvements to raytracing debugging additionally presents bindless binding, improved debugging tools as well as texture compression library
archive / summary
the post shows how the Mali hardware operates and exposes multiple graphics queues presents how to run multiple graphics and compute workloads in parallel discussing performance and hardware considerations
archive / summary
the blog presents a comparison between color's luminance and lightness shows that colors with the same luminance are perceived differently (The Helmholtz–Kohlrausch Effect) presents different models that can express this closing by presenting a few ideas the author thinks the models could be used to improve results
archive / summary
the video presents an overview of all blend modes supported from the shader graph node shows the equation for each blend mode and discusses the effect
archive / summary
the paper introduces an improvement for specular antialiasing normals distribution function (NDF) is filtered in orthographically projected space instead of slope space presents an approximation solution and provide source code additionally presents an isotropic NDF-filtering technique for deferred and forward rendering
archive / summary
Lumen presentations starts at [10:00 minutes](https://youtu.be/QdV_e-U7_pQ?t=602) presents what Lumen supports, what limitations exists shows an in-depth look at the implementation that uses hybrid tracing techniques looking at the scene representations, surface cache, and the different passes required additionally presents content examples, provides optimization advice, and answering user questions
archive / summary
article discusses alternative approaches for geometry pipeline design moving more work into the pixel shaders, following the patterns of ray tracing shader presents performance comparison of the presented approach and limitations
archive / summary
new podcast about VFX in film, TV, and games discussing Resident Evil Village and UE5 how game technology is evolving and reaching a collision point between real-time and offline techniques
archive / summary
the video tutorial explains how to draw a line segment in pixel shaders shows how to derive the point to line segment formula additionally presents how to combine multiple lines
archive / summary
the article presents a look at the implementation details of nanite GPU culling discusses how the compute shader cull on the sub-instance level shows how clusters are culled and the depth buffer from the previous frame is used
archive / summary
the paper presents how to sample polygonal area lights proportional to linearly transformed cosines offers significantly reduced noise and unbiased diffuse and specular shading displays nearly noise-free results at 2 spp
archive / summary
the video explains the motivation for the bindless model and explains the concept presents how this can be expressed in metal using argument buffers explains memory residency and how this influences what resources can be used additionally explains what synchronization considerations need to be dealt with
archive / summary
interview discussing the demo project, lessons learned, discussions about future directions, and many insights into the design considerations overview of nanite is starting at [52:15](https://youtu.be/TMorJX3Nj6U?t=3135) presents an overview of the system, hierarchical LOD cluster selection, data compression presents in-game debug views and further looks at the demo content
archive / summary
the article presents the fundamentals of the WebGPU API required to draw a colored triangle also provides an overview of the WebGPU Shading Language (WGSL)
archive / summary
the talk provides an overview of compute shaders comparison of different technologies (Cuda, OpenCL, Compute shaders) shows the execution model, explaining common terminology, and hardware variations
archive / summary
the article discusses the implementation of ray-tracing support into the open-source RADV driver discusses what RDNA hardware supports and how to emulate it without hardware support
archive / summary
the blog post presents a history of sampling techniques, how it was used and how it changed over time presents different use cases, strengths, and weakness the author additionally provides a look at how the field might develop in the future
archive / summary
the article presents how printf is supported in Vulkan Shaders what extensions are required, how to integrate them into the shader pipeline additionally shows how to actually print the messages in application code
archive / summary
the article provides an overview of compute shader terminology and how they differ between APIs how resources are bound, synchronization and memory models
archive / summary
the article discusses continues exploration in compressing a set of textures presents how to use neural network for compression showing techniques that can be used to improve compression discoverability additionally presents ideas on how this can be further developed and used for other use cases
archive / summary
the video tutorial shows how to implement refraction into a shadertoy explains the index of refraction, how different materials create different effects additionally shows how to deal with rays that don't leave an object
archive / summary
the master thesis presents a SPIR-V based instrumentation framework shows how to use instrumentation to gather information about the execution of ray tracing shaders additionally presents RayScope, a system for the visualization of collected instrumentation data shows examples of problems that the system helped to identify
archive / summary
the article provides an analysis of the Nanite cluster algorithm presents how clusters are generated, hierarchical tree structure, and LOD selection shows where in the engine code the relevant code can be found
archive / summary
the article presents an overview of the Nanite Rendering pipeline using RenderDoc shows how meshes are rasterized with adaptive cluster LODs pipeline is based around visibility buffers, presents how materials are handled and integrated into the GBuffer presents how a material depth buffer is used to speed up the material shading step
archive / summary
the paper presents an improved normalization for the Smith–GGX BRDF visible normal distribution function (VNDF) previous methods cause brightening bias because of the mismatch between shading normals and geometry normals
archive / summary
the video tutorial shows how to implement the MIP selection algorithm using shader code shows the effect of texture bias and presents possible use cases
archive / summary
the paper presents a new algorithm for the semi-regular quadrangulation of arbitrary input surfaces focuses on ensuring that all feature-lines are represented as patch boundaries
archive / summary
the article presents a proof of concept stage technique to render grass using a screen-space ray-tracing based technique shows how the entities are derived during the shading step from tracing into a grass area
archive / summary
introductory Siggraph class about ray tracing including an opening interview with Peter Shirley overview of rendering equation and 2d shadertoy implementation
archive / summary
the article presents triangle grids discussing what a triangle grid is, why to use them and how to use it
archive / summary
the article provides an overview of authoring shaders in HLSL shows the building blocks of the language additionally shows how to integrate it into the different Unity systems
archive / summary
the article explains what Signed Distance Fields (SDFs) are how they are used and what kind of effects can be achieved from a single SDF texture additionally shows the implementation of the effects in Unreal visual shader graph
archive / summary
the video recording from the Siggraph 2018 has been released covering ocean foam generation, shallow water simulation, and flowing water cloud rendering based around geometric shapes, blurring, and pixel shading on the projected volumes how to generate and simulate the 3D ropes based around parabolics tentacle animation driven from exported vertex animation data, with runtime partial resimulation brief look at the lightning implementation based on L-Systems
archive / summary
the blog post presents the setup of a frame for VR rendering (Oculus Quest) presents the techniques applied for latency reduction
archive / summary
the article presents how to distribute Monte Carlo errors as blue noise in screen space storing precomputed permutation with runtime retargeted seeds includes a compute shader implementation of the retargeting pass
archive / summary
the post presents an overview of different rendering pipeline architectures (Forward, deferred, visibility, ...) discussing the different trade-offs of the techniques additionally clarifies the choosing the proper techniques depends on many factors and need to be analyzed for each game/team
archive / summary
suggests using a PCG hash function as default for GPU based hash/random functionality brief introduction to the techniques additionally provides a link to a paper that goes into more detail about various techniques
archive / summary
the video explains how partial derivatives are calculated in pixel shaders theses partial derivates are used for UV level selection additionally presents for what kind of effects these functions can be used
archive / summary
the article presents an overview of Vulkan secondary command buffers clarifying what restrictions exist shows how the extension relaxes the restrictions and allows secondary command buffers to inherit the viewport state
archive / summary
Two Minute Paper presenting an overview of Procedural Physically-based BRDF for Real-Time Rendering of Glints (covered in the week [150](https://www.jendrikillner.com/post/graphics-programming-weekly-issue-150/)) shows the different demo applications and how it compares against non-realtime techniques
archive / summary
the author presents his learning about Gamut Clipping based on the Oklab color space additionally provides an interactive shader toy to allow experimentation with the technique
archive / summary
the post presents a divergence-free noise generation technique (such as curl noise) the presented technique needs only 2 gradients (curl noise needs 3) shows how to optimize the technique and compares it to other noise types
archive / summary
the article shows how to compact DXR acceleration structures the process is run on the GPU over a few frames presents how the process works, what synchronization and lifetime factors need to be considered
archive / summary
the article provides an overview of raytracing in rendering pipelines, how it has developed over time in the game development how it has been integrated into metro exodus shows the effect of the different components and how it affects the final rendering
archive / summary
the blog post discusses how to combine raytraced and shadows from shadow maps detect areas where shadow map resolution is too low to represent the edges and trace rays instead presents different methods, compares performance and quality additionally presents a summary and comparison against the AMD hybrid raytracing shadows technique
archive / summary
the blog post presents a performance comparison of Naga (rust based shader translation library) vs. SPIRV-Cross in Dota2 measures CPU time taken for shader translation in Dota2 from SPIRV to MSL (Metal shading language) takes around 1ms per shader stage
archive / summary
Radeon Rays v4.1 (ray intersection library for D3D12 and Vulkan) is now open source
archive / summary
the article discusses a technique for parallel processing of stack-based operations designed for a clip stack in the usage of a compute-centric 2D GPU renderer single-pass process with bounded memory usage within a thread group
archive / summary
the video presents an explanation on mipmaps, presenting what effects it has on the visual appearance explains how to use unity to automatically generate mipmaps shows how to generate custom mipmaps additionally provides some ideas on how to use custom generated mipmaps to achieve water caustics implementation
archive / summary
part 3 of the newton cradle tutorial series shows how to implement reflections using raymarching; this enables the object to be reflected in itself implementation is done using ShaderToy
archive / summary
4-minute trailer presenting a brief look at many papers that will be presented as part of SIGGRAPH 2021
archive / summary
the paper investigates how shading reuse is perceived when visibility and shading rate is decoupled presents that even in dynamic scenes, it's possible to reuse a large amount of shading information shows different methods that can be used to predictively shade, compares the results, and present limitations
archive / summary
the paper presents extensions and improvements to the probe-based irradiance-field-with-visibility representation technique presents a multiresolution cascaded volumes representation to support large worlds improved probe pruning, faster convergence through perception-based irradiance encoding additionally presents how to use irradiance probes to shade glossy reflection rays
archive / summary
the video explains how to generate 2D Perlin noise and how to use it in Unity provides sources for other noise kinds additionally presents a few examples of how to use Noise
archive / summary
presents how D3D12 Raytracing support was implemented in Battlefield V mix of screenspace reflections and raytracing shows the pipeline implementation, adaptive ray count selection, ray defragmentation, binning, and denoising techniques to improve BVH updates, culling hierarchies, partial updates, how to deal with shader graph authored shaders, integration with shading, particles, and vegetation
archive / summary
the article presents a walkthrough of the API abstractions on top of D3D11, D3D12, and Vulkan used in the Wicked Engine shows the resource, pipeline, command list, queues, and barrier abstractions discussing some limitations of the current approach and how it might develop in the future
archive / summary
an interactive article about debugging a C++ crash more about C++ than graphics, but I really liked the interactive article :)
archive / summary
the article shows how to generate planes, cones, cylinders, and a torus implementation provided in C++
archive / summary
the paper presents a novel model that splits a Direct Delta Mush into two layers this can approximate the deformation with improved runtime performance and lower memory requirement the video shows a comparison against other methods additionally presents performance numbers for the technique
archive / summary
the paper presents antithetic variance reduction technique used to estimate the interior integrals shows the usage of the technique for Monte Carlo differentiable rendering of glossy and BSDFs antithetic sampling is the use of negatively correlated samples instead of independent samples
archive / summary
Two Minute Paper provides an overview of the Interactive Wood Combustion for Botanical Tree Models paper from 2017 shows what parameters are exposed, what kind of effects it can generate
archive / summary
part 2 of the video tutorial that adds material support to the SDF based Newton Cradle implemented using ShaderToy presents how to classify the objects into separate materials adds support for cube map environment maps and reflections on the objects of the scene
archive / summary
the article presents a walkthrough how the author analyzed the slow shader performance on the GPU of the Pixel 4 shows how to detect occupancy, get access to the assembly instructions ultimatly presents how reading the assembly showed the source of the performance problem, how it connects to shader memory model and how to possibly resolve it
archive / summary
WIP wiki about Projective Geometric Algebra, specifically the four-dimensional Clifford algebra a mathematical model that incorporates common computer graphics operations in a single algebraic structure
archive / summary
the article presents how to setup UE and Unity to disable dynamic motions, user specific parts from profiling test what system passes to disable to get stable GPU times
archive / summary
collection of tech art tweets covering UE4 weather systems, GPU instancing with Unity shader graphs entries of tech art challenge, vegetation shading, and much more
archive / summary
the article presents a walkthrough how to create a card shader covers how to use stencil buffers to limit the 3d content shows how to implement the view direction dependent parralax and reflctions
archive / summary
the video provides a summary of the new features in the radeon GPU profiler covering cache counters and raytracing integration
archive / summary
twitter thread author provides summaries of 3 common technques covering Ambient occlusion, Shadow pancaking and Waterfall loop
archive / summary
the tutorial explains how to generate consistent hashes based on integer positions covering how to vectorize position and normal calculations additionally presents how to correctly update normals to deal with non-linear scaling
archive / summary
64-bit integer atomics are now supported some new capability bits got introduced as not all views, sources support it on all hardware dynamic resources allow indexing into a single array of descriptors, explains what helper lanes are and how they relate to lanes and quads compute shader derivatives and how they are derived from thread group layout Wave Size attribute allows shaders to specialize shaders for wave sizes
archive / summary
the tutorial provides a walkthrough of a raymarching supermassive black hole shader implementation is an approximated physically-based done using Unity author presents the sources, approximations done and discusses limitations
archive / summary
Talk discusses how the performance of the ray-traced direct illumination was greatly improved presents an overview of what ReSTIR importance sampling algorithm shows to the memory coherence and bandwidth was reduced through pre-randomization of input lists additionally discusses how the number of rays could be reduced by decoupling shading, reuse, and visibility
archive / summary
explains shadow denoising process broken down into 5 blocks that are explained individually shadow mask creation, local neighborhood, occlusion, reproject, and spatial filters first covers the functionality of these blocks afterward shows optimizations applied to each stage
archive / summary
overview of Variable Rate Shading (VRS), what is supported with Tier 1 and 2 edge detection run as part of the tone mapping step, generating two shading images (default and conservative) VRS shading rate image is also read in compute shaders for reduced shading rate for compute shaders presents performance numbers
archive / summary
visual representation that shows why inverted depth buffer range with floating-point formats improves precision
archive / summary
list of posters presented at I3D covering Linearly Transformed Spherical Harmonics, Style-Preserving Pixel Art Magnification, Rendering of Many Lights with Grid-Based Reservoirs and others
archive / summary
part 5 of beginner-focused shader tutorial series focuses on data types, representation of color shows how to output constant colors in Unity shaders code, visual shader graph, and unreal engine
archive / summary
the Graphics Codex online textbox is now a free covering an extensive range of topics, model of light, Rendering equation, camera, material models, path tracing, parallel architectures, and much more additionally contains many references to further sources on the topics
archive / summary
the paper presents a method that uses the AABS from hardware raytracing shaders to apply decals and lights uses a zero-length ray to collect all overlapping decals/lights per pixel compares performance against deferred decals
archive / summary
the paper presents comprehensive coverage of BVH hierarchies, especially focused on ray tracing provides an overview of the basics, compare many state of the art algorithms for construction and traversal provides a comprehensive overview of existing hardware and frameworks additionally presents the most common techniques and recommendations for the different algorithms to be used
archive / summary
the video tutorial presents how to render and animate a newton's cradle with SDFs implementation is done using shader toy
archive / summary
the article presents the difference between ddx/y ddx/y_fine presents the history of these instructions in HLSL and how different hardware/API behaves shows example use cases on how fine and coarse rasterization affect seamless sphere mapping additionally presents how fine derivatives can be used for quad-level communication
archive / summary
Vulkan API now exposes video support extended the concept of the queue to support decode/encode queues with different extensions for several codecs the article presents a walkthrough of the API through the usage of an encoder example
archive / summary
the article presents an overview of why filtering for pixel art at non-integer values is vital to prevent artifacts provides an overview of numerous filters and links to resources additionally provides a demo application to compare the different filters
archive / summary
the paper presents a machine learning-based approach that uses differential rendering to approximate several simplifications effects simultaneously presents a model that can jointly optimize over shape, appearance, and animation parameters
archive / summary
the article provides an overview of shader assembly reading focuses on GCN instructions provides a brief overview of the hardware, the different operations, and how small changes can make significant differences in generated code
archive / summary
the article presents two common approaches to fullscreen passes using PIX shows why using a single large triangle is more efficient and describes why this is the case
archive / summary
the blog post provides a walkthrough of the bindless implementation in Wicked Engine for both Vulkan and D3D12 starting with an overview of what the bindless model is, how it interacts with subresource and different resource types additionally presents the implementation considerations and device capabilities that need to be respected
archive / summary
the article shows how to integrate skyboxes into UE4 explains how cube maps are encoded and how to write the shader to render them additionally covers how to generate and convert data into the suitable format
archive / summary
the articles describes the evolution of a multiple layered tilemap renderer starting at using the build-in Unity renderers, showing the incremental improvements the final solution is a custom rendering stack that stores the layers as voxels, containing indices into texture array slices
archive / summary
the video explains the smoothstep curve visually provides examples of uses cases, including a showcase of a simple toon shading implementation
archive / summary
the Twitter thread provides a detailed explanation on how to correctly calculate normal vectors from vertex displacement
archive / summary
registration for Microsoft's online conference on April 20-21 includes talks about several new DirectX features, Xbox innovations, as well as talks from partners
archive / summary
the video provides an in-depth walkthrough of a debugging vertex ID shader IDs are visualized by generating camera facing quads with applied digits from a texture atlas
archive / summary
the paper presents a neural-network-based approach that is aimed at encoding detailed patterns into mipmap style lower resolution representations introduces the idea of neural offset for improved handling of parallax effects
archive / summary
the paper presents racial bias that can be found in the technical language and numerical measures used in skin and hair research presents suggestion on how graphics research practices can be improved to include a larger spectrum of humanity
archive / summary
the Tutorial presents how to generate sand dunes in pixel shaders using Unity presents a normal vector based sand shine reflection for more in-depth realistic sand, check out [Sand Rendering in Journey](https://www.gdcvault.com/play/1017742/Sand-Rendering-in)
archive / summary
updated version supports reporting of memory, instruction, and scalar cache usage on RDNA hardware article presents how the data is visualized
archive / summary
the article provides an overview of the Slang Shading language and its use inside of NVIDIA Omniverse Slang is HLSL based, can be used to generate SPIR-V, DXIL, and DXBC the main additions are interfaces, generics, and modules
archive / summary
the article shows how to calculate the variance of a stream of values only the average and average square value are required to be tracked variance and standard deviation can be derived from these
archive / summary
the paper presents a novel sparse Neural Radiance Grid representation this representation allows Neural Radiance Fields (NeRF) to be baked so that rendering can be archived in realtime
archive / summary
the article presents 4 different ways to generate a sphere mesh UV Sphere, Icosphere, Quad Sphere, and Goldberg Polyhedra
archive / summary
the paper presents a method that allows a 5−7× reduction in memory footprint compared to indexed triangle meshes this is archived by converting vertices into vertex grids and using compressed displacement vectors to compress the vertex data the additional work required to decompress the data adds around 15% of overhead
archive / summary
the blog posts provides an easy to understand summary of the Vulkan Synchronization additionally includes information about what parts of the API have changed with Synchronization2
archive / summary
the article presents experiments with spectral rendering to find an importance sampled wavelength sampling approximation presents comparisons of the different approximations
archive / summary
the paper presents a technique to allow path tracing through sparse volumes based on NanoVDB with unbiased multiple scattering volume path tracing and neural denoising able to render Disney Clouds in 60 ms
archive / summary
video recording of the SIGGRAPH 2020 was released the paper presents how to use a neural representation to infer additional results such as reflections and global illumination
archive / summary
open-source release of a tool to generate meshlets (for use with mesh shaders, GPU based culling, etc) additionally can generate bounding sphere and visibility cones
archive / summary
Vulkan Ray tracing tutorials have been updated added new tutorials on how to use vkCmdTraceRaysIndirectKHR and how to ray cast ambient occlusion using ray queries
archive / summary
the paper presents a technique to discover a potentially visible set (PVS) of triangles visible from a region of space this technique uses ray shooting guided by Adaptive Border Sampling and Reverse Sampling provides an overview of how the method was implemented using Vulkan hardware Raytracing
archive / summary
the video tutorial explains how to generate a procedural stylized lawn shader uses a combination of noises to create the shading additionally adds support for sparking based on view angle
archive / summary
the Twitter thread presents a breakdown of the Valheim rendering pipeline (implemented using Unity) shows the different rendering passes, what shaders are expensive, and usage patterns responsible for suboptimal performance additionally provides pointers at possible improvements
archive / summary
collection of tech art tweets covering art style demonstration, material creation, destruction, and much more
archive / summary
the tutorial explains an approach how to implement cutting walls into 3D walls used method uses a screenspace projected sphere that is placed on walls using raycasting implementation walkthrough is using visual scripting in Unity
archive / summary
the paper presents a Geometric glint anti-aliasing method that is compatible with LEAN mapping this is archived by using mipmapping on the tabulated slope distribution function (SDF) of the microfacet BRDF a slope correlation coefficient is additionally introduced to make it compatible with normal mapping
archive / summary
the article provides an overview of the first steps required to implement screen space reflection into an OpenGL based renderer shows what artifacts can be expected and what the author tried to improve but didn't work out
archive / summary
the article provides an introduction to Compressive Sensing presents the basis of the underlying theory that allows the reconstruction from a limited set of data point explains the fundamentals of the frequency domain
archive / summary
the article describes provides a brief overview of AutoHDR the feature allows SDR games to be transformed to HDR transparently to the underlying game additionally shows how to enable a split-screen feature that will render the game with SDR one half and HDR for the other
archive / summary
the video tutorial shows how to change grass to cast shadows using Unity this presents how to generate double-sided grass geometry and output depth in the shadow pass
archive / summary
the blog post describes how blue noise can help to improve converge of ray tracing results explains how to transform white noise into blue noise using a compute shader (code provided) presents the limitations of the presented solution
archive / summary
the tutorial aimed at Unity beginners explained how shaders are set up and structured additionally provides a brief look at visual shader creation experience in Unity and Unreal Engine
archive / summary
the article series provides information about the role of color in data visualization shows what kind of scales exits, how different colors should be used and how the way data is presented provides a further understanding of the underlying data covers color scales, qualitative, quantitative, sequential, diverging as well as classed and unclassed scales
archive / summary
list of all papers that will be presented as part of I3D 2021 in April
archive / summary
the article presents how soft shading for foliage was implemented using a combination of spherical normal generation and gradient remapping additionally covers how to add wind to the tree
archive / summary
the paper presents a novel approach to screen space ambient occlusion that accounts for occluded geometry through the use of a stochastic depth map Stochastic-Depth map is created through a global random that will discard pixels based on a tweakable cutoff value and store the results into separate samples per pixel
archive / summary
the video for the GDC 2019 talk has been released the talk presents a walkthrough of how the lava, weather, water effects were created shows what references were collected, identified key steps that need to be replicated and how it was implemented into Frostbite
archive / summary
the blog posts discusses an approach for efficiently fitting bezier curves to an existing technique presents prior art, distance metrics, as well as a novel approach that allows curve fitting to be done more efficiently
archive / summary
the Unity video tutorial explains triangle winding order, how it connects to culling presents how to adjust the culling mode in the different Unity rendering pipeline how to set up double-sided meshes
archive / summary
the article presents a frame breakdown of Jurassic World, a forward D3D11 based tiled forward renderer covers grass movement, Tiled Forward Lighting, Atmospheric effects, Reflections, Shadows, AO, rain, temporal effects additionally offers insights into post effects and TAA (temporal antialiasing)
archive / summary
the article presents an overview of the new debugging features in SHADERed shows undefined behavior detector, variable inspectors, global breakpoint views additionally presents a heatmap view of SPIR-V instructions executed
archive / summary
the article provides an overview of the state of OpenGL on D3D12; it's now used to run OpenGL applications on ARM windows provides insights into the problems when implementing APIs on top of existing API layers
archive / summary
the blog post presents an overview of the custom shading language design for an offline renderer the author presents the motivation behind the project, the design decisions, and an overview of the implementation main building block of the language is similar to OSL (open shading language)
archive / summary
the blog post shows a number of tricks for shadertoy development covers signal difference aware subsampling, Smart Gaussian blur as well as mipmap generation
archive / summary
introductory math book released for free in updated form from the original release focused on providing thorough coverage on fundamental 3D concepts
archive / summary
the extensive article provides an overview explaining BRDFs shows the derivation of many standard models used in rasterization and ray tracing applications explains the different terms and offers many sources for even more information source code is also provided
archive / summary
videos and slides from SIGGRAPH 2020 presentations by Naughty Dog low-level optimizations, volumetric effects, the technical art, and lighting technology of the Last of Us Part 2
archive / summary
the blog post presents an overview of improvements of Synchronization2 presents a path to upgrading to the new extension using an incremental approach and relying on a new layer that translates Synchronization2 API calls to Synchronization1 (if required)
archive / summary
the article presents an overview of Vulkan timeline semaphores presents the problems with VkSemaphore shows what new uses cases timeline semaphores enable
archive / summary
the paper presents an incremental approach for the traversal OpenVDB frustum grids explains the difference between frustum grids and uniform grids shows how to deal with the non-linearity of frustums
archive / summary
the video provides a high-level overview of differential rendering papers presents papers that can generate material graphics from reference photos
archive / summary
video comparison of DLSS 2.0 against a native 4k rendering presents visual quality differences additionally offers why Mip biasing is required when rendering at sub-resolutions
archive / summary
the post presents an overview of what gradients are, what they are used for presents standard methods with cons and pros for each additionally offers a look at the Frequency analysis of differences
archive / summary
the tutorial shows how to implement FXAA into a Unity custom scriptable render pipeline explains the different components that define FXAA presents the effects of controllable settings and how they affect visual quality and performance
archive / summary
the Video provides a 90-minute in-depth look at the rendering architecture used in CryEngine providing an overview of the abstraction layers discusses API abstractions, draw call generations, interactions with the higher-level rendering pipeline provides an overview of the different rendering stages of the pipeline covering GBuffer, shadows, tile shading, tone mapping, post-processing additionally provides an overview of the shader system
archive / summary
the article presents two methods to hide water from the inside of boats the first method uses an invisible inside mesh for the ship to draw depth before the water to block it from rendering second method involves using the stencil buffer to mask out parts of the water presents difficulties with either technique and how to deal with them source code for use with Unity is provided
archive / summary
the article presents an alternative way to pack PBR textures into a single 4 channel texture albedo information stored as a gradient with gradient reconstruction, normals stored as height derivates, and linear smoothness presents how this was integrated into Unity shows the setup tested on a 6 material blend setup and presents performance comparison against the classical packing
archive / summary
the article shows how the Vulkan extensions enable bindless indexing on Android presents an overview of dynamic indexing (and restrictions), update after bind, and GPU based validation
archive / summary
the article presents how the bindless binding model has been integrated into The Machinery shows the setup, lifetime management as well as integration with the shader system
archive / summary
10h Video online class about shader development whole series covers an entire spectrum from basics, over lighting, mesh deformation, skyboxes, and image-based lighting provides assignment and discusses different approaches to solve it
archive / summary
the article presents the buffer_device_address (BDA) extension for Vulkan this extension adds pointer support for Vulkan resources allows users to request the virtual memory address of each resource, operate on it, and even resolve it from within shaders shows how to use a pointer in a shader additionally covers debugging advice and how this is handled inside of SPIR-V
archive / summary
provides an idea on how to maintain a pixel art style with dynamic lighting in a 3D environment technique uses position and UV derivatives to quantize the lighting results onto the center of the texel
archive / summary
the video tutorial shows how to generate a grass mesh using a compute shader animate the grass from the vertex shader to apply movement
archive / summary
the video tutorial shows how to implement a dissolve shader for 2D sprites using the Visual Shader language of Godot
archive / summary
the article shows a few ways of doing bilinear upsampling and downsampling explains why it's essential to follow the same convention everywhere and verify that no unintended shifts are introduced suggests that the same half-pixel offset convention as used by GPUs should also be followed in CPU code discussing the different tradeoffs for performance/aliasing/smoothing
archive / summary
the Twitter thread presents details about how the outline rendering has been implemented based on several different outline classification types are combined as a post-process the edge detection for outlines is additionally leveraged for SMAA improvements
archive / summary
the paper presents a new technique to generate more accurate motion vectors for shadows, glossy reflections, and occlusions the key idea is to detect and track the source of the effect (for example, the object blocking the light) and use the change of the source to adjust the back-projection accordingly
archive / summary
the article presents Separating Axis Theorem for OBB (oriented bounding box) against the view Frustum additionally covers how to use Intel ISPC to generate the SSE accelerated version of the algorithm presents performance comparison with/without SEE and compares against the previous implementation from part 1
archive / summary
the blog post presents an overview of Vulkan extensions added as part of Android R lists the extensions, what problem it solves and how it works covering uniform alignment rules, separate depth stencil views, SPIR-V support, loop control, 16-bit subgroup operations as well as imageless framebuffers
archive / summary
the article presents how to use 3 parallel work queues in OpenCL to read, write and process a GPU kernel at the same time presents source code for buffer creation, queue creation, and synchronization
archive / summary
article presents how to integrate a custom shading model into the Unity rendering pipeline implements the Minnaert shading model this model makes the surface seem darker from certain viewing/lighting direction
archive / summary
the blog post discusses the different memory types and how applications should use them provides overviews on what is reported on Intel, Nvidia, and AMD hardware additionally explains how integrated and external GPUs expose different available memory
archive / summary
the AMD driver now supports the new Vulkan synchronization extension post provides a brief overview of how the capabilities of the extension allow the drivers to be more efficient in reducing GPU cache flushes and stalls
archive / summary
the blog posts provides a walkthrough of the Cook-Torrance shading model starts with the Lambert shading model and then presents step-by-step how to arrive at the final model shows results at each step with source code provided
archive / summary
the Radeon GPU Analyzer now supports DXR shader disassembly, live VGPR analysis as well as control-flow graph analysis shows what of the two compilation models (fully inline vs. Indirect ) has been chosen by the runtime also provides the disassembly for the driver generated acceleration structure traversal
archive / summary
master thesis that covers a tool for interactive exploration of all contributing paths from a path tracer including a heatmap visualization and area filters show how to use the proposed visualization to help in debugging scenarios
archive / summary
the author provides a list of lessons learned and advice that should be considered when working on rate-distortion optimization algorithms
archive / summary
second particle in articles series about SDF (signed distance field) generation with Unity this part presents how to visualize an SDF using a pixel shader
archive / summary
the Unity tutorial explains how to generate meshes from a compute shader in the process, it explains the fundamentals of compute shaders and read back data from the GPU
archive / summary
the article provides a geometric interpretation of linear interpolation, range mapping, and how it relates to Bézier curves provides links towards articles with further information on why lerp for colors and rotations doesn't always work as expected
archive / summary
Shows how to sort data on the GPU using Bitonic Merge Sort networks using GLSL/Vulkan compute Derives how to non-recursively calculate per-thread index pairs for sorting networks Explains how to orchestrate compute-shader dispatches for large input data provides example implementation that sorts pixel by the brightness
archive / summary
the article presents how to implement ice shading uses an approximate for ice refraction controlled by textures and fresnel shading effect is implemented using Unity Shader Graph
archive / summary
the video shows how to implement fireworks using fullscreen shader using Shadertoy
archive / summary
the paper presents a method that maps spacial search in a fixed radius into a ray tracing paradigm this allows the ways to take advantage of ray tracing hardware to speed up the operations presents an application for GI with progressive photon mapping and point-cloud registration of partial surface scans
archive / summary
the article presents a walkthrough of a stylized crystal shader implemented using Unity Shader Graph effect is implemented as an unlit effect based on color gradient and uses a copy of the scene to implement a refraction approximation
archive / summary
the article provides an overview of a GPU voxel renderer using raytracing shows the data structure layout, how GPU and CPU updates are overlapped presents a technique to archive interactive world updates by using incremental parallel updates additionally offers advice to improve the performance of the multi-threaded implementation
archive / summary
the article presents a comparison of DLSS 2.0 and the default TAA implementation of UE 4.26 comparing performance and quality
archive / summary
the Twitter thread presents an overview of the stylized g-buffer based rendering pipeline implemented using Unity presents how each material ID written into the g-buffer is later used to adjust post effects based on the affected materials lighting is applied in two stages with a second pass to toon ramp combined lights as well
archive / summary
the post presents an overview of optimizations done for Godot 4.0 list contains but CPU and GPU optimizations offers a good starting point for everyone looking into optimizing their own renderers
archive / summary
the article presents an overview of a simple GPU based path tracer written in Zig shows how to have two data layouts for changing scenes vs. static scenes presents how to implement spectral rendering and how it affects objects made from glass
archive / summary
the paper introduces a new method for Mip level selection, including anisotropic filtering in a raytracer presented technique is not based on screen space derivatives extends the technique to apply to textures with different dimensions shows how ray cones can be used to select LOD for shading too
archive / summary
the article presents an introduction to Gamut Clipping (mapping colors outside of the target color space back into valid colors) presents different approaches for mapping techniques shows how to apply these for the Oklab color space and presents comparisons of the results code is provided
archive / summary
first part of a three-part series that focuses on optimizing a CUDA workload articles present the methodology, how to use the Nsight provided information to iteratively optimize the application
archive / summary
the article presents how to reduce memory usage of bottom level acceleration structure (BLAS) instead of using placed resources for each BLAS, it is recommended to sub allocate from one larger structure
archive / summary
the Unity video tutorial shows how to implement rim lighting (an effect that only applies to the edges of a model)
archive / summary
Video lectures for the Introduction to Computer Graphics Course at the University of Utah more classes will be released over the next few weeks
archive / summary
the paper presents a deep neural network to generate signed distance functions using a fixed network and sparse oct-tree the network also generates the level of detail representations shows real-time reconstruction and rendering with ray tracing
archive / summary
the article presents an overview of UV mapping showing different mapping techniques, problems, and uses cases
archive / summary
updated tools adds support for inline raytracing and capturing applications that are not frame-based
archive / summary
the author provides an overview of anti-aliasing solutions what problems temporal techniques have, look at alternative solutions and experience trying to avoid using temporal techniques in a game production
archive / summary
the article discusses the progress on an open-source graphics stack for Apple M1 provides insights into how Apple GPU commands are expressed on the lowest level
archive / summary
the video from GDC 2018 was released the talk presents different iterations of a system to allow particles emission from everything in the world contains many examples, pro/cons of several techniques shows how to unfold meshes so that particles can be emitted in a view independent fashion additionally provides insights into particle workflows
archive / summary
the presentation provides an overview of the rendering pipeline from mesh creation to screen output focuses on the RDNA2 architecture, presenting what each piece of hardware in the pipeline is called and the function it serves providing insights into why specific workloads can achieve better performance than others
archive / summary
talk provides an overview of the Crytek rendering pipeline how a Micro-G buffer is used to reduce the bandwidth required encoding, reconstruction errors, and performance comparison how the raytracing is implemented using compute shaders BVH data structures, using interlaced ray tracing for ray count reduction data optimizations for BVH objects
archive / summary
the article explains the process of porting the NAP creative coding Framework to Vulkan focuses on presenting the high-level concepts and considerations instead of API details presents synchronization, main API objects, frame setup, descriptor set management, mesh and texture handling as well as coordinate space conversions
archive / summary
the tutorial shows how to create procedural fractals enable color and position modifications present performance comparisons
archive / summary
the article presents how a sand dune wallpaper was implemented using WebGL demonstrates how the scene was composed, dust particle implementation, wind simulation as well as texture source code is available
archive / summary
shows why normals need to be recalculated if a mesh shape is changed in a vertex shader presents how to re-calculate the normals by applying the same offsets to approximate neighbors and recalculating the normal from this simplified video version of [How to Calculate Shader Graph Normals](https://gamedevbill.com/shader-graph-normal-calculation/)
archive / summary
the post shows how aliased resources can cause problems when doing render doc captures aliased textures that are captured might need barrier transitions, which can corrupt other textures in the same memory range
archive / summary
collection of articles/ blog post written by John Carmack on a variety of topics
archive / summary
the video tutorial shows how to implement a shader for freezing objects this includes blending ice material on top of existing objects, tessellation shaders to extend meshes to form icicles, and mesh normal generation
archive / summary
the blog post shows the interactive particle implementation used in Ghost of Tsushima particles are controllable through expressions and can react to runtime information shows different use cases such as interactive leaves, candles, and crabs
archive / summary
the tutorial shows how to implement Temporal Anti-Aliasing using an example OpenGL implementation provides a walkthrough of all steps required shows how to calculate velocity vectors, use history buffers, calculate jittering matrix additionally shows how dithering can be used to create alpha-blended looks
archive / summary
the Rust tutorial provides an extensive walkthrough of the steps required to use OpenGL using native rust explains all the necessary interop to load OpenGL, initialize a swap chain, and start presenting
archive / summary
the article presents how VRS tier 2 shading was integrated into Gears uses the previous frame color buffer results to run a Sobel edge detection compute shader to detect the shading rate a conservative VRS allows systems to opt-in for special quality if required contains advice on optimizations for VRS tile texture generation additionally provides guidance on how to estimate performance using Tier 1 provides performance numbers for the savings from different render passes
archive / summary
the article contains a list of common graphics programming terms and how to pronounce them
archive / summary
the article provides a guide for porting from the original VK_NV_raytracing extension to official VK_KHR_raytracing extensions show what changes are required for device creation, memory management, acceleration structure build, pipeline management
archive / summary
the article presents an overview of Creation Graphs and what it enables the user to create in The Machinery an extensible node-based system that allows the flexible combination of data from different kinds of data to create new combinations
archive / summary
the video tutorial explains how to create stylized grass in the Unreal engine shows how to create the meshes in Houdini, textures in Unreal and integrate them into the rendering pipeline
archive / summary
the article explains in detail how to render a raytraced sphere that interacts with other parts of the Unity rendering pipeline covers how to use a billboard to render there sphere, explaining how to calculate an optimal camera facing quad and texture mapping extending to support shadow casting, receiving, and use of conservative depth output to enable early depth rejection
archive / summary
beginner-focused tutorial that explains how 3D data is structured in computer graphics covers what shaders are, what type exists, and how they are used within Unity to define the look
archive / summary
the video tutorial explains how to create interactive snow on terrain and objects using Godot interactive snow is implemented via a snow mask that is updated and blends between textures and modifies vertex positions snow on objects is world space projected snow textures that also is interactive
archive / summary
the article presents a walkthrough of a RayTracing abstraction layer that was implemented for D3D12 and Vulkan provides a walkthrough of how to combine the elements to a example scene shows what the different raytracing shaders are and what they contribute to the final image
archive / summary
the updated tool allows an in-depth view into the raytracing details on AMD hardware reveals that the driver might inline all shaders into a single shader or keep shaders separate the new update provides a shader table view to see the relative cost of different stages additional shows all shaders with costs, call count, and ability to see ISA
archive / summary
the video explains the CUDA memory model covering the rules of how memory operations on shared memory from multiple threads are processed looking at loading, reordering, barriers, etc.. and explains with examples (source code published)
archive / summary
Overview for the start of a new shader tutorial series for beginners starts by providing the motivation, approach, and topics that will be covered
archive / summary
the article focuses on providing a walkthrough of dithering techniques provides an overview of what dithering is, use cases showcase of different dithering patterns and what results they produce
archive / summary
the article provides an overview of the CVTT compression techniques used (DirecXTex fork aims to be an experiment to improve state of the art) shows how the different formats are compressed, common themes across formats, and lists possible improvements
archive / summary
the video tutorial explains the fundamentals of texture mapping in ShaderToy describes how to apply a texture map to a 3D cube, sphere using tri-planar mapping additionally describes how to animate a second texture set onto a sphere as well as displacement mapping
archive / summary
this Unity tutorial aimed at beginners presents a starter guide for compute shaders shows how to convert CPU based random cube generation tp GPU demonstrates how much quicker even a simple GPU based version can be
archive / summary
the paper presents a new technique of on-the-fly quantization for unorganized sets of unit vectors approach detects groups of windows that are then uniformly mapped onto the whole sphere surface before unit vector quantization is applied the presented technique can archive better results than octahedral quantization with only 16 bits
archive / summary
tutorial series about creating a custom scriptable render pipeline in Unity decoupling the render resolution from the target resolution to allow variable resolution at runtime presents how to deal with post FX and the difference between upscaling with different color spaces
archive / summary
the Unity tutorial provides a starting point for how to use tessellation shaders example shows to tessellate a simple terrain
archive / summary
collection of articles that provide a breakdown of various games contains links from analyses since 2015 from multiple authors
archive / summary
the article shows the steps required to use star databases to enable the correct rendering of stars covers data parsing, dealing with different time reference frames, color conversion provides sources and code for the implementation
archive / summary
Collection of impressive screenshots from Games (mostly PC, a few from PS4 Pro)
archive / summary
the paper presents an implementation of a hash-based Owen scrambling for Sobol sampling with nested uniform shuffling to enable multidimensional padding presents practical considerations for use cases and provides an example implementation
archive / summary
the article provides an overview of considerations when developing a graphics technique for video games presents how game design, workflow, performance, artist controllability, ... affect the possible solution space provides a case studio from the vegetation system from The Witcher 2
archive / summary
the article presents how to implement frustum culling and the effects on CPU and GPU performance
archive / summary
the blog post provides a look back at the evolution of graphics technology and how they affect game production author expresses his view on how ray tracing will repeat history and complexity will continue to increase as we want to archive more complex goals
archive / summary
the blog posts takes a look at the RNDA ISA and presents how ray tracing has been implemented in AMD hardware look at the instructions to accelerate ray/triangle and ray/BVH intersection logic in hardware
archive / summary
the article presents a new perceptual color space illustrates how the color space conversion is used and how it was derived color space is designed to use D65 white point (easier interop with Rec202 and sRGB) with even transitions when used in blending
archive / summary
the article presents an overview of D3D12 aliasing barriers, Discard/Clear semantics, and how they interact with resource states presents three approaches to the problem it appears no way exists that doesn't trigger debug-runtime errors and archives optimal performance
archive / summary
the article presents a breakdown of a Cyberpunk 2077 frame looking at the different passes that create the final image, what techniques are employed how the gbuffer is structured, volumetrics, decals, culling ....
archive / summary
Vulkan tutorial that shows how to implement a Path Tracer in 300 lines of C++ using Vulkan compute shaders broken into multiple chapters that explain the fundamental concepts of Vulkan and path tracing additional chapters provide further information on optimizations, multiple materials, blurs, ...
archive / summary
the project that presents the implementation of a custom external raytracing card for use with the SNES
archive / summary
the Unity tutorial explains how interactivity between player and grass can be implemented for geometry shader based grass additionally covers how to apply point light shading
archive / summary
the article explains how to generate cables from cylinders based on the Unreal Cable component for the physics simulation, but all visual effects are implemented as pixel shader covers the spiral generation, normal generation, silhouette handling, and support for stretching
archive / summary
the article presents an overview of what a Z-pre-pass is what benefits and drawbacks this technique has additionals discussion of techniques that can benefit from having access to a full scene z-buffer early in the frame
archive / summary
in-depth Digital Foundry comparison between Raytracing and classical rendering features on PC presents what Raytracing adds to the final look of the game comparison of performance with different settings and the importance of DLSS
archive / summary
the article gives an understanding of how different types of camera and lenses work provides many interactive examples that explain the various elements, aspects and how they interact
archive / summary
the video tutorial provides an overview of signed distance fields explains how to use SDFs for font rendering provides an example implementation of multiple font effects (thickness, feather, outline color)
archive / summary
video recording from all talks in the Siggraph 2020 course in a single video covering Intro to Moving Mobile Graphics, Mobile Graphics 101, Vulkan on Mobile Done Right, Deferred Shading in Unity URP, Large Voxel Landscapes on Mobile, High Quality, High-Performance Graphics in Filament are covered below in more detail
archive / summary
introductory slides for physically based rendering course provides an overview of fundamental terms and concepts explaining how the different ideas fit together to create a basic physically based shading implementation
archive / summary
the video tutorial shows how to generate grass blades that swing in the wind LODs are supported, reducing the number of segments for each blade of grass when it's further away from the camera implemented as compute shaders using Unity
archive / summary
the video tutorial explains how to implement a ripple effect first implements a sprite-based effect, extends this afterward to support 3D mesh deformation implemented using Unity shader graph
archive / summary
short blog post that provides advice on how to debug refraction in a raytracer provides what values to expect when debugging refraction on a glass sphere
archive / summary
the article presents an overview of different compression formats and libraries comparing quality and compression speed for several texture types
archive / summary
the article explains the implementation of Caustics using a photon mapping technique that takes advantage of DXR capabilities the first part focuses on caustics from meshes (such as bottles, glasses) additional provides a performance comparison between Nvidia GPUs part 2 focuses on water-based caustics
archive / summary
the article shows examples of how to use mesh shaders (code examples in GLSL) show how different data types and models influence the performance gives advice on best-practices when designing a solution for Nvidia hardware additionally provides pointers on what might be different on other hardware
archive / summary
the RDNA 2 Instruction Set has been released shows that RDNA 2 supports dedicated instructions for BVH intersection to accelerate ray tracing workloads
archive / summary
AMD released the source code for the Memory Visualizer tools support Vulkan and D3D12 to provide insights into memory usage
archive / summary
the article shows how fading our transparent objects when getting close to an intersection helps them to appear more volumetric technique presented in the article uses the depth buffer information from opaque objects to fade out the transparent
archive / summary
the paper presents the results of research into using the RTX raytracing hardware for unstructured point rendering presents multiple iterations from a reference CUDA implementation to more complex RTX solutions comparing performance for the different approaches
archive / summary
video for the talk has been released, was covered in the week [147](https://www.jendrikillner.com/post/graphics-programming-weekly-issue-147/) how to take advantage of tiling GPU architecture and enable the use of fp16 math cloth shading, reduction of energy loss for rough metals, multi-bounce AO
archive / summary
the talk explains the Voxel-based terrain system used in Roblox voxels store material id and material occupancy (0,1) range how to generate meshes from the sparse voxel representation texture mapping, tiling reduction, water considerations, and various performance advice
archive / summary
The article presents how important reflectivity of Black skin is for believable results it shows how to adjust textures and the Unity PBR shaders (specular workflow) to decouple specular color from the glossiness
archive / summary
the talk from Digital Dragons looks at open questions in rendering walkthrough of the various assumptions and approximations and raises the question of the most significant source of error in modern rendering pipeline? presenting a look at the higher-level view at how are rendering and production pipeline might evolve discussing tradeoffs and how a more holistic view of rendering might lead to more productivity and better results
archive / summary
the talk provides an overview of Roblox and how the philosophy creates an environment with very different technical challenges a tech that favors scalable over optimal and how it's been able to evolve existing data to take advantage of new device abilities provides an overview of the engine architecture and a walkthrough of a large number of rendering systems (clustering, lighting, shading)
archive / summary
part of tutorial series about the Unity scriptable rendering pipeline (SRP) covers how to support soft and distortion particles determining depth for orthographic and perspective projections
archive / summary
presentation shows the in-progress state of the new Frostbite hair rendering system in the context of FIFA covering both the strand simulation and rendering rendering is done using a custom line rasterize, order-independent transparency, and strand space shading (texture space shading)
archive / summary
the articles discusses how the voxel rendering in teardown uses an 8-bit color palette for voxel materials and still allows coloring this is archived by precalculating multiple color variations for each material if not enough slots are available similar materials will be merged
archive / summary
the Bachelor thesis introduces Linearly Transformed Spherical Harmonics A technique for computing specular shading from to polygonal area lights compares the method against linearly transformed cosines, and it's able to produce higher quality results
archive / summary
the article explains a different kind of memory that exists how AMDs Smart Access Memory fits into the picture additionally covers considering of performance when using a device or host-local memory
archive / summary
the article presents how the effect was implemented that allows objects to be colorized/silhouetted to make them pop out of the scene this is implemented by rendering AABB with per-object depth into a separate render target, marking tagged objects via stencil and using post-processing to apply the outline effect
archive / summary
video recording of the talk covered in [week 154](https://www.jendrikillner.com/post/graphics-programming-weekly-issue-154/) the presentation explains how the raytracing for shadows has been implemented into Call of Duty covering acceleration structure separation, performance, denoising implementation, and supporting multiple local area lights
archive / summary
the video presents an in-depth walkthrough that shows how to use signed distance fields (SDF) to create an animated girl explains all used primitives as SDW, how they are combined, and the lighting implementation implementation is done in shadertoy
archive / summary
the article shows how The Witcher 3 implements a fullscreen effect that gives the world a painterly look presents a step-by-step walkthrough, showing all components that define the noise generation author provides a [shadertoy](https://www.shadertoy.com/view/3stBD2) implementation of the effect
archive / summary
the post presents a bi-planar mapping as an alternative to tri-planar mapping using only two texture fetches starts by giving an overview of the tri-planar mapping followed by an explanation of the bi-planar mapping technique, presenting strategies to improve the quality and how the quality compares
archive / summary
a very detailed article about depth buffers focusing on Unity, but most of the information is engine agnostic explains the different spaces, storage formats, and precision considerations additionally shows how to calculate world space positions from the depth buffer
archive / summary
A Unity video tutorial that explains how to generate grass meshes using Compute shaders covers the setup, mesh generation, and LOD selection
archive / summary
the article shows how Multiple Importance Sampling in 1D is used to improve the convergence of stochastic algorithms presents multiple experiments and shows how different techniques can reduce the sampling error
archive / summary
a collection of resources (books, talks, websites) the author recommends for beginners to get started with graphics programming
archive / summary
the presentation provides an overview of Variable Rate Shading (VRS), the different features levels provides insights into VRS performance, features that disable VRS, and what bottlenecks will cause VRS to not offer performance improvements additionally shows how to integrate the AMD helper library to generate the VRS screenspace map
archive / summary
the presentation explains the ray tracing denoising technique developed by AMD shows what inputs are used, how the algorithm uses these to decide ray count, and how to use temporal reprojection to further reduce sample counts the code for the technique is provided, and the [website](https://gpuopen.com/fidelityfx-denoiser/) includes comparison pictures and images of the intermediate results
archive / summary
the post explains what changes have been made to the Vulkan raytracing extension since the preview specification extension has been split into 3 layers (acceleration structure, raytracing shaders states, and ray queries) walkthrough of each stage of the extensions in contrast to DXR, Vulkan offers the ability to generate acceleration structures on the CPU
archive / summary
the article presents an overview of how Vulkan raytracing has been implemented into Wolfenstein provides a brief overview of the different API concepts and how they are used
archive / summary
the article contains an overview of the new features that will be included in shader model 6.6 64-bit Integer Atomic Operations, Dynamic Resource Binding, Compute Shader Derivatives and Samples, Packed 8-Bit Operations and variable Wave Size
archive / summary
the blog posts describes how APITrace can intercept D3D12 applications (even complex AAA games such as Assassin's Creed Valhalla) presents how the layer deals with Persistent Memory Mapping, Capturing and Replaying Descriptors, Fences, and Synchronization additional describes what issues are still left unsolved
archive / summary
the dev vlog explains how the 2D billboard based clouds are implemented cloud volumes are generated in Blender, directional light information is baked into textures using single color lights along the principal coordinate system axis these directions are blended at runtime to integrate into the in-game PBR lighting system
archive / summary
the devlog presents a walkthrough of the implementation of a toon shader contains a comparison between a toon shading model and a more realistic model the implementation is done using the Unity Universal Render Pipeline (URP) and ShaderGraph
archive / summary
the video tutorial explains how to take an input mesh and use a compute shader to generate additional geometry provides an overview of compute shader concepts, showing the HLSL based implementation and how to integrate it into the Unit rendering pipeline additional explains how to use DrawIndirect to draw the results directly from the GPU timeline
archive / summary
the article presents three different approaches to archive a fire effect using Unity show a sprite-based flipbook effect, procedural shape generation for a toon, and more realistic shape the implementation is done in ShaderGraph
archive / summary
unrolled Twitter thread presenting an overview of differences between D3D12 and Vulkan the aim of the comparison is to be able to support both APIs
archive / summary
collection of tweets related to VFX, shaders, and game art
archive / summary
brief article that shows how to create a D3D11 device without a window presents that the FXC compiler can export compiled shader to a C compatible header
archive / summary
the article presents techniques to improve Subsurface Scattering (SSS) implementation based on the model used in [PBRT](https://www.pbrt.org) presents a basic overview, how to importance sample the model shows several improvements that aim to reduce Fireflies, optimize the implementation additionally covers the material system that allows blending between materials that have SSS influence and not
archive / summary
the Unity explains how to implement a heat map view to visualize the temperatures in Buildings this effect is based on Frostpunk, the shader implemented as compute shader
archive / summary
the article provides a brief overview of different kinds of array indexing types in shaders presents Vulkan caps required for a bindless access pattern shows when extra annotations are needed for correct results and how these interact on different hardware
archive / summary
the blog post explains what shader occupancy is and how it connects to vector registers usage provides a brief overview of GCN hardware details showing how shader compilers deal with data loading
archive / summary
the article explains how to implement a CRT rendering effect using GLSL implements screen curvature, scanlines, and edge darkening
archive / summary
the article explains how the 2D VFX effect has been integrated int the 3D world of Blightbound
archive / summary
article introduces OWL, an abstraction build on OptiX 7 presents the difference abstraction difference between OptiX 6 and 7 shows several projects using it and samples on how to use it
archive / summary
the article presents the difference between baked, screen-space rasterization and Ray-traced GI of unity shows how many visual influences can be expected from the different techniques brief look at the performance of the other techniques
archive / summary
the post explains how to generate a procedural mesh describes how to approach the development of an algorithm, provides a list of common mistakes lists advice on how to debug procedural mesh generation issues
archive / summary
Vulkan survey to gather information about user experience, platform support, and future developments
archive / summary
a Unity video tutorial that shows how to implement a water ripple effect
archive / summary
the article presents how to resolve issues with movement widget logic starts with an explanation of the problematic cases shows how extra debug visualization helps to understand the 3D problems to simplify debugging
archive / summary
overview of technical papers that will be presented at SIGGRAPH Asia 2020
archive / summary
the paper presents an energy normalization derivation of the Phong lighting model provides a C++ implementation of the technique
archive / summary
collection of resources by Eric Lengyel covering geometric algebra (this includes Grassmann algebra) mathematical model incorporates many common concepts (including homogeneous coordinates, quaternions) into a consistent model
archive / summary
the article explains how to use a compute shader to render moving cubes explains the basics of compute shaders and presents presents how to use the Unity profiler to validate the performance
archive / summary
the blog post presents an overview of the development progress of Zink(OpenGL on Vulkan layer) able to achieve 95% performance of native OpenGL in the Unigine Heaven
archive / summary
the second part of the blog post series covering raytracing implementation with compute shaders presents the results of splitting the acceleration structure into two levels presents an overview of the implementation, performance comparison additionally shows that two-level separation provides additional flexibility advantages
archive / summary
Vulkan extension for Variable Rate Shading (VRS) has been released as [VK_KHR_fragment_shading_rate](https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VK_KHR_fragment_shading_rate.html) adds the necessary API and SPIR-V extensions
archive / summary
latest PIX update adds support for visualizing the GPU execution of command list from a single ExecuteCommandLists call adds support for showing the resources that belong to each descriptor in a heap
archive / summary
collection of tweets related to VFX, shaders, and game art
archive / summary
the author presents an overview of his raytracer setup explains the problems encountered and the current state provides an overview of how to trace the Ptex textures on the GPU
archive / summary
the Unity article explains how to integrate multiple cameras into a scriptable render pipeline shows how to use it for split-screen, overlay camera (including correct blending), and in-game UI additionally shows how to filter objects for one viewport
archive / summary
the shader tutorial explains how to stylized toon glass shader shows the breakthrough of the individual component and what they contribute to the final result
archive / summary
the articles explains the pitfalls encountered when implementing Screen Space reflections discusses special cases for a 2D game and presents what fallback options have been used if the information is not available
archive / summary
the blog post provides an overview of ambient occlusion and what it approximates provides interactive examples to show the effect of screen space ambient occlusion additionally provides interactive examples to show the impact of different parameters for Ray-Traced Ambient Occlusion
archive / summary
collection of tweets related to VFX, shaders, and game art
archive / summary
the presentation explains how the raytracing for shadows has been implemented into Call of Duty covering acceleration structure separation, performance, denoising implementation, and supporting multiple local area lights
archive / summary
the paper presents a new framework for layering and compositing of bump maps from different sources presents how to use the framework with different techniques, including volumes, decals, dealing with multiple UV sets, etc.. demo [code](https://github.com/mmikk/surfgrad-bump-standalone-demo) provided
archive / summary
the article presents how the precision HiZ tracing logic (used for screen space reflection) can be increased additionally also makes the technique more generalized
archive / summary
the blog post explains the history of RLSL (Rust Like Shading Language) and how rust-gpu is the spiritual successor
archive / summary
First public release of Rust-gpu, a new SPIR-V backend for the Rust post explains the motivation, current state, and planned scope
archive / summary
the article provides a brief overview of scalarization and suggests an alternative approach
archive / summary
the post explains the implementation of a path tracer that enables the rendering of the Disney Moana island dataset on an RTX 2070 provides an overview of the memory management strategies and scene splitting
archive / summary
the Unity-based effect presents how to create a watercolor rendering style uses a combination of object shaders, decal effects, and fullscreen post-processing
archive / summary
the research presents a 2D fluid simulation in a 3D scene used to generate fire effects explains separable Poisson filters that are used to fluid simulations the demo video shows the technique interact within the 3D world to respond to wind, collision, and other forces
archive / summary
the Unity tutorial provides a brief overview of the rendering pipeline provides an overview of vertex/geometry/pixel shaders presents how to use the geometry shader to generate normals using a cube to sphere morph as an example
archive / summary
the tutorial explains HSV color space and presents how to implement conversion an example implementation is accomplished using Unity shader graph
archive / summary
the article presents how to implement the rendering of a soap bubble in Unity
archive / summary
The video tutorial explains how vertex animations can be stored and played back from textures shows how to export animations from blender describes how to use the exported data inside of a Godot shader
archive / summary
the articles presents an overview of the GPU execution model, how divergent control flow is handled presents a statistical analysis of the relation of control flow and wave sizes derives three categories that conditions can be split into
archive / summary
the article explains the terms required to understand the initialization of a webGPU application shows how to call the API from Rust
archive / summary
the paper presents an evaluation of deterministic hash functions compares the performance and quality of several techniques presents how to extend the dimensionality of hashing functions
archive / summary
the video shows the history of light transport techniques and presents how they perform in complex test cases leading up to "Specular Manifold Sampling for Rendering High-Frequency Caustics and Glints" and how it makes aims to make state of the art a more accessible
archive / summary
links to the papers from I3D 2020 the winners for best-award are "Passthrough+: Real-time Stereoscopic View Synthesis for Mobile Mixed Reality", "Local Optimization for Robust Signed Distance Field Collision" and "Real-Time Stochastic Lightcuts"
archive / summary
SIGGRAPH 2020 presentation that provides an overview of Variance-Aware Path Guiding paper proposes to treat the problem as an error minimization problem using relMSE ( relative mean squared error ) shows existing techniques that could be improved from the proposed solution
archive / summary
the blog post discusses the development of a GPU based grass rendering system provides an overview of the approach taken and provides videos for the different stages of implementation
archive / summary
the video shows the Ray Tracing implementation and uses it to explain the considerations when designing a raytracing solution explains the steps raytracing requires and how changes in each step influence the total reflection budget
archive / summary
breakdown shows how a Stylised Water Shader was implemented in Unity the post focuses on the overall look -presents the different layers of the technique and what these contribute to the final look of the water
archive / summary
the paper presents extensions to the [probe based irradiance-field-with-visibility representation](http://jcgt.org/published/0008/02/01/) These extensions include a self-shadow bias, introduction of heuristics to speed transitions, re-use for recursive glossy reflection, probe state machines as well as multiresolution cascaded volumes
archive / summary
the blog post presents a comparison between the usage of different color spaces on the results of path tracing compare Rec709 and ACEScg color space, providing the mathematical approximations for the color conversions required
archive / summary
the 13ths part of the scriptable render pipeline tutorial explains how to add color grading to the Unity pipeline presents several techniques to adjust the visual look of the scene shows different color space, how to convert them, and optimize the conversion steps with LUTs
archive / summary
the article presents a table of HLSL and GLSL compute shader semantics and how they the meanings maps between local and global references
archive / summary
tutorial explains the new unified AMD interface for the GPU Profiler Memory Visualizer shows how to use the different workflows
archive / summary
the post explains the experiences on porting the game from PS4 to PC using Vulkan part 1 of 3 focuses on optimize shader pipeline compilation and descriptor allocation the descriptor allocation is based around dynamic indexing into large arrays for each resource type
archive / summary
part two of the series provides on porting Detroit: become human offers an overview of indexing considerations using the VK_EXT_descriptor_indexing extension shows the AMD ISA disassembly related to sampling textures and how much extra work is required when texture indexing is not uniform
archive / summary
the last part of the series briefly explains how they used scalarization to optimize shader, split command list recording onto multiple threads looks at memory management in more detail, detailing the AMD libraries and tools available for memory management
archive / summary
the author explains his approach for the design of an aurora shader challenge provides an illustrated walk through how to start from a simple effect and incrementally improve towards the expected look
archive / summary
the articles explains how The Machinery implementing for rendering the outline of selected objects has been archived this is implemented as a screenspace effect using the object ID and depth buffer to detect the shape of the objects presents how to improve visual stability when TAA is used
archive / summary
the blog post provides an overview of the different API layering implementations (Vulkan on Metal, D3D11on12, etc..) Vulkan Portability Initiative exposes a new extension (VK_KHR_portability_subset) that allows these layers to mark features as unsupported progress on updating the conformance testing and device capabilities emulators to make them aware of these constraints
archive / summary
beginner-focused tutorial explains how to store normals, noise, and positional data in textures explains what kind of effects can be archived with this data the example effects are implemented using ShaderGraph in Unity
archive / summary
video presentation from the X.Org Developer Conference provides an overview of the Vulkan vendor-neutral API extension
archive / summary
collection all entries for a tech art challenge with the theme Retro shaders the entries show a large variety of effects and implementations using different engines
archive / summary
the author presents a look back at the last 5 years of the [GpuDB](https://db.thegpu.guru) a useful website to gather information about different GPUs and compare them
archive / summary
the article explains the basic of the tiled GPU architectures used on mobile uses this information to explain the importance of using the correct load and store operations for Vulkan render passes additonally covers foveated rendering extension and how to structure rendering with multiple render passes
archive / summary
the video tutorial explains how to implement a rust effect on objects that intersect with a water plane describes how to calculate the distance between a point and a plane implemented using the Godot engine
archive / summary
the article explains the sorting, rendering layer design for a 2D game implemented using Unity sorting layers also interact with how the dynamic 2D lights interact with the sprites
archive / summary
post discusses a shader approach to implement a VHS effect using Unity
archive / summary
the talk provides an overview of WebGPU and provides an overview of the implementation using Rust this implementation is used by Firefox shows the design considerations for the API, how to use it, and implementation discussions
archive / summary
the blog post explains how to implement a simple Toon Lighting shader using the Amplify Shader Editor inside of Unity shows how to configure the effect and use the idea to archive different looks
archive / summary
the Unity tutorial shows how to generate mesh data on compute shaders and draw them from the GPU without a CPU roundtrip
archive / summary
this guide explains how to use the Vulkan Synchronization Validation layer shows what kind of problems it can detect, how to debug these issues, and explain how to understand the messages
archive / summary
the blog posts explains how PIX for windows captures work provides insights into how the focus has shifted from API focused recording to GPU work recording
archive / summary
the article explains how to implement a heat haze screenspace effect for a 2D game using Unity implementation is done using Shader Graph a video version of the tutorial is available too
archive / summary
article shows the new Instruction Timing, Theoretical occupancy, and UI improvements in the latest version
archive / summary
new release adds support for NVIDIA Ampere microarchitecture support for the Vulkan added to the Shader Profiler (including raytracing)
archive / summary
Vulkan validation layer has been updated to include additional and improved validation messages
archive / summary
the paper presents a physically-based model for the realtime rendering of sparkling materials the implementation uses a pre-computed BRDF dictionary of ~390KB size precomputation is independent of smoothness, so runtime variations are possible
archive / summary
the video provides a great explanation of Monte Carlo integration importance sampling presents how to generalize MIS to a from distinct techniques to a continuum of techniques shows how to use the method for path reuse, spectral rendering, and photon planes
archive / summary
summary on how to take part and find the content of I3D 2020
archive / summary
overview of debugging D3D11 applications using Pix for Windows shows what is supported and what limitations exist
archive / summary
the post discusses a variety of quantization topis to ensure conversion of precision GPU based workloads should prefer centered quantization
archive / summary
collection of tweets related to VFX, shaders, and game art
archive / summary
the Unreal tutorial explains how to apply a shader effect that converts a video into a VHS style looking video presents the walkthrough of the Material Graph
archive / summary
the SIGGRAPH Asia 2020 paper presents a cloud simulation with high-level parameters the system can simulate cumulus, stratus, and stratocumulus for the formation of dynamic cloud formations
archive / summary
in-depth breakdown of the the frame strutcure in Doom eternal major changes since Doom to 2016 include mesh decals, new GPU based light, decal culling and dynamic draw call merging
archive / summary
the blog post provides an overview of VRS modes, presents some possible use cases and performance numbers from the first tests in Wicket Engine
archive / summary
the article provides an introduction to sparse and dictionary learning methods and applies these to try to archive better compression for full PBR texture set
archive / summary
this part of the series presents a discussion of how the BC6 and BC7 format is implemented Additionally provides the necessary code to decode the format in a shader
archive / summary
the blog post explains how PIX for Windows tracks placed and reserved resources uses active/inactive state tracking and presents what limitations exist
archive / summary
the article provides an overview of the Nvidia tools available and how they can be combined to improve application performance
archive / summary
the article provides a post-mortem view about the kind of changes, optimizations, and quality reductions had to be done to make the game run on the Oculus quest
archive / summary
the article provides a detailed breakdown of a shader that implements a matrix style effect that can be applied via tri-planar mapping to every surface
archive / summary
collection of tweets related to VFX, shaders, and game art
archive / summary
the blog post describes the custom Occulus fork of RenderDoc that adds support for a profiling mode this mode offers a Tile Timeline view that allows investigation of tiled GPU performance additionally also ads a Vulkan draw call metrics collector
archive / summary
slides and videos for all course talks are available covering Fresnel modeling, MaterialX, Material Composition, Atmospheres system, and Anisotropic shading
archive / summary
the talk discusses the anisotropic specular techniques presenting a new SGGX based filtering approach and fuzz BRDF for use with deferred shading shows the importance of directional curvature
archive / summary
a guide aimed at beginners with Godot engine that presents an overview of the available counters shows how to read the counters and use them to guide the process of optimizing rendering performance
archive / summary
the post lists the minimum requirements and optional features for D3D feature level 12_2
archive / summary
the article presents a WebGL based technique for caustics rendering using a shadow map inspired offscreen target to gather the underwater geometry for intersection testing
archive / summary
blog post provides an overview the PIX for Windows changes seen GPU capture improvement up to 57X at capture time, broader API support
archive / summary
the blog post contains an overview of the Vulkan Configurator provides a demo video and a whitepaper
archive / summary
collection of resources including a link to open Access Siggraph, interactive article on photogrammetry and history of the USD file format
archive / summary
how to take advantage of tiling GPU architecture and enable the use of fp16 math cloth shading, reduction of energy loss for rough metals, multi-bounce AO
archive / summary
the blog posts present an analysis of depth buffer precision investigates reversed-z with a fixed far plane as well as an infinite projection far plane
archive / summary
SIGGRAPH 2020 course that presents an overview of inverse-rendering techniques that try to solve the problem of reconstructing a scene description given a final rendering image
archive / summary
presents a new model for Fresnel reflectance that provides a unification of Schlick and Gulbrandsen models with linear properties within realtime constraints
archive / summary
Continued discussion on fresnel shading sparked by the talks of Siggraph 2020 Physically Based Shading in Theory and Practice course
archive / summary
the article presents a walkthrough and experiences of getting a paper included in Siggraph 2020
archive / summary
the guide explains how optional robustness features allow Vulkan applications to treat out-of-bounds access as operations with well-defined behavior
archive / summary
the first release of pbrt-v4, adds new rendering techniques but also adds support for GPU rendering 10-20x speedup compared to 32-core Threadripper the article provides a list of new techniques and link to code walkthrough video
archive / summary
Siggraph 2020 course that provides an API overview for basic drawing in Vulkan
archive / summary
Single Pass Stereo is a technique that can be used to simultaneously project geometry for the left and right eye in the same pass Part 1 discusses the advantages/disadvantages of Single Pass Stereo from a high-level perspective the second part presents an in-depth discussion of the problems of SPS
archive / summary
growing link collection to resources from Siggraph 2020
archive / summary
SIGGRAPH 2020 course that reviews and discusses insights of techniques introduced Jaroslav Křivánek that shaped the research of light transport
archive / summary
the Siggraph 2020 course presents guided sampling techniques that reduce variance to allow faster convergence for Subsurface Scattering
archive / summary
the article presents how to implement a path visualization system for a GPU path tracer
archive / summary
The Unity tutorial explains how to add HDR rendering support to a custom scriptable render pipeline including an overview of different Tone Mapping techniques
archive / summary
the article provides an overview of the scope of the sokol_gfx 3D API wrapper provides an overview of the architecture and the zero initialization principle
archive / summary
the article provides an extensive list of best practices for DXR usage covers acceleration structures, GPU utilization, memory allocations, handling of non-opaque geometries, binding, performance and pipeline state best practices
archive / summary
the blog post explains what the bindless model is shows how to use for Textures and how to replace Vertex Layouts examples are for D3D12, but links to information for Vulkan is provided
archive / summary
the article provides a basic overview of how the OpenGL ES based engine was ported to Vulkan lists performance issues encountered such as Sparse Indexing, vkQueuePresent blocking and barrier usage for improved throughput provides a comparison of CPU, GPU usage with OpenGL and Vulkan
archive / summary
the blog post explains how the author implemented a precural painting logic using compute shaders explains how the algithmn was structrued, discussiong ecoutnered problems and solutions implemented
archive / summary
the article presents an overview of the DXT and ETC compression formats shows how information is compressed and how to decode these formats from a compute shader
archive / summary
short post presenting how to setup VSCode to allow GLSL shader iteration
archive / summary
the article explains primary surface replacement (PSR) and checkerboarded split frame rendering (CSFR) these techniques are presented as a possible solution for high-quality reflections and refractions in a mixed hybrid renderer design that relies on GBuffers for primary rays
archive / summary
A video tutorial that explains how to implement a shader to render a torus knot using ShaderToy starts by explaining the foundational math followed by the shader implementation
archive / summary
the article discusses the different render target requirements for D3D12 and Vulkan and presents 4 alternative solutions to design an abstraction
archive / summary
Vulkan SDK release contains a graphics vkconfig tool to allow users to configure layer settings can be enabled to control which layers are active, filter error messages, etc the SDK now also contains Vulkan Synchronization validation and distributes the DXC compiler for PC, Mac, and Linux
archive / summary
the Unity tutorials show how to implement a fire effect using a camera facing quad with shader based noise to wrap a noise texture to create the look
archive / summary
the Siggraph 2020 talk presents the derivation of a point light attenuation that eliminates the singularity as the distance approaches 0 achieves this by treating point lights as simplified spherical lights provides comparisons against other solutions
archive / summary
the article shows an overview of what vertex displacement mapping techniques are and how to generate data using Mudbox for use with Unity
archive / summary
the article an overview of the complexities with Pipeline management in D3D12 and Vulkan applications showing why many AAA release include long shader compilation steps at application startup time
archive / summary
the article shows the theory of perspective projects and discuses perspective distortion
archive / summary
the Unity tutorial shows how to write a simple fullscreen heat haze shader an apply in the different rendering pipelines
archive / summary
the article provides at the authors work of the last 8 years this provides a great insight into how large scale engines evolve overtime to solve new requirements and improve
archive / summary
collection of tweets related to VFX, shaders, and game art
archive / summary
this video tutorial shows how to implement an Overwatch magical shield effect a transparent material with pulsating energy effects the effect is achieved in Unity using the visual amplify node graph system
archive / summary
the in-depth article presents how the light shafts in The Witcher 3 have been implemented explains how a radial blur can be applied and provides a shadertoy to showcase the example implementation
archive / summary
overview of the SIGGRAPH 2020 PBR course contains the titles, speakers and abstracts of this year's talks
archive / summary
the paper presents an evaluation of what kind of gains can be achieved with temporal reprojection in a path tracer setting uses an SSIM (structural similarity index ) metric to relate spatially and temporally reprojected path traced image to a purely path traced image with similar quality provides data for multiple scenes and sample counts
archive / summary
collection of tweets related to VFX, shaders, and game art
archive / summary
part 2 of an article series discussing the mathematical foundation of matrix/vector operations presents different methods exposed by Unity and explains differences of the various methods
archive / summary
next part in a Unity SRP (scriptable render pipeline) tutorial series covering the implementation of a bloom post-processing effect
archive / summary
A video tutorial that shows how to implement a stylized ocean shader using Shader Graph in Unity
archive / summary
collection of 7 compelling links to compute graphics/programming related topics
archive / summary
the article presents how the corals in finding Nemo have been shaded
archive / summary
the article presents a few techniques to compress Dynamic Diffuse Global Illumination probe information presented compression reduced the size from 2.4GB into 168MB
archive / summary
brief article showing an overview of a render graph API discussing the reasons why this kind of architecture could be beneficial summary of the goals of the project
archive / summary
the article presents an overview of Vulkan barriers and shows how different barriers influence a PowerVR chip's ability to overlap work
archive / summary
the second part of the series presents how to overlap work from two consecutive frames by submitting each frame to its own queue
archive / summary
the blog post presents how to use the Intel Embree library to generate a BVH tree for use with a GPU raytracer offers performance and memory comparisons for the different quality modes available
archive / summary
the article present how the food in ‘Ratatouille’ was shaded based on the skin model using a subsurface scattering approximation on a voxel grid artists were given much control over the final more stylized appearance
archive / summary
the Unity tutorial explains how to add an outline to a 2D sprite implemented using 8 extra texture samples around the shading point additional presents a way to make the outline size independent of the sprite size
archive / summary
collection of tweets related to VFX, shaders, and game art
archive / summary
the Unity tutorial explains how to create basic compute shaders shows how to use a compute shade to generate random positions in a sphere and use these position from the CPU to render meshes
archive / summary
This Unity tutorial shows how to pass data from the Shuriken Particle System to the particle shader
archive / summary
the article provides a high-level explanation of the Vulkan API concepts required to render a single triangle on the screen contains well-documented example implementations to clarify some ideas through code examples
archive / summary
open source D3D11 implementation of the paper presented at EGSR 2020 ["A Scalable and Production Ready Sky and Atmosphere Rendering Technique"](https://www.youtube.com/watch?v=y-oBGzDCZKI)
archive / summary
the blog posts list a few possible drawbacks that need to be considered if a mix of dedicated GPU and integrated GPU is supposed to be used in a single application
archive / summary
a small shader example that shows that texture channels can be reserved to allow objects to change color dynamically at runtime
archive / summary
the article shows how to improve performance of fullscreen compute shader passes by tiling thread workloads to take advantage of memory locality test cases show an example improvement of 1.47x on memory bound workloads
archive / summary
a twitter thread that visually explains what the Fresnel effect is and how it affects the appearance of different objects
archive / summary
the blog post presents how the shadow move technique was implemented in Killer Instinct: Season 3 the effect uses information from the previous frame in offscreen render targets combined with movement noise, flow maps, and trail renders attached to bones
archive / summary
the blog post provides an overview of mipmapping, Colour Bleeding, and pre-multiplied alpha
archive / summary
the short blogpost shows an artists material setup that uses a small 16x16 LUT as indirection table into PBR materials
archive / summary
collection of tweets related to VFX, shaders, and game art
archive / summary
the article discusses what memory aliasing exposed from Vulkan and D3D12 is and how it can be used to reduce memory usage provides an example implementation of an algorithm that implements a resource aliasing allocator
archive / summary
Towards Fully Ray-Traced Games: Addressing System-Level Challenges (Holger Gruen, Intel) Generalized Light Portals Efficient Adaptive Deferred Shading with Hardware Scatter Tiles Post-Render Warp with Late Input Sampling Improves Aiming Under High Latency Conditions
archive / summary
Neural Denoising for Path Tracing of Medical Volumetric Data High-Performance Image Filters via Sparse Approximations FLIP: A Difference Evaluator for Alternating Images Evaluation of Graphics-based General Purpose Computation Solutions for Safety Critical Systems: An Avionics Case Study Euclid NIR GPU: Embedded GPU-accelerated Near-Infrared Image Processing for On-board Space Systems. Fast Eye-Adaptation for High Performance Mobile Applications. (Morteza Mostajab, Theodor Mader)
archive / summary
Porting PBRT to the GPU While Preserving its Soul Quadratic Approximation of Cubic Curves Using Hardware Ray Transforms to Accelerate Ray/Primitive Intersections for Long, Thin Primitive Types Sub-Triangle Opacity Masks for Faster Ray Tracing of Transparent Objects Improved Triangle Encoding for Cached Adaptive Tessellation Iterative GPU Occlusion Culling with BVH Ray-casting inspired visualisation pipeline for multi-scale heterogeneous objects
archive / summary
the paper presents a technique that uses late input latching and wrapping wrap render results to match camera rotations based on ideas from VR
archive / summary
the article provides an overview of the performance that can be expected from several Unity Engine shaders the provided information is from the Mali OpenGL ES shader compiler
archive / summary
the article presents many techniques for rendering broad outlines for 3D objects provides performance and quality comparisons of the different techniques the final result is a flood fill based approach
archive / summary
this Unity tutorial explains how to implement a rain effect on the surface of objects using a technique that is used on a tri-planar mapping droplets on flat surfaces and streaks when angled this is implemented using the Amplify Shader Editor
archive / summary
the article summaries the changes announced at WWDC Apple will transition from Intel CPUs / GPUs to custom hardware the article shows an architecture overview, best performance practices, new hardware, and API features including improved GPU debugging, shader compilation pipeline, raytracing and windows based tools
archive / summary
a look back at how RenderMan handled blurry glossy surface reflection in 2007 for Ratatouille using a technique called Brick maps, a form of 3D radiance caches
archive / summary
the blog post explains a CSG algorithm implementation based on using the depth and stencil buffer the technique is used to implement player visibility in bushes
archive / summary
the author provides an overview of the mindset, technique, and requirements for learning graphics programming additionally contains a list of resources to books, videos, web, etc. about the topic
archive / summary
the master thesis looks at Machine Learning techniques to discover visual issues, such as stretched textures, missing textures in a game environment
archive / summary
this PIX upgrade adds support for signal wait visualizations and improved buffer visualization
archive / summary
the Unity tutorial explains how to implement a stylized skybox with sun, moon, and clouds using the visual shader graph system
archive / summary
the article presents how to use the AMD GPU Analyzer for compute shaders the tool allows the collection of low-level information such as the ISA disassembly, register usage, etc
archive / summary
the article explains got to use the AMD GPU ANALYZER to get low-level information about graphics workloads shows what additional information is required to describe the required pipeline state
archive / summary
the article explains how to collect GPU timestamps and synchronize the CPU and GPU timestamps
archive / summary
the article explains the basics required to render a triangle with WebGL focused on clarity to show only the WebGL functionality and not provide any higher-level abstractions
archive / summary
explanation of the architecture of executing OpenGL on D3D12 using a Mesa-based implementation presents the development of the implementation and how performance was increased at each step
archive / summary
the article explains how spectral rendering can be implemented in a DXR based path trace shows what needs to be adjusted from a classical path tracer additionally shows how to convert existing data from textures into spectral data for rendering
archive / summary
collection of tech art and VFX twitter posts, including a look at facial animation tech of the Last Of Us 2
archive / summary
a brief summary video of the "Monte Carlo Geometry Processing: A Grid-Free Approach to PDE-Based Methods on Volumetric Domains" paper presents how this paper connects to light transport and provides an overview of 6 examples and a look at implementations of the technique
archive / summary
the paper presents an importance sampling method that is based on wrap functions that approximate a single factor introduces how to use the technique with several existing techniques including projected solid angle sampling, glossy BSFDs, and others
archive / summary
an additional explanation for the previously discussed paper containing the implementation for a rectangular area light
archive / summary
the article provides an overview of the WebGPU API and shows the steps necessary to render a textured, spinning cube
archive / summary
the great in-depth article explains the concepts of light with many interactive examples illustrates the connection between the different units, explains connected concepts such as solid-angle additionally explains the relationship between reflections, shadows, and color
archive / summary
the paper presents a new technique that combines techniques caustics and glint into a single framework the presented technique combines deterministic root finding and stochastic sampling
archive / summary
the paper presents a neural network upsampling technique that is aimed at 16x upsampling for real-time rendering the neural network takes advantage of additional information such as depth values and motion vectors
archive / summary
list of computer graphics conferences, dates and links to the stream as they are all virtual this year
archive / summary
Unity tutorial that shows how to implement realtime shadows for point and spotlights using a custom scriptable render pipeline
archive / summary
the paper presents a taxonomy of the lobes that are composed to create a BSDF gives a hierarchical breakdown of the different models with examples for the different branches
archive / summary
the article presents how to efficiently implement render-to-texture techniques using UE4 compares the implementation using Slate and Canvas and shows why a slate based implementation is a lot quicker
archive / summary
the articles show what screenspace shadows can add to the scene, provide an example of implementation, and show how noise can reduce banding
archive / summary
the article shows how to derive the intersection between a ray and a plane
archive / summary
the Metal shader API now supports function pointers the talk provides an overview of the compilation models and performance considerations function tables can be passed via argument buffers t the GPU
archive / summary
the Unity tutorial explains how to implement a moving scanline post-processing effect
archive / summary
the video provides an overview of the D3D12 frame-level profiler walkthrough of an example capture of Wolfenstein scene and uses it to explain how to use it to identify performance issues
archive / summary
the article explains several different methods that can be used to manage shader constant data provides a brief overview of each technique and compares performance on Mali GPUs
archive / summary
the article explains a method that stores shader instructions encoded into a texture and uses a runtime shader to interpret the data shows an experiment what happens if the texture is filled with random information
archive / summary
the program for the online conference taking place this week all videos are available on youtube and linked from this program
archive / summary
a twitter thread that lists new features Metal API features and provides links to documentation for each topic including Programmable Blending, Indirect Command Buffers for Compute and many more
archive / summary
the GDC talk discusses the voxel-based lighting and shadow system how to handle performance vs. quality tradeoffs in algorithms uses MSAA to increase the effective resolution on shadow maps on higher-end devices how to implement gaussian blur efficiently with async compute presents shader optimizations for PowerVR hardware
archive / summary
the article presents a frame breakdown of the PC version of Red Dead Redemption 2 covering g-buffer breakdown, environment map filtering, shadow pipeline, and more supporting systems
archive / summary
NVidia driver update adds support for DXR 1.1, VRS Tier 2, mesh shaders and sampler feedback additionally now supports Vulkan 1.2
archive / summary
a video from WWDC 20 provides an overview of the GPU pipeline, what hardware counters are available and how to use them understand application performance bottlenecks
archive / summary
video from WWDC explains the basic building blocks of the Metal ray tracing API and how to support more complex materials
archive / summary
the article provides an overview of several problematic mesh characteristics that cause an issue for ray tracing and how to resolve them
archive / summary
a lightweight and efficient method to render layered materials with anisotropic interfaces based around GGX BRDF lobes approximations when aligned with the tangent frame
archive / summary
collection of tweets related to VFX, shaders, and game art
archive / summary
overview of two new libraries developed by Oculus and Qualcomm to expose low-level profiling information designed for tile-based architectures Ovrgpuprofiler is a CLI application that provides access to assembled real-time metric details based on the low-level information
archive / summary
the article presents how to use stochastic LOD selection for a DXR based ray-tracer the given technique uses a combination of ray and instance mask to influence the ray selection discusses the importance of selecting consistent LODs between rays and shows a performance comparison
archive / summary
the article explains how Oodle Texture can prepare BC textures in such a way that secondary compressions stages (such as zlib) will be able to compress it further shows what Rate-Distortion Optimization is and presents considerations regarding the importance of error estimators
archive / summary
the article presents CUDA for WSL 2, how to use it and additionally shows how it cooperates with container workloads
archive / summary
the paper presents to Welch’s statistical t-test can be used to detect bias even with low sample counts presents techniques to visualize and analyze the test results
archive / summary
the article contains the answers to some common question viewers of the Ray Tracing Essentials webinar had
archive / summary
an extensive collection resource covering various aspects of GPU optimizations
archive / summary
the article presents how to create a running rat animation using a vertex shader this is archived by using UV partitioning to apply different animations to different body parts
archive / summary
the first part of a WebGPU series shows the necessary steps required to render the first triangle
archive / summary
this tutorial explains how to bind resources and uses this to add basic camera movement support
archive / summary
the paper presents a technique that allows Cumulative Distribution Functions that cannot be inverted to still offer an analytical and exact solution shows the method at the example of a unit square, stratified sampling of a truncated disk and torus
archive / summary
overview of cross-platform raytracing abstraction in "The Forge" and a summary of performance numbers on different platforms
archive / summary
the paper presents the sky and atmosphere model developed by Epic Games that support dynamic viewpoints between planet surface and space support different weather and planetary atmospheric settings without high dimensional lookup tables
archive / summary
the video tutorial explains UV animation, extending this to support varying animations between pixels using flow maps uses the presented technique to implement a movement of a planet atmosphere using the Godot engine
archive / summary
the author presents considerations for designing conversations explained with the example of RGBE encoding discusses quantization, round trip error, and precision maximization
archive / summary
the article explains how to deal with pixel coordinates correctly shows why pixel center coordinates are at half-offsets additionally shows how to integrate this into a ray-tracer correctly
archive / summary
an online summit with talks about ray tracing topics covers topic such as ray tracing API, usages in games and developments for mobile
archive / summary
program for talks that will be presented as part of high-performance graphics 2020 lectures will be streamed for registered attendees and recordings will be released after the conference
archive / summary
the article provides an overview of an algorithm for GPU based rendering of 2D vector graphics presents a performance comparison against other existing solutions
archive / summary
the talk from Unit presents techniques required for best results with Unity High definition rendering pipeline shows how to light a scene following photography theory
archive / summary
the article presents how a CSG Operation implementation based around point clouds has been designed for GPU architectures
archive / summary
the Unity tutorial shows how to dynamically generate light blocker textures to simulate clouds and tree shadows
archive / summary
the collection of talks for the field of neural rendering methods starting with an overview of the area, covering semantic photosynthesis, novel view synthesis closing with a look at the state of the art
archive / summary
the two-part article series shows the difference between Bump-maps, Normal-maps, Displacement and Vector Displacement presents an in-depth overview of the different techniques and compares the strengths and weakness with a visual presentation of the results
archive / summary
the notebook shows how to interpolate gradients in a perceptually smooth way using Catmull Rom splines the website allows experimentation with results in several color spaces
archive / summary
Vulkan talks that cover the Vulkan sample framework, load/store operations, sub-passes, pipeline barriers Roblox presents how to they manage command buffers, descriptors, render passes and pipeline state
archive / summary
the author presents his implementation of a UI element system that allows arbitrary object scaling in a single draw call the technique does not support texturing and requires offline pre-processing
archive / summary
the UE4 tutorial is a primer on how to build distance field shapes and use raymarching from volume texture to render them
archive / summary
path 3 of path tracing shows how to extend the materials to support fresnel as well as reflection and absorption for rough materials
archive / summary
the article discusses how to classify GPGPU work into the critical sequential work and the total amount of work done across all workers presents how this division is useful to talk and understand the performance of algorithms
archive / summary
the article presents how RGBE 8888 should be encoded and decoded correctly explains the reasoning and shows how the encoding format works
archive / summary
part 2 of path tracing implementation series, adding Glossy reflection Anti-Aliasing, tone mapping, and camera exposure
archive / summary
Podcast episode with Arisa Scott (Unity), Eric Haines (NVIDIA), Mike Hardison (Blizzard Entertainment), Mohen Leo (ILM) discussing the evolution of real-time technology and upcoming techniques
archive / summary
the article explains how to use to distribute points onto the surface of a sphere
archive / summary
new Vulkan SDK now contains the Microsoft Shader Compiler GFXReconstruct is a new layer and tool that will replace [vktrace](https://github.com/LunarG/VulkanTools), it allows recording and playback of Vulkan commands
archive / summary
this guide is designed to explain SPIR-V, what to use it for and present an overview of the internals additionally provides instructions for tooling and extension mechanism
archive / summary
Shader guide that explains how to write Unity shaders that are compatible with the Universal Render Pipeline highlighting differences between the built-in pipeline and Universal Render Pipeline
archive / summary
the article shows problems of floating-point precision in the model export pipeline
archive / summary
the presentation explains what Ambient Occlusion is, and provides an overview of different algorithms used to implement the effect
archive / summary
presents a method to implement a Cubism effect, similar to what can be seen in "Spider-Man: Into the Spider-Verse" provides a Unity implementation
archive / summary
the article presents Contrast Adaptive Sharpening and how it's used in EVE to make details on ships and planet surfaces clearer
archive / summary
Unity tutorial that shows to mix Normal map correctly considerations to export normal maps to take the most advantage of the BC compresses precision
archive / summary
A tutorial that shows a practical walkthrough on how to implement a path tracer in shadertoy focuses on the generation of renderings instead of physical correctness
archive / summary
the article shows how to generate UVs for curved corners using Unity
archive / summary
the articles present how the VRS (Variable Rate Shading) implementation was approached offers performance and quality considerations shows how the shading rate was adjusted dynamically
archive / summary
This Unity tutorial explains how to implement a Civilization VI style fog of war system shows how to render the hex grid, use a compute shader to generate visibility masks and combine all parts for the final result
archive / summary
the articles describe the design of the new geometry (import) pipeline of the Magnum engine the new design focuses on the reduction of load time and extra flexibility to handle any GPU understood format
archive / summary
A global illumination system developed by Activision the system is based on a static light baking approach with runtime support for dynamically changing lights and geometry
archive / summary
the articles presents different approaches on how to implement a ring progression effect compares rendering quality, anti-aliasing, performance, and setup work for each method proves Unity source code for all presented solutions
archive / summary
collection of tweets related to VFX, shaders, and game art
archive / summary
authors notes on the Survey of Temporal Antialiasing Techniques talk from the Eurographics 2020 virtual conference discussing TAA, how it works, how different implementations compare, weaknesses and possible future improvements
archive / summary
the next part in a Unity tutorial series on the scriptable render pipeline this part adds support for point lights, Spot Lights, static light baking and per-object lights
archive / summary
the article explains how the GPU based picking system in "Our Machinery" has been implemented presented solution writes a small UAV from the pixel shader to record the closes picked object shows how to make sure that the closes object is atomically returned
archive / summary
the article shows how the portal rendering effect in The Witcher 3 has been implemented shows the Reverse engineered HLSL shader implementation
archive / summary
a GI algorithm based around tracing Virtual point lights (VPLs), converting clusters of VPLs into probability distributions and storing these into hierarchical trees
archive / summary
detailed post presents the idea of “decorrelating” color channels to maximize information in texture channels and eliminate redundancy allowing data to be stored in fewer color channels introduction into Singular Value Decomposition SVD and how it can be used for channel decorrelation showing quality comparisons for a PBR texture set and discusses possible problems
archive / summary
Version 2 of Windows Subsystem for Linux adds full support for D3D12 (not allows rendering to the screen yet) this is implemented as Linux kernel model driver to expose the GPU to user mode Linux applications DirectML and CUDA are implemented on top to allow machine learning on Linux guests
archive / summary
relaxed cone step mapping for relief mapping to add more details async compute based tesselation for interactive terrain the interactive deformations have been implemented using texture-atlas based technique running pixel bound post-processing in parallel with the pre-pass of the following frame advice for the reduction of d3d12 hitches
archive / summary
collection of concepts, macros, shader logics, that exists in unity build-in render pipeline and how they are represented in the new Universal Render Pipeline
archive / summary
Khronos questionary that presents a list of suggestion for possible vulkan helper libraries looking for feedback on which libraries would be of most interest from developers
archive / summary
Unity tutorial that shows how to use a navmesh as a base for minimap rendering
archive / summary
the paper proposed a new method that aims to improve ray tracing by offsetting ray starting point aways from the originating leaf nodes of the acceleration structures the suggested proposal is generating an auxiliary data structure of hemispheres that make it robust to offset the ray starting point
archive / summary
A unity tutorial that shows how to blend multiple textures together and save them to disk using Unity
archive / summary
collection of tweets related to VFX, shaders, and game art
archive / summary
Eurographics & Eurovis 2020 conference will be virtual and streamed starting May 25-29, 2020
archive / summary
brief overview and introduction into Mesh Shaders using OpenGL and Vulkan
archive / summary
collection of notes about the content of the AMD talk presenting the AMD RDNA architecture and GPU optimizations presents a walkthrough of a MIP generation example
archive / summary
A new newsletter with news and insight on volumetric filmmaking, virtual production, 3D rendering, and other emerging realities
archive / summary
the paper presents a new technique that allows a massive number of dynamic lights to be rendered in real-time the presented implementation shows 3.4 million dynamic, emissive triangles in under 50 ms this is archived by reusing information from spatially and temporally adjacent pixels to filter probabilities to guide rays
archive / summary
AMD virtual event that contains talks about Ryzen™ Processor Software Optimization optimizing for Radeon™ RDNA Architecture From Source to ISA: A Trip Down the Shader Compiler Pipeline A Review of GPUOpen Effects Curing Amnesia and Other GPU Maladies With AMD Developer Tools Radeon™ ProRender Full Spectrum Rendering 2.0: The Universal Rendering API
archive / summary
collection of tweets related to VFX, shaders, and game art
archive / summary
overview of what Constructive Solid Geometry (CSG) is and workflows presents the algorithm that allows for iterative updates including how to calculate intersections and mesh generation
archive / summary
the post provides an overview of the new AMD memory profiler for Vulkan and D3D12 this tool allows gaining a deeper understanding of memory usage shows all allocations, tracked on a timeline, will enable comparisons of snapshots and gives warnings about possible problems
archive / summary
the article shows how to calculate the shadows from the sun presents the results of the shadow quality with white and blue noise the implementation is then extended to Spherical Positional and spotlights
archive / summary
the article presents how using blue noise can improve ray marching results provides a shadertoy that compares against white noise
archive / summary
presents a breakdown of the RTX implementation for Minecraft
archive / summary
the author presents his ideas about how the Nanite technology in the UE5 tech demo might be implemented
archive / summary
the article that discusses possible ideas on how the UE5 nanite technology might be implemented contains links to exciting techniques that might be related, or inspired the development
archive / summary
an overview of the new Nvidia Ampere Architecture aimed at compute workloads new tensor cores for f32 data, IEE compliant fp64, and BF16 throughput improvements adds the ability to run multiple processes on the same GPU with error isolation
archive / summary
overview of new features in CUDA 11 and how the NVIDIA Ampere GPU hardware features are exposed
archive / summary
the final part of raytracing series presents what denoising techniques are and why they are required presents a comparison in multiple scenes, explaining how neural network technique is trained
archive / summary
the article presents an overview of the Nvidia GPU architecture and how they developed over time shows changes done to the hardware, discussing the strengths and weaknesses of the design
archive / summary
presents a technique that combines singed distance fields and ray marching to render static volumetric clouds the signed distance field is used to only use ray-marching once inside the cloud volume
archive / summary
the paper presents how to apply the monte-carle methods to geometry processing
archive / summary
the paper presents an overview of ray sorting techniques and introduces a new method for ray sorting of secondary rays
archive / summary
this paper presents the results of testing done into human perception, comparing test-cases for perceived quality differences between resolution and framerate proposes a model for prediction to enable an application to dynamically adjust framerate and resolution based on the findings to achieve the highest perceived visual quality
archive / summary
the Video presents an overview of a shader technique implementing the behavior of leaves in Animal Crossing this technique is based around storing individual pivots for multiple leaves and applying dynamic effects based on this implementation with blender and Godot is shown
archive / summary
the author presents his view on WebGPU for use in native applications showing why it could be an excellent offer for many types of developers if it can deliver on its promises
archive / summary
collection of resource links to presentations, papers and articles focusing on the details of GPU architectures
archive / summary
a brief overview on how to get started with CUDA programming model and required components
archive / summary
a tool to generate meshlets for use with compute based culling algorithms or mesh shaders explains the difference between Bounding Spheres and Visibility Cones and how to use them for culling parts of meshes more efficiently
archive / summary
the presentation provides an in-depth overview of shadow techniques for real-time applications discusses what shadow maps are, how they are rendered, stored and used provides an overview of common problems and solutions additionally provides an overview of more advanced techniques such as filtering and cascaded shadow maps
archive / summary
the article presents the definition of a physically-based material that is energy conservation and reciprocity reciprocity is essential to be able to use bi-directional path tracing techniques looks at common methods such as Pre-Filtered Environment Maps, several Dielectric Material implementations presenting if they are reciprocal and/or energy-conserving and explaining why
archive / summary
the article presents how to implement a prefix sum using Vulkan compute shaders looking at memory model, dynamic allocations and subgroup controls
archive / summary
the Unity tutorial explains how to use the depth texture to apply a localized toon shading effect shows how to sample the depth texture, unpack the data and use it in a shader
archive / summary
new Nvidia extension for D3D12 that provides shaders the possibility to query timestamps from within a shader the article explains how to use this technique to visualize the performance of TraceRay( ... ) with a heatmap shows how to enable the extension in C++ and how to integrate it into a shader comparable to the [VK_KHR_shader_clock](https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VK_KHR_shader_clock.html) extension
archive / summary
next part in the Unity Tutorial series about implementing a custom scriptable rendering pipeline adds support for more complex materials such as details maps and normal mapping
archive / summary
the video provides an overview of Variable Rate Shading (VRS) present an overview of VRS implementation in Wolfenstein New Blood and Gears: Tactics for performance and quality discusses considerations in how difference workload affect the performance gains that can be expected from VRS
archive / summary
breakdown of the rendering techniques used in Mortal Kombat 11
archive / summary
the article presents an alternative execution model that would be able to improve upon Timeout Detection and Recovery mechanism found in the OS after 2 seconds the OS will terminate GPU processes and cause a device lost event the proposal is to make the OS GPU process-aware which allows applications to start independent GPU processes that would behave similarly to CPU processes
archive / summary
the article provides an overview of the WebGPU API covers the state of the implementation on Firefox and presents the next steps currently in progress
archive / summary
the article presents the Wrapped lighting technique to emulate subsurface scattering the method is aimed for use with forward shading on the Oculus Quest
archive / summary
this part of the article on volumetric rendering shows how to model a volume using an SDF inside of shadertoy
archive / summary
the second part of the article presents how to render the volumetrics calculation absorption, Self-shadowing, quality improvements, and a few optimizations
archive / summary
Twitter thread about the complexities of different light measuring units provides a UE4 tool to simply conversion between units
archive / summary
a flowchart that provides an overview of the descriptor set binding logic of the Vulkan API
archive / summary
list of games studios and which custom engines they are using broken down into AAA, middle, small and solo developers
archive / summary
the thread provides an overview of what are use cases for quaternions focusing on how to use them instead of the mathematics
archive / summary
the article explains problems with alpha testing materials and why they tend to shrink in the distance presents a technique to reduce these artifacts and compares against other techniques
archive / summary
presents a test setup that explains how to validate ray refraction within a sphere shows what values are expected, very useful when implementing your own ray tracer
archive / summary
the article presents how WebGPU compares with WebGL compares findings in terms of API design, early performance results, and compatibility
archive / summary
part of the ray tracing series covering the rendering equation breaks down the equations into components and explains the contributions to the final rendering result shows how pure path tracing is using the equation and techniques used to reduce the time required for the results to converge to the final result
archive / summary
the Vulkan validation layer now can send printf style information from a shader to the debug callback the article explains how to use the layer and what constraints need to be considered
archive / summary
the Unity video tutorial explains how to implement an effect that converts a 3D mesh into a voxelized version achieved by rendering the mesh into an offscreen target and using the texture to drive a geometry shader additionally shows how to break this object into a particle effect for destruction
archive / summary
the article presents how to calculate a blurred version of a rounded rectangle using a distance field based technique
archive / summary
a long document containing many tips and tricks to optimize UE4 performance mostly aimed at materials and VFX related optimizations
archive / summary
the last part of a series of UE4 based posts that recreate an environment artists scene this part focuses on the recreation of the stylized ocean in the scene combines all elements and presents the final result
archive / summary
the guide presents an overview of the structure and content of technical interviews presents a framework for mapping rendering engineers in different dimensions
archive / summary
provides an introducing into linear blending explaining that pixels are no signal but rather samples taken at a given location presents the star-shaped artifact of bilinear filtering discusses an alternative to bilinear filtering with links to papers and analyzes the frequency response of some filters
archive / summary
the article presents how to use the Mitsuba renderer to validate the results from a PBR renderer provides an overview of the file structure used by Mitsuba and how to convert units where required
archive / summary
the article presents that Godot has now 3 update frequencies for shader parameters global, per-material and instance provides a few video examples that show use cases of global parameters for vegetation interactions
archive / summary
part 5 of Nvidia ray tracing series focuses on the presentation of different visual effects that are created through ray tracing such as depth of field, motion blur, atmospheric effects
archive / summary
Eric Haines will be giving a webinar on May 12 explains concepts related to ray tracing, comparison of ray tracing and explain how specialized hardware can accelerate the workload additionally covering denoising and other techniques required to make interactive raytracing possible
archive / summary
part 3 of Rust gfx-hal intro series shows all the steps required including binary serialization of mesh data, shader changes and all other Rust changes needed to render a spinning 3D teapot
archive / summary
presentation from revision focuses on the physics of light interaction with matters overview of shading models and possible implementation techniques
archive / summary
Cuda introduces new memory management functionality allows developers to reserve virtual memory ranges and map these ranges to physical memory on demand
archive / summary
the article shows that the D3D12 alignment requirement rules have an exception for small textures that allows a reduction in alignment requirements this behavior needs to be explicitly requested and presents how to take advantage of it
archive / summary
the article presents 3 different techniques for Unity that allow the color of UI elements to be dynamically adjusted shows pro and cons for each technique and what good use cases are
archive / summary
talks aimed at computer science students starting to get started with GPU technology present an overview of GPU hardware architecture how functional programming is a good fit for GPUs shows how to adjust 2D rendering algorithms to be better adapted for the architecture overview of the graphics infrastructure (compilers, APIs, shader languages )
archive / summary
the article and video and present a high-level overview of the rendering passes of Overwatch
archive / summary
Part 1, [2](https://maxliani.wordpress.com/2020/04/16/life-stories-the-glimpse-renderer-part-2/) and [3](https://maxliani.wordpress.com/2020/04/17/life-stories-the-glimpse-renderer-part-3/) of a series about the story of the Glimpse Renderer a renderer was written from scratch and used in multiple movies such as The LEGO Movie
archive / summary
the talk presents an overview of rendering features developed for Path of Exile showing what constraints the game provides and how it enables these implementations Point Light Shadows (Screenspace Hierarchical Variance shadow maps) Screenspace Global Illumination Subsurface refraction, a technique used for ice and water Water flow map generation on the CPU using Algebraic Multigrid grass and fur using pre-calculated raytracing an extensive collection of brief overviews of other techniques such as burning, fracturing, scalar field vectorization
archive / summary
A virtual machine that is written in C enables executing of a subset of SPIR-V shaders (only 2D texture operations, no 3D etc.)
archive / summary
presents operations that reduced the shading time required from 21.58ms to 13.52ms combination of scene-specific adjustments, implementation changes to noise generation and variance reduction
archive / summary
A guide aimed at technical artists to preset best practices for geometry, texture, material and shader optimizations for mobile devices
archive / summary
the article presents implementations optimizations to speedup trilinear filtering taking advantage of the representation of power floating-point number to speed up operations
archive / summary
The database of articles included in this series has been updated with a new look this is the first step of a more extensive upgrade, and new functionality will be added soon. Stay tuned
archive / summary
collection of Vulkan tutorials for the VK_KHR_ray_tracing extension the tutorial starts from a working .obj rendering using rasterization and then integrates raytracing additional topics covered are Anti-Aliasing, handling thousands of Objects, Transparency, Reflections, Animation, Callable Shader and Ray Query
archive / summary
the article shows how Nsight was used for debugging a frame stutter bug in the Vulkan raytracing implementation of Wolfenstein: Youngblood
archive / summary
the post presents how to use Nsight to apply the Peak-Performance method to determine a performance problem in Wolfenstein: Youngblood (Vulkan) shows how to detect being memory-bound and how to reduce the texture memory being access in a hit shader
archive / summary
this Unity tutorial explains how to implement a burning effect for paper this tutorial builds on previous parts of the series
archive / summary
part 1 of rust graphics programming series using the rust gfx hal gfx-hal is a graphics abstraction layer on top of D3D12, Vulkan and metal this in-depth tutorial covers everything required from the setup of the application, window, shader, etc. needed to render the first triangle into a window
archive / summary
the second part of the tutorial series extends the example so that Vulkan push constants can be used to render multiple triangles with varying settings settings that can be modified include color, position, and scale
archive / summary
the article presents a method that allows validation of a physical camera model against ground truth data
archive / summary
collection of links and graphics community news such as ACM Digitial library being free, I3D posponed, ...
archive / summary
the article shows how to use quadratic interpolation for depth aware upsampling the presented use-case presented is volumetric clouds
archive / summary
the GTC talks provide an overview of Deep Learning Super Sampling presents an overview of the challenges for upscaling the results of realtime rendering shows a history of existing techniques and compares the qualities of different methods includes a section on how to integrate the technique into Unreal Engine 4
archive / summary
his Unity tutorial shows one way of blending meshes that are close to the terrain with the terrain colors the presented approach uses a separate depth texture to record the terrain depth and uses this to calculate the distance of a pixel to the terrain
archive / summary
the article presents a breakdown of the rendering stages found in the PC version of Batman: Arkham Knight the game uses a hybrid approach between forward and deferred rendering based on the distance to the camera lighting is done in a computer shader using checkerboard pattern with upscaling rain is using GPU based particles
archive / summary
the GTC presentation explains how the technique aims to replace existing indirect lighting techniques provides an overview of how the method combines ray tracing, fast irradiance updates, and a moment-based depth scheme to enable realtime GI without baking information offline
archive / summary
ACM tech talk with Ed Catmull & Richard Chuang happening on Tuesday, April 14
archive / summary
the paper presents a new technique to speed up the rendering of complex, layered materials the model doesn't rely on any precomputation
archive / summary
the article presents a method for direct construction of tileable isotropic blue noise the technique is based on improved Correlated Shuffling
archive / summary
A twitter thread that explains what barycentric coordinates are and how they are commonly used in computer graphics to interpolate data provides animated graphics to explain the concepts more visually
archive / summary
the article presents what Hierarchical depth buffers are, what they are used for and how to generate them two different techniques for calculating these buffers are presented one pixel shader based method and a compute shader variation the compute shader variation is designed to only generate a single MIP level, not a full MIP chain presents a performance comparison between the two techniques
archive / summary
the Unity tutorial explains how to implement a cone of sight that is occluded by objects intersection with the primary scene depth buffer allows constraining the effect to the surface of the terrain a secondary "shadow map" from the position of the player is used to detect occlusion in the cone
archive / summary
collection of link resources from GDC, GTC additional resources from Google, Intel, Ubisoft and Khronos
archive / summary
new Pix for Windows release with support for DXR 1.1, Mesh shaders and sampler feedback also includes updated timeline news with the correlation between CPU and GPU work additionally adds support for DXIL source-level debugging
archive / summary
GPU Trace and Nsight Aftermath now supports Vulkan Advanced mode for GPU Trace collects more in-depth information over several continues frames
archive / summary
the author presents his domain-specific language and how it's used to extend shaders allows all state required for pipeline objects to be encoded as part of the shader code
archive / summary
the article presents best practices for multithreaded command recording with Vulkan show performance comparisons of different methods and discusses common mistakes
archive / summary
the article contains many best practices for WebGL applications discussing a large number of topics including memory estimation, performance guidelines, GLSL tips, texture performance, and constraints additionally covers some WebGL 2.0 and Canvas related advice
archive / summary
Microsoft and Collabora are working together to implement an OpenCL and OpenGL layer for Mesa that is running on D3D12 provides a summary of what Mesa 3D is and why API translation is important also provides an overview of the implementation
archive / summary
presentation from Intel that presents how to use multiple adapters with D3D12 techniques for work-sharing and dealing with synchronization offers performance numbers for the presented methods, best practices, and possible problems
archive / summary
the presentation provides an overview of Variable Rate Shading (VRS), explaining what shading and rasterization rate are shows what settings implicitly disable VRS on Tier 1 intel hardware presents how VRS is integrated into Unreal Engine 4, Chivalry II gives performance and quality examples for both
archive / summary
Nvidia released the RTX Global Illumination (RTXGI) SDK v1.0 SDK provides a framework for realtime GI for games, it offers full source code post contains a video overview of the techniques from GDC 2019
archive / summary
Nvidia released a new version of the DDS exporter improved mathematically correct filtering for mipmap generation adjusted to the content of the image support for high-quality BC7 and HDR formats
archive / summary
post containing an overview of the new D3D12 Feature level 12_2 now called DirectX 12 Ultimate covers Variable Rate Shading, Mesh Shaders, DirectX Raytracing 1.1 and Sampler Feedback fully supported on PC and Xbox Series X
archive / summary
the Unity tutorial shows how to use color masks to apply runtime coloring with smooth blending to sprites in a 2D scene explains masking, blending over time and using a sin function to achieve effect looping over time
archive / summary
the post provides an overview of the new Vulkan raytracing extensions using similar concepts as DirectX Raytracing the acceleration structure can be built on the CPU or GPU the article explains how CPU scheduling is exposed to the application adds support for DXR 1.1 features such as inline raytracing additionally provides a few code examples
archive / summary
the presentation provides an overview of mesh shaders explains the problem with the classical geometry pipeline and how the mesh shader pipeline is an improvement provides a walkthrough of code demonstrating how mesh shaders are implemented and what needs to be considered to achieve excellent performance explains the meshlet data structure and how to use this as a base for a mesh shader pipeline how to implement instancing, and using per-primitive attributes
archive / summary
build upon the @Reinventing the Geometry Pipeline: Mesh Shaders in DirectX 12" talks summarized above provides more hardware details and how to design mesh shader implementation to give excellent performance extending the meshlet pipeline with more advanced culling and mesh data compression providing performance numbers for different techniques
archive / summary
the video provides an overview of the new Sampler Feedback feature added to D3D12 shows how to use compile sampler feedback and reserved resources to improve texture streaming overview of texture space shading and how sampler feedback can be used to guide the system closing with an API overview
archive / summary
overview articles by Nvidia for D3D12 Ray Tracing, Mesh shading, Variable Rate Shading, and Sampler Feedback
archive / summary
the article describes the VK_NV_device_generated_commands extension for Vulkan it allows partial command buffers to be generated on the GPU more flexible then D3D12 ExecuteIndirect main functional addition is the support of changing of shaders between commands
archive / summary
the article presents an overview of a BVH structure for GPU raytracing this is not using any raytracing APIs and focuses on the data structure design how to structure the tree, handle animated meshes and refit the structure for changes
archive / summary
the post presents the fresnel equations that are used for smooth metals and surfaces such as water shows the Schlick approximations and compares them to the equations and where to retrieve the necessary parameter values
archive / summary
Reverse engineering the color grading solution used in "The Witcher 3" shows how the indexing into LUT works, including rounding mode handing the solution used by the game can use up to 3 different LUTs for the same scene
archive / summary
the article aimed at beginners presents how to use ShaderToy to get started with shader development extends the example from simple colors to animated scenes shows how to implement a spinning octahedron
archive / summary
the article presents an overview of aliasing in digital signal processing then applies the information and shows how the same understanding applies to computer graphics covering rasterization, texture and shading aliasing short on time? Only read the TL;DR at the end example code provided
archive / summary
the Unity tutorial shows how to create an outline effect for 2D sprites implemented by storing a signed distance field in the alpha channel and using that additional information that in the pixel shader
archive / summary
discusses buffer allocation, update and mapping strategies descriptor pools, texture transfer synchronization, fence signaling, memory alignment, and shader variations
archive / summary
the post discusses how to write a simple GPU Hash table implementation using CUDA uses 32-bit keys and values with open addressing and linear probing
archive / summary
the article presents that combining signed distance fields of primitives using min and max operations can create incorrect SDFs this is especially noticeable on the interiors of objects offers 5 different ideas/solutions on how to solve the problem
archive / summary
part 4 of ray tracing series by Nvidia this episode focuses on the RayTracing APIs in D3D and Vulkan discusses the types of shaders and how they are interconnected
archive / summary
Video tutorial for Unity that shows how to present the Echo effect (a point-cloud based rendering overlay) from "The Division" covers how to generate the data, implement the rendering, interactions with the player and post-processing
archive / summary
overview of what is new with DXR 1.1 presents how to extend a depth pre-pass system for shader ray tracing using the DXR 1.1 RayQuery object
archive / summary
the document provides an overview of the ASTC texture compression format explains how end-point color compression works encoding strategies, block sizes and how the format allows the compressor to adapt the techniques for each block
archive / summary
the article presents how to use new ARM tools to gather performance information (later versions will support Continues integration) provides an easy to read report that can be used by non-programmers to validate the performance of the game the tool allows performance budgets to be defined, will be shown in the UI Automated screenshot collection when frames take longer than a specified threshold to produce
archive / summary
the article explains how exposure used to work in Unreal Engine 4.24 what problems the behavior caused and how the new implementation solves these problems looking at grey-point targeting, physical exposure units, lens values, and perceptual brightness additionally provides an overview of the debug modes available
archive / summary
the article shows how the milky way rendering from the Witcher 3 Blood & Wine DLC was implemented including a brief look at the star rendering
archive / summary
A Unity tutorial that focuses on the deformation of a plane to create a crumbled paper look implemented using a vertex shader
archive / summary
the post provides an overview of an algorithm for boolean operations on geometry this allows for runtime slicing of meshes such as for dynamic destructions systems the idea is based around finding the overlap of two meshes to generate new vertices along the interception to create the cut
archive / summary
part 3 of Nvidia ray tracing series this part focuses on the history of ray tracing hardware and presents how Nvidia changed its design approach Turing has dedicated hardware for Raytracing and machine learning tasks. the previous architecture contained only general-purpose compute
archive / summary
the article discusses techniques to compress data for skeletal animation data used for game runtimes presents an overview of standard terms followed by a look at data quantization, quaternion compression, and track compression
archive / summary
a very brief high-level overview of mesh shaders and necessary OpenGL extension provides a condensed OpenGL example that renders a fullscreen quad
archive / summary
the article presents multiple scenarios in D3D12 where manual barrier synchronization is required followed by a back-to-back copy into buffers that cannot be synchronized by barriers and shows the behavior observed on actual hardware
archive / summary
the post focuses on efficient and high-quality grid rendering for "The Machinery" editor implementation is done in a pixel shader on world space quad created by two triangles shaders deals with LOD selection, anti-aliased line rendering, falloff for gracing angles and grid extends
archive / summary
copy of an article that was published in GPU Zen 2, updated for changes introduced with Vulkan 1.1 and 1.2 covering memory management, Descriptor sets, command buffers, pipeline barriers, render passes and pipeline management
archive / summary
video comparing rasterization and ray-tracing algorithm analyzing the strengths and weaknesses of both techniques and how they complement each other
archive / summary
the paper presents an overview of Temporal Antialiasing (TAA) techniques, the history, different implementation techniques follows up with a presentation of open challenges and discussion of possibilities for improvements
archive / summary
presents findings from compressing PBR material information into a single texture developed for terrain-like materials shows a comparison of memory usage and performance improvements
archive / summary
A FAQ for Vulkan best practices guide by ARM swap chain acquisition, image transitions, device lost debugging, and transient attachments
archive / summary
the 7-min video provides a walk through the history of light transport research showing numerous techniques, how multi importance sampling can be used to combine multiple techniques closes with the presentation of the "Unifying points, beams, and paths in volumetric light transport simulation" (UPBP) paper
archive / summary
the article presents an approximation to the GLSL trisect function trisect splits an angle into three equal parts, playing the same role as square root in quadratics
archive / summary
the tutorial shows how to implement a skeletal animation system using Geometric Algebra (GA) additionally introduces the required GA concepts along the way
archive / summary
the article presents how to pack UV and gradients (ddx, ddy) into 32-bit gbuffer channels this is used for deferred materials where the results of texture samples are not stored in the gbuffer
archive / summary
the Unity tutorial shows how to implement a checkerboard pattern if a 2D player is behind another object this is achieved using the stencil buffer
archive / summary
a 3 part series that provides an overview of the backend implementations of sokol_gfx for the OpenGL, D3D11 and Metal implementation
archive / summary
Nvidia added support to the DirectX Shader Compiler (DXR) to generate SPIR-V that is valid to be used with the Vulkan SPV_NV_ray_tracing extension the article shows an example and explains how concepts are mapped to SPIR-V
archive / summary
the article presents an overview of techniques to optimize pixel shaders starting with techniques to make sure that pixel shaders are only run if necessary and offers several methods to reduce the cost of pixel shaders afterward
archive / summary
the author presents how shooting stars in the Witcher 3 are implemented show the vertex and pixel shader implementation
archive / summary
the in-depth article presents the physical models and approximations of participating media (such as fog, water) presents constant, linear and exponential fog implementations extends these solutions to express atmospheres and provides approximations for numerical approaches
archive / summary
the newest part in article series about defining a data-driven rendering pipeline focusing on the definition of a render pipeline a simplified version of a RenderGraph/FrameGraph system build around render targets as central primitive
archive / summary
the Unity tutorial explains how to implement a stylized Eyeball Shader using Unity Shader Graph
archive / summary
presents an approach to render particle effects using compute shaders the primary focus is optimization for tiny, pixel-sized particles that are additively blended lacking support of atomic on floats requires float->int->float conversions in the shader and how this influences the final implementation
archive / summary
the results from the Vulkan survey have been released contains comments, and what are the next steps that are taken to address the feedback
archive / summary
the article presents how to implement a Path Tracer using the Unity Data-Oriented Technology Stack (DOTS)
archive / summary
the article describes how to deal with device orientation changes in a Vulkan application efficiently describes how to query the information from the system, recreate Vulkan objects and necessary modifications to shader code
archive / summary
the article presents the problems with ray tracing in terms of divergence workflows Imagination GPUs are able to reorder rays in hardware to maintain better coherency
archive / summary
the blog posts presents how to use high quality volumetric fog in UE4 to simulate ground level rolling fog based on multiple layers of 3D texture based noise, and fake self shadowing
archive / summary
collections of art, unity tutorials and shader introduction articles
archive / summary
new Geometric Algebra designed for realtime graphics and animation applications including SSE optimizations
archive / summary
article presents how to use barycentric coordinates in a pixel shader to manually interpoliate values in a quad
archive / summary
the article presents a brief overview of what deferred shading is shows how to customize the deferred shading logic used by unity expose global tweakable settings that influence the whole scene
archive / summary
collection of gpu resources links to details about hardware, shader languages, and WebGPU
archive / summary
the Unity article describes how to generate a stylized procedualr skybox shows how to generate proper speherical UVs, generate a sky gradient, stars, moon, sun and clouds
archive / summary
the Unity tutorials shows how to use Material Property Blocks this feature allows Unity to better batch draw calls even if multiple materials are used
archive / summary
beginner Unity shader tutorial that shows how to implement a gradient made from 4 colors forming a quad
archive / summary
last part of Unity shader torial that shows how to add ripples into the sand dunes this is achieved using normal mapping
archive / summary
Unity tutorial that shows how to calculate new normals from a vertex shader this is required because the vertex shader modifies the vertex positions normal is calcuded by transform neighboring points and adjusting the normal based on the relative change of the points
archive / summary
the article shows what needs to be considered when baking normal maps for use with separate applications it shows what kind of different conventions exists, what common artifacts look like and how to verify that the content pipeline is correct
archive / summary
the article shows a connection between "2D cross product", Complex Numbers and 2D rotation matrices
archive / summary
the tweet shows an alternative formulation for a normal transformation matrix (required when non-uniform scaling is allowed) the technique uses less memory but more ALU
archive / summary
the Unity shader breakdown explains how to dissolve a mesh using a combination of noise and height based effect
archive / summary
Siggraph presentation showcasing a shadow system that enables thousands of shadowed-lights in large environments uses a fixed size shadow map pool, each light allocates it's the target size splits dynamic and static shadows, using conservative filtering for the highly sparse dynamic shadows presents several techniques for compression, filtering and an overview of performance
archive / summary
the article presents an overview of the Wave Function Collapse algorithm a tile-based algorithm for the generation of procedural structures
archive / summary
the article presents a comparison between techniques to solve the harsh shadow terminator problem offers comparison images in different situations and with and without normal mapping
archive / summary
the article shows a breakdown on how to approximate subsurface scattering from a point light using Spherical Gaussians presents why spherical harmonics are not a good fit to approximate point lights
archive / summary
the article presents the basics of Singular Value Decomposition shows how to use the concept to check if filters are separable and if not how it helps with approximations
archive / summary
a collection of articles, presentations and other resources covering volumetric cloud rendering
archive / summary
the presentation provides an overview of the development of WebGPU presents a few API examples regarding how to use the API from Rust additionally offers a solution to prevent the spreading of generics required by the API
archive / summary
short Unity tutorial that shows how to use sprites to simulate screenspace effects such as distortion and color shifts
archive / summary
the tutorial shows how light baking is implemented in Unity shows how to integrate lightmaps and light probes into a custom render pipeline replace the default surface model during baking with a custom model
archive / summary
the article presents Do’s and Don’ts for the use of GPU performance events shows how to write performance event with D3D11, D3D12, Vulkan, and OpenGL
archive / summary
the article describes what color banding is and what causes it presents a demo application that shows how dithering can help to reduce banding
archive / summary
the Unity tutorial shows how WorldSpace positions can be used to texture planar object extends these ideas to show tri-planar mapping can be used to texture arbitary meshes
archive / summary
the article presents several Vulkan patterns that cause reduced performance and should be avoided
archive / summary
the paper presents a GPU compatible algorithm for processive approximation least-square encoding into linear bases
archive / summary
the article presents how ordering mesh data can influence rendering performance compares different algorithms developed for this purpose the primary focus is on how to train these algorithms using machine learning techniques analyzes the results of different approaches and presents results
archive / summary
the article shows how to enable AMD FreeSync using D3D12 and Vulkan presents how to use the library to encode color information into the desired HDR display format
archive / summary
Vulkan 1.2 has been released this release promotes [23 extensions](https://www.khronos.org/registry/vulkan/specs/1.2/html/chap38.html#versions-1.2) into core Vulkan including extensions such as imageless_framebuffer, timeline semaphores, and better support for HLSL shaders
archive / summary
Microsoft open-sourced two layers to help to port to D3D12 [D3D12 Translation Layer](https://github.com/microsoft/D3D12TranslationLayer) helps mapping from D3D11 style APIs to D3D12 style Resource binding, renaming, sub-allocation, pooling, and deferred destruction Batching and threading Residency management [D3D11On12](https://github.com/microsoft/D3D11On12) is implemented on top of the previous layer and contains the D3D11 specific aspects
archive / summary
the paper examines k-d trees and bounding volume hierarchies comparing the approaches with varying cone sizes
archive / summary
the article discusses the new timeline semaphore synchronization API included in Vulkan 1.2 superset VkSemaphore and VkFence allows synchronization between CPU and GPU using a single primitive additionally provides support for wait-before-signal submission and multiple waits per signal
archive / summary
the code snippet shows how to screenspace extends of a sphere from view space an optimized version of [Clipped Perspective-Projected 3D Sphere](http://jcgt.org/published/0002/02/05/paper.pdf)
archive / summary
the article presents how Grassmann (Geometric) Algebra extends four-dimensional homogeneous coordinates into a larger algebraic structure
archive / summary
the Unity tutorial explains how to achieve a stylized lava effect
archive / summary
the Unity tutorial shows to implement the stylized lava effect discussed in the previous article using Shader Graph
archive / summary
the author presents his opinions about how a rendering abstraction layer should be designed additionally offers his thoughts on Render Graphs, Meta Command Buffers, and meta shader languages
archive / summary
presents an improved precision method for normal reconstruction from depth buffers the technique uses 5 depth samples in each direction
archive / summary
the article presents a few approaches to skybox rendering introduces how to use the min/max depth of the D3D12 viewport to force skybox to a max depth the comments present other approaches
archive / summary
the paper introduces a technique for improving the computation time required for lightmap baking based on guided sampling and minimum variance-based estimator combination the method has a fixed memory footprint and is independent of scene complexity
archive / summary
the article shows how to use Node bindings to enable RTX support when using WebGPU provides a brief overview of the DXR API and presents how to use the API to set up the pipeline and render an animated mesh
archive / summary
the article presents the shader nodes from Unity ShaderGraph system explains how to use the nodes, what options are available and how to combine them
archive / summary
the article presents code and explains the logic behind correct dithering patterns that preserve the brightness
archive / summary
the article shows an overview of deferred shading techniques alternative structures and methods for optimizations are presented using compute shader for conservative rasterization for spot and sphere lights
archive / summary
new release of AMD profiler that introduces a new pipeline overview view and adds new overlays for the wave occupancy view
archive / summary
the article shows how to use RenderDoc to identify issues and how to alleviate them most advice is not Occulus specific and talks about shader complexity, LOD, culling, and empty draws
archive / summary
a short Unity tutorial that explains inverse lerp function a function that given value in an input range returns a normalized 0-1 value additionally shows how to combine lerp and inverse lerp to allow range remapping
archive / summary
the latest Nvidia driver update introduce Variable Rate Supersampling for D3D11 + MSAA applications driver side implementation that allows games to render with higher quality in the center of the screen the article presents and compares MSAA and SSAA
archive / summary
the second part of a shadertoy video tutorial the tutorial extends the scene to render multiple parallax layers of mountain ranges how to draw a moon
archive / summary
this video tutorial shows how to derive the signed distance field for a line segment
archive / summary
next part in Unity tutorial series about the rendering of sand adds support for sparkling based on microfacets based on a texture with precomputed random values
archive / summary
a brief summary of mipmapping shows how mipmapping causes details in glitter effect of sand to be lost in the distance proposes a manual mipmapping strategy where the texture coordinates are adjusted to keep a constant texel density
archive / summary
the article presents how to write an outline shader for Unity uses color, normal and depth information implemented as a post-processing effect
archive / summary
the Unity tutorial shows how alpha to coverage allows improved edges on vegetation how to implement alpha to coverage into a shader shows how to adjust mipmap calculation to preserve small details with this method
archive / summary
update to Vulkan database shows the first driver version an extension/feature has been introduced a more natural way to compare extension support across different platforms
archive / summary
the article shows how to use the WebGPU API to implement everything required to render a colored triangle this includes shader loading, mesh creation and command generation
archive / summary
Twitter thread about the authors' recommendations about learning graphics programming
archive / summary
collection of resources covering physically based shading a short summary for every source is provided
archive / summary
the Unity tutorial shows to create a toon style glass shader using shader graph
archive / summary
the article shows how the 1991 game Another World is being rendered the game is using a 16-bit color palette, with a static background runtime cache and composited from an off-screen target
archive / summary
the article shows a collection of usage scenarios and explains what should be done for best performance shows how to use RenderDoc to verify the behavior
archive / summary
the article shows how to render anti-aliased lines expanding lines in the geometry shaders into quads and fading out the lines towards the edges of the quad
archive / summary
part 4 of sand rendering tutorial adds support for Rim Lighting, Fresnel Reflectance, and a secondary specular highlight
archive / summary
the paper extends the Exposure Fusion technique to operate on a single image the method aims to enhance the contrast in an image locally
archive / summary
the article presents a tile-based classification system for post-processing depth of field DispatchIndirect is then used to execute only the required functionality the post shows how the classification, stream compaction, and final execution is implemented
archive / summary
collection of tweets related to VFX, shaders, and game art
archive / summary
the article provides an overview of the technical artist role the author shows different specializations and offers recommendations for skills required additionally includes general information about the application process
archive / summary
the article shows the two different shader compilers for D3D12: the FXC and DXC compiler presents a high-level overview of the compiler how to compile shaders from DLL vs. command line and other relevant information on the usage
archive / summary
the article explains the parallax effect and how it's different from normal mapping afterward shows how to extend a Unit surface shader to support parallax
archive / summary
the article describes the algorithm rewire of a vector to triangle mesh tesselator written in Rust focuses on the discussion of precision issues, fill rules and custom vertex attributes
archive / summary
the Unity tutorial shows how to implement a thermal view effect implemented as offscreen rendering and the result is blended with the main pass
archive / summary
collection of tweets related to VFX, shaders, and game art
archive / summary
A unity video tutorial that shows how to generate a circle procedurally additionally shows how to deform the circle, apply different line width and other modification
archive / summary
an updated article that presents the latest numbers and what APIs Roblox is currently supporting nearly 50% of android users are now using the Vulkan backend looking into dropping D3D9 support on Windows soon
archive / summary
the article presents how to inverse the CDF of the Disney SSS
archive / summary
a list of open-source ray and path tracers the comment sections contain some additional ones
archive / summary
collection of games that have been selected by Nvidia as excellent showcases for the use of RTX raytracing
archive / summary
the first part of the video series that will explain the basics of ray-tracing covers basic of ray-tracing with the diffuse lighting model
archive / summary
the recording of a talk presents an overview of the architecture of the Mitsuba 2 renderer a set of problems and how Mitsuba can help in solving them
archive / summary
the unity tutorial provides a brief overview of the specular workflow compared with the metalness workflow this is covered with a toon shading model focuses on the art authoring aspect, less on the shader aspects
archive / summary
the article shows a UV sphere, icosphere and proposes the octasphere an alternative way to generate a sphere surface shows how to create a sphere and additional extend the method for other surfaces
archive / summary
the article presents transformations around an arbitrary axis and points follow by a discussion of non-affine transformations (parallel lines are not preserved, such as perspective projection)
archive / summary
video review by Digital Foundry of the games released in 2019s talking about the technology used in different games, not just covering AAA games
archive / summary
the video tutorial shows how to write a ray marcher in a unity pixel shader
archive / summary
the article presents how to integrate FidelityFX Contrast Adaptive Sharpening (CAS) compute post-processing filter into an engine the architecture is designed to make integration into a custom engine relatively simple
archive / summary
the article shows how to use a vertex shader to animate the vertices for a lightsaber effect
archive / summary
Instruction Set Architecture provides an overview of how Vega architecture is designed an in-depth description of all instruction set and additional hardware details
archive / summary
the article provides an overview of new features of the PowerVR SDK improved tools, improved Vulkan support, support for Android 10
archive / summary
the article provides an overview of the experience using metal over the last 3 years discusses the situation on iOS, macOS, and improvement has been made since the first iterations
archive / summary
collection of tweets related to VFX, shaders, and game art
archive / summary
the Unity tutorial shows how to create a skybox shader that uses a gradient defined by two colors
archive / summary
a web-based ray tracing framework that exposes programmable stages based on GLSL for rapid prototyping, in a similar fashion to ShaderToy
archive / summary
the blog details the mathematical approach of Monte-Carlo integration additionally explores several techniques (such as Importance Sampling) to reduce the variance
archive / summary
the article extends the knowledge from part 1 to the domain of solving the rendering equation explains the theory behind the different aspects of path tracing
archive / summary
the article presents an exploration of a material system designed for Vulkan requirements the material system expresses the information required to create pipeline objects additionally supports loading and binding of resources example implementation (with provided code) provides examples of how to use it for different workloads
archive / summary
the article shows the possibility of using Bezier Triangles to store arbitrary and use this as a lookup structure for GPUs shows how to calculate Barycentric Coordinates provide the foundation for Bezier curve creation extends this to a triangle formation
archive / summary
new PIX version allows the creation of custom buffer formats and saves/restore those can now start applications in a suspended state, this will enable workloads leading up to the first frame to be captured
archive / summary
collection of tweets showcasing a large number of effects, games and technical art resources contains gifs that explain the length of a vector, dot and cross product
archive / summary
new GPU architecture by Imagination Technologies (PowerVR) promises a 2.5x performance increased while using 60% less power and providing no thermal throttling problem now uses MAD 128-thread wide ALU improved multi-tasking systems allow timing guarantees for parallel GPU work
archive / summary
the article presents an overview of the Taichi programming language a data-oriented language that separates computations from data structures programmers can write algorithms as if the data structure was dense compiler and runtime will deal with the extra complexity introduced by sparse data structures can generate CPU and GPU instructions
archive / summary
the article describes the Visible GGX distribution (vGGX) sampling method mathematically proves that this results in the required probability density
archive / summary
begins with an overview of RenderDoc functionality shows what window are provided by the UI, what features they expose how to take a frame capture of a game and a basic look at how to start investigating the capture
archive / summary
part 2 of the grass shader, part 1 was discussed in issues [105](https://www.jendrikillner.com/post/graphics-programming-weekly-issue-105/) will extend the shader with tesselation, better lighting, and shadows additionally shows how this can be extended to support trampling
archive / summary
the article provides an overview of matrices introduces the idea of viewing matrices as spaces and the importance of frame of reference with this knowledge presents the different types of linear transformation and how they influence the space additionally covers translations, homogeneous coordinates, and projection matrices
archive / summary
part of Rust game programming series the article shows how to call D3D11 from Rust shows how to create a d3d11 device, swap chain and present the back buffer to the window
archive / summary
fork of the PerfDoc performance layer to detect performance issues on PowerVR hardware the article provides an overview of performance issues that the layer can detect and possible improvements
archive / summary
the article provides an overview of the lighting model used by SculptrVR designed for the hardware constraints of the occulus quest it's based on the Phong lighting and supports clay, metal, and glowing materials
archive / summary
the article provides an easy to understand overview of Variable Rate Shading shows what quality and performance can be expected with different modes
archive / summary
the tutorial explains the ddx and ddy shader functions provides a visualization of its effects shows how to use fwidth to antialias a cutoff transition from a gradient
archive / summary
the Unity tutorial shows how to use transparency to create a look through the object later uses a grab pass (copy of the screen buffer before a draw call starts) to implement a glass appearance material
archive / summary
part 2 of the shader glass material shader tutorial with Unity extends the standard lighting model to feature stringer rim lighting, stronger highlights, and a more cartoony overall look
archive / summary
this Unity tutorial shows how to use the scriptable rendering pipeline to implement up to 4 directional lights the shading model is based on the default physically-based unity BRDF additionally shows how to deal with transparency and implement a custom material UI
archive / summary
the article provides a brief overview of the YUV/YCbCr colorspace and a few complications with it then show how to use the ycbcr_sampler_conversion to sample YUV textures from a shader more efficiently
archive / summary
brief unity tutorial that shows how to implement effects that are based on the player position such as flowers spawning around the player, or stones moving to form a path in front of the player
archive / summary
the article shows the matrices between XYZ colors and sRGB colors these numbers vary from the ones found in Real-Time Rendering and Physically Based Rendering the author explains how he derived the values and why they are correct
archive / summary
the article presents an overview of techniques that are not a good fit for mobile VR applications provides brief explanations of the methods and the reasons for why they should be avoided
archive / summary
collection of tweets showcasing a large number of effects, games and technical art resources
archive / summary
a unity tutorial that explains how to create a post-processing effect that implements a Chromatic Aberration style effect
archive / summary
the article shows how the surface gradient framework (discussed in issue [102](/post/graphics-programming-weekly-issue-102/)) can be integrated into the High Definition Rendering Pipeline (HDRP) from Unity
archive / summary
a new Vulkan extension that allows developers to query performance metrics from the GPU exposed metrics are defined by the driver granularity is determined by the capabilities of the GPU, ranging from single commands to complete command buffers
archive / summary
overview of advice by the author on what candidates should be focusing on if they are interested in getting started in graphics programming positions in games
archive / summary
list of open-source rendering engines and helper libraries a mix of large, established and hobby projects
archive / summary
podcast episode for artists contains a collection of links to other articles related to PBR rendering
archive / summary
provides an overview of the raytracing execution model explains shader binding tables and why they are fundamental for raytracing APIs differences between Vulkan, DXR, and OptiX provides a tool that visualizes the required table layout for the different APIs and how to trace rays with correct offsets
archive / summary
links to Vulkan presentations and videos from Reboot Develop Red topics include Vulkan Ray tracing, mobile, and optimizations
archive / summary
research by Nvidia that investigates the influence of latency reduction and higher frame rates in the context of first-person shooters shows that high frame rates are mainly significant because of the latency reductions it provides
archive / summary
the article explains how to render lines extends the method to support different styles of line rendering
archive / summary
the paper presents a new technique that uses a neural network to reconstruct foveated rendering from sparse source data
archive / summary
the article provides an overview of the new API that allows users to request the underlying D3D12 resources from an application that is using the D3D9 on D3D12 layer
archive / summary
the article proposes a technique that uses a random texture to perturb the normals of dunes to simulate the variation caused by sand grains
archive / summary
the article provides an overview of how Vulkan descriptor set management influences CPU performance provides 3 possible solutions to the problem showing how they affect both performance and application implementation suggest a descriptor set caching scheme combined with using a single VkBuffer to store uniform data
archive / summary
D3D12 is adding two new flags for memory heap creation D3D12_HEAP_FLAG_CREATE_NOT_RESIDENT, the heap is created non-resident state to enable EnqueueMakeResident to be used for heaps D3D12_HEAP_FLAG_CREATE_NOT_ZEROED enables an optimization that allows non-zeroed pages to be returned
archive / summary
the article proposes a solution for voxel rendering voxel scene is pre-calculated into multiple vertical slices each slice is represented by an image and stores all voxel in the slice additionally contains a logic summary on how to procedurally generate a voxel-based island
archive / summary
brief article explains how to detect particle overdraw using the PowerVR profiler suggest to disable anisotropic filtering and use close fit meshes for particles
archive / summary
the author mentions the new rendering features of Disneys' Hyperion Renderer that have been used on Frozen 2 contains a large selection of stills from the movie
archive / summary
collection of tweets showcasing a large number of effects, games and technical art resources
archive / summary
the paper presents a modification of histogram-preserving tiling algorithm discussed in [issue 45](https://www.jendrikillner.com/post/graphics-programming-weekly-issue-45/) it removes the lengthy 3D optimal transport preprocessing step and replaces it with per-channel lookup tables aims to reduce clipping and ghosting artifacts provides multiple blend modes that treat quality for performance
archive / summary
the article explains the problem with the classic GPU geometry pipeline mesh shaders allow kernels to execute on sub-parts of meshes and output per-vertex and per-primitive attributes amplification shaders are run before, and output decide how many mesh shaders to launch shows code examples on how to use the feature in both HLSL and C++ API ExecuteIndirect also supports launch mesh shaders from the GPU
archive / summary
the article explains what has been added with DXR tier 1.1 it doesn't require new hardware features but needs a new windows version and driver support provides an alternative to that doesn't use separate dynamic shaders or shader tables inline shaders allow all shader stages to trace rays additionally added features are DispatchRays generated on the GPU growing state objects, GeometryIndex() in ray shaders, flags to skip triangles / procedural geometry
archive / summary
new Vulkan guide by Khronos a crucial starting point for getting started with Vulkan provides an overview of the ecosystem, components of Vulkan, tools, ... additionally contains links to specific usage patterns and further information
archive / summary
the article presents the use-case of the streaming system and texture space shading sampler feedback is a hardware feature that allows D3D12 shaders to write to a texture which MIPS has been accessed FeedbackTexture2D is a new HLSL resource type to express it the granularity of the feedback map is user-controlled
archive / summary
Twitter thread about possibilities of texture-space shading Sampler Feedback addition in D3D12 can improve the implementations
archive / summary
the paper introduces a technique for improving the computation time required for lightmap baking based on guided sampling and minimum variance-based estimator combination the method has a fixed memory footprint and is independent of scene complexity
archive / summary
the paper introduces a technique for translation of materials between different renderers using an image-based metric for uniform and texture based paramterization
archive / summary
the video shows how to modify the SDF of any geometrical shape to make its edges more rounded
archive / summary
the post introduces new D3D12 features available with latest win10 preview version DirectX Raytracing Tier 1.1 introduces ExecuteIndirect, dynamic raytracing PSO additions and Inline Raytracing Inline Raytracing allows RayQuery to be called from every shader stage DirectX Mesh Shader are similar to nvidia mesh shaders, allowing more flexibily in the vertex processing pipeline DirectX Sampler Feedback allows the recording of which parts of textures have been accessed enabling more fine grained streaming and texture space shading scenarios
archive / summary
the video explains the basic of shaders in Unity for beginners
the ARM developed sets of samples to showcase best practices for Vulkan on mobile is now open-source and part of Khronos article has list of samples and tutorials for a number of different areas
archive / summary
Khronos published a unified Vulkan Samples Repository all samples are based on the same framework and have been reviewed and are maintained by Khronos
archive / summary
the article shows the Unity shader implementation for stylized and unlit grass a geometry shader is used to spawn a variable number of grass blades based on camera distance grass movement by wind is emulated with a displacement texture
archive / summary
starts by showing how to create a small 2D world procedurally small overview of explicit vs implcit surface ray tracing then shows the steps used to render a procedural mini planet including ocean waves, mountains and clouds
archive / summary
summary of SIGGRAPH 2019 for a hybrid solution between temporal anti-aliasing with adaptive ray tracing using heuristics to detect when adaptive ray tracing provides the best improvements
archive / summary
the article presents the different meaning of the term gamma in different color contexts suggest to always use a piece-wise sRGB function
archive / summary
presents an overview of the difference between static and dynamic branching dynamic is a lot more expensive of PowerVR hardware shows examples of problematic cases with dynamic branching presents an extension that can be used to make the dynamic branch a lot more performant if all threads agree on a condition
archive / summary
introduction of marching cube pre-pass stage reduces the mesh shader example GPU time by 33% to 50%
archive / summary
collection of tweets related to VFX, shaders, and game art
archive / summary
the author presents his solution on how to implement painting onto textures using unity intersects mouse position with meshes, converting into UV space to be able to apply painting information using signed distance fields
archive / summary
the article presents the D3D12 resource state promotion and decay rules related to the common resource state mentions the AssertResourceState debug API that can be used to validate resource state promotion/decay behavior explains the ExecuteCommandLists behavior concerning resource states
archive / summary
the article presents how the author took the CPU implementation of Ray Tracing in a Weekend and converted it to run on the GPU using a GLSL implementation
archive / summary
a brief presentation by Embark Studios showing RLSL, a subset of rust compiled to SPIR-V experimental stage showing how/what it is currently implemented, vision for the future presents examples of how shaders are implemented integration into the rust ecosystem
archive / summary
the article describes how the architecture of mobile GPUs is different from PC shows why load/store operations have a significant impact on mobile present a demo application to profile the various load and store operation
archive / summary
the tutorial shows the steps necessary to render a single triangle using the D3D12 API
archive / summary
the tutorial shows the steps necessary to render a triangle in WebGL using Typescript
archive / summary
excerpt of Siggraph 2019 talk that proposes averaging of neighboring rays into cells using a jittered access + filtering to remove artifacts of discretization
archive / summary
the article shows how to use the Radeon GPU Analyzer to generate hardware native ISA disassembly, provide resource and register usage statistics
archive / summary
the article describes a demo scene effect that uses a 2D height map on a flat 2D shaded object to simulate the appearance of 3D voxels
archive / summary
next part of tutorial series shows how to extend a sphere tracing implementation in Unity to use the depth buffer correctly shows the necessary shader state changes and how to calculate custom depth output in a pixel shader
archive / summary
part 1 of a Unity tutorial series about the sand rendering in Journey show visually the contribution of the different shading components
archive / summary
a mathematical framework for more consistent layering of bump/normal maps using linear surface gradients shows the problems with reliance on vertex level tangent space in existing techniques how to express existing methods in the new framework including source code
archive / summary
high-level system discussion of a retro GPU emulation implemented in Vulak compute shaders implementation details are discussed in the presentation using Subgroup and async compute for further optimizations
archive / summary
new RenderDoc version allows explicit GPU playback selection improved SPIR-V reflection, performance improvements more extensions and feature levels supported for Vulkan and D3D12
archive / summary
proposal of approach for rendering layered materials layers are defined by anisotropic NDFs on varying tangent vector fields
archive / summary
the post describes the perspective from Stardock on D3D12/Vulkan vs. D3D11 new possibilities but also many more problems performance improvements with D3D12 need to be balanced against the higher QA costs compared to D3D11
archive / summary
proposes a real-time solution to rendering unstructured point clouds combination of temporal reprojection, random point selection, and GPU vertex buffer shuffling
archive / summary
provides an overview of the foundations of denoising techniques expands pon the basics to explain how more complex schemes are constructed how to consider denoising as a building block for several different problems
archive / summary
in-depth article that provides an overview of subsurface scattering techniques used for games presents the most common techniques found in games, Texture-Space Diffusion, Screen-Space Subsurface Scattering, and Pre-integrated Subsurface Scattering
archive / summary
the author provides an overview of problems that are encountered and make text rendering system very complex overview of terminology, overlapping glyphs, antialiasing, styling end emojis
archive / summary
presents a model to simulate erosion and transport simulation for sand due to wind the simulation can generate a large number of different dune types
archive / summary
the paper proposes the addition of a Traversal Shader stage to the DXR model this shader stage allows the programmable selection of acceleration structures presented use cases are stochastic LOD selection, choice of LOD levels based on ray type and improved multi-level instancing performance
archive / summary
the article shows how to use 16-bit floating-point types on PC hardware differences in handling between APIs and shader compilers only modern hardware supports native 16-bit instructions on PC
archive / summary
collection of tweets related to VFX, shaders, and game art
archive / summary
the article describes the characteristics of Fractional Brownian Motion commonly used for the procedural modeling of nature
archive / summary
the article shows the precalculations steps that enable PBR rendering on mobile devices irradiance map from the environment, BRDF lookup table for Cook-Torrance model and prefiltered reflections map
archive / summary
the presentation shows the new WIP hair rendering system a realtime system that is based on hair stands instead of cards strands are rasterized into shadow and deep opacity maps for performance reasons, a visibility buffer is written, and a sample deduplication pass is applied shading is done in a screen space pass shows how the different shading components have been implemented
archive / summary
the article presents guided filtering as an alternative to a bilateral filter explains the bilateral filter logic and compares against guided filtering showing what the strengths and weaknesses of both approaches are
archive / summary
the new PIX CPU timeline view shows when a thread context switch happened and to where optimized shader access tracking, significant speedup when opening the pipeline view
archive / summary
overview of denoising techniques in raytracing applications covering sampling and signal processing techniques additionally covers blurring kernels and spatial reprojection techniques
archive / summary
performance comparison of a ray tracer application using native OpenGL against WebGL (Chrome, Firefox) The GPU performance is comparable on the D3D backend, even better at times
archive / summary
Unity tutorial showing how to set up a custom render pipeline covering how to set up the project cull, filter, and sort objects add support for multiple cameras
archive / summary
overview video for the new DirectX Raytracing sample, showing a Raytraced Ambient Occlusion implementation
collection of tweets related to VFX, shaders, and game art
archive / summary
provides an overview of the ocean rendering system the system is based around hierarchical, fully dynamic ocean data sources shows how to model waves, integrate shading and realistic flow patterns
archive / summary
the article presents what kind of artifacts happen when reconstructing normals from world space positions suggests how to reduce the artifacts by selecting triangles that are most likely to have originated from the same object additionally shows how to use compute shaders and group shared memory to optimize the reconstruction
archive / summary
the paper presents a method that allows SDFs to be combined with techniques such as linear skinning this is achieved by calculating a triangle mesh hull for the SDF, applying the transformation to the hull and using this to trace tracing linearly in transformed space follows a non-linear trace in untransformed space
archive / summary
overview of what has been improved in the latest apple GPU architecture and metal sparse textures, what it is, use cases and explanation of how to use it rasterization rate maps, mask that allows defining non-linear mapping between virtual and physical render targets vertex amplification specifies which vertex calculations can be shared between multiple viewports and which ones are unique per viewport better argument buffers, allow access to 500k textures and multiple levels of indirection
archive / summary
the paper presents a new scheme that allows selectively combining different Monte Carlo rendering algorithms allow the use of less computational complex algorithms for more straightforward light transport cases and more sophisticated algorithms for more complicated cases enables to reduce the overall amount of noise in the same render time
archive / summary
the article explains how vertex shaders in "Our Machinery" engine is handled all vertex data is explicitly loaded in the vertex shader shows how a more flexible skinning variation can be implemented
archive / summary
excerpt from the [Siggraph talk](https://developer.nvidia.com/siggraph/2019/video/sig918-vid) talk overview of the mesh shading demo culling implement in task shader frustum calling also is done in the meshlet shader stage, since only parts of the model could be visible on screen
archive / summary
DRED can now include PIX markers additional string events can be attached to markers debugger extension has been updated to provide access to the information
archive / summary
the presentation explains how lightmap baking has been implemented in [Wicked Engine](https://github.com/turanszkij/WickedEngine) how to ray trace with D3D11 compute and/or pixel shaders discusses artifacts, limitations, UV packing, texture formats, and filtering the resulting system is an object space shading system
archive / summary
Metaballs2 demo has been updated the demo shows how to use mesh shaders and now provides a compute shader fallback version allows switching between both implementations compute shaders require extra memory to store intermediate results
archive / summary
interview discussing the details of the Gear 5 implementation all post-processing and UI rendering is done post-upscaling in the output resolution using [Relaxed Cone Stepping](https://developer.nvidia.com/gpugems/GPUGems3/gpugems3_ch18.html) for extra details instead of parallax occlusion mapping a mix of shadow maps and ray-traced distance field shadows
archive / summary
tutorial explaining how to implement a Caustics effect in unity uses a tileable texture, that is sampled multiple times slight offsets in RGB sample locations allow for color shifting across channels
archive / summary
the article presents an overview of performance methodology to detect performance issues earlier including the building of test scenes, early clarification of constraints and constant checking of assumptions setting budgets early simplifies expectations and possibilities
archive / summary
overview of the state of WebGPU in safari Web Shading Language is a new text-based shader language, now supported presents compile-time and size comparisons against SPIR-V based implementations
archive / summary
looks at the behavior of texture sampling in divergent code flows on different hardware undefined behavior that is handled very differently depending on the GPU hardware
archive / summary
GPU assisted validation for VK_EXT_buffer_device_address SPIRV-opt can now retarget shaders to use RelaxedPrecision without requiring source-level changes
archive / summary
the paper discusses the design of the Mitsuba 2 renderer based on a combination of generic algorithms and composable compile-time transformations demonstrates the approach with Polarized light transport, coherent Markov Chain Monte Carlo (MCMC) exploration, caustic design in heterogeneous media with multiple scattering
archive / summary
collection of tech art tweets, many gifs, and videos showing a large variety of effects and art styles
archive / summary
the paper proposes a new weighting heuristic for multiple importance sampling taking into account variance estimations shows how to integrate the solution into Bidirectional path tracing
archive / summary
the paper presents novel integral formulations for volumetric transmittance it enables the use of Monte Carlo estimator variance analysis comparison of different estimators for different scenarios
archive / summary
guide by Roblox for the career development of rendering engineers what jobs are required, how to learn and personally take control of directed development
archive / summary
summary and links to the video recordings from Unity talks at SIGGRAPH 2019
archive / summary
the first release of a new open-source D3D12 memory allocator project by AMD
archive / summary
a walkthrough that explains a Unity water shader implementation the shader is designed to be easy to use, control and extend
archive / summary
the article discusses the image quality difference between film and realtime rendering presents that games are overly sharp and what future developments might look like
archive / summary
the article presents a hybrid technique between Screen space reflections and ray-traced reflections shows comparisons between the two methods, differences, strengths, and weaknesses
archive / summary
OpenGL tutorial that teaches the concepts required to render a textured mesh
archive / summary
Microsoft is now offering pre-built binaries of the shader compiler on GitHub
archive / summary
the article presents different techniques to generate ray traced shadows compares the performance of using Any Hit, Closest Hit or Miss Shader to determine if the ray has been occluded
archive / summary
intro to computer graphics from University of Waterloo summarized in one slide deck
archive / summary
slides for the Advances in Real-Time Rendering in Games are starting to be released
a brief historical look at the rendering pipeline what aspects mesh shaders can improve explanation of programming model what new programming approaches it enables
archive / summary
overview of the interactive wind system in God of War discussion wind fluid simulation, wind sources, receivers, and interactions authoring pipeline, best practices, and algorithm implementation details
archive / summary
a presentation covering the volumetric effects of Red Dead Redemption 2 talks about the data model, rendering and scene integration covering clouds, fog, sky, light shafts
archive / summary
instruction set documentation for the new AMD RDNA GPU architecture
archive / summary
frame breakdown of a Resident Evil 2 presents the different stages found in the frame deferred rendering engine, heavy use compute and indirect draw
archive / summary
the article presents a distance for function for ellipsoid how to improve it for better control and better interaction with other primitive types
archive / summary
the article discusses how to build a correct CPU occlusion sorting structure
archive / summary
slides for Siggraph 2019 course talking about the state of ray-tracing state-of-the-art in hardware and software developments provides a history and vision of where ray-tracing in games is going to develop
archive / summary
the detailed article explains how to tile-based rasterization works show how to implement rasterization using this design includes SSE and multithreaded implemenation
archive / summary
course notes for the Siggraph 2019 course part 1 focuses on the necessary background knowledge provide an insight into movie production requirements and mathematical foundation part 2 focuses on materials (acquisition and production requirements) showing practical efforts, achievements and problems encountered
archive / summary
the article discusses the foundations of alpha compositing explains the different compositing operations show how to use pre-multiplied alpha to eliminate common problems explanation of filtering, interpolation, blend modes, and additive blending
archive / summary
collection of VFX tweets of the week tutorials, demos, and showcases of great looking effects
archive / summary
the article discusses memory management in Vulkan and D3D12 shows differences in API and exposed features discussion resource allocation, mapping, cache invalidation, memory budgets, and resource residency
archive / summary
presents problems with the Fresnel equations when applied to sRGB data model is only accurate when the parameters are carefully selected comparison against the Schlick model offers an extension of the Schlick model for more accuracy and control
archive / summary
the article contains the links to the build-in Shadertoy media files useful when implementing an effect based on reference found on Shadertoy
archive / summary
presents Axis-Aligned-Bounding-Tetrahedron (AABT) and Axis-Aligned-Bounding-Octahedron (AABO) as alternative approaches to axis-aligned Bounding Boxes (AABB) to build acceleration structures displays the data structures in 2D and extends into 3D showing results and possible proposals for more research into the topic
archive / summary
frame breakdown of a single frame in the Anki engine clustered deferred engine discussing shadows, Screen space ambient occlusion, global illumination, Volumetric lighting/fog, reflections, tone mapping, and compositing
archive / summary
the article explains what wavefront path tracing is how it enables efficient path tracing on GPUs implementation provided in [Lighthouse 2](https://github.com/jbikker/lighthouse2/blob/master/README.md)
archive / summary
provides an overview of Vulkan pipeline caching list of possible problems that can be encountered different driver behavior and IO issues require user code validation shows the system used by Roblox to validate the cache
archive / summary
slides for the High-Performance Graphics 2019 conference are now available topics include raytracing, 3D text rendering, denoising, many light techniques, shadows, VR and more
archive / summary
A Shadertoy that shows the different components the define physically based rendering with explanations and demos of the separate components
archive / summary
GPU based validation in Vulkan has been updated now supports more cases, the article explains which are currently supported the whitepaper provides more details
archive / summary
Radeon GPU Analyzer can now compile compute shaders to the target ISA without having to have the GPU installed in the host machine the article explains how the shader compiler pipeline works and the different ways to express the required information
archive / summary
an article explains the dot product and how it relates to the plane equation
archive / summary
shows how the dot product and axis define matrices dot products can be used to decompose effects onto the axis 3 axis represents a 3x3 matrix
archive / summary
the article shows that with the inverse-transformation applied to a ray origin and direction intersection tests can be done against the untransformed geometry
archive / summary
explains a renderer architecture that separates command generation from execution commands have an associated sort key that is used to determine the execution order shows how to handle materials, resource updates and some advice for debugging such a system
archive / summary
video recording of the i3D keynote discussed in detail in [issue 88](https://www.jendrikillner.com/post/graphics-programming-weekly-issue-88/) additionally contains the QA that is not covered in the slides
survey by the ASTC Khronos group to understand compression use in games
a paper about a new hair rendering technique the technique is a hybrid between strand-based rasterizer and volume-based raymarching example implementation is available [here](https://github.com/CaffeineViking/vkhr)
archive / summary
video recording of the talk discussed in detail in [issue 87](https://www.jendrikillner.com/post/graphics-programming-weekly-issue-87/)
explains how to implement line lights using a Most Representative Point (MRP) approximation finds the point with the most significant contribution along the line and treats that as point light source
archive / summary
D3D12 motion estimation support exposes access to the motion estimation hardware found in supported GPUs resolved motion vectors are stored in 2D textures, ready to be used by other application stages the article presents the API
archive / summary
discusses a new renderer project aimed at providing a high-performance to enable ray tracing research split into layers to provide application logic, scene representation and actual render codes render codes are plugins that can be shared
archive / summary
shows how to compile the Basis command line tool use it to compress a texture and runtime code required to load it into a metal application
archive / summary
the timing capture view now supports GPU workload visualization the article shows the different features overlapping GPU work on the same queue and on different queues can be visualized
archive / summary
the article explains how to use the DXC compiler API compile a shader, shader reflection, and signing
archive / summary
updated page with all raytracing related sessions, talks and papers from Siggraph 2019
archive / summary
Twitter thread about modern APIs strengths, weaknesses, opinions, and suggestions for an alternate design
archive / summary
the paper presents a new technique that allows the generation of spectral data from sRGB source data
archive / summary
open source and well-commented implementation of a spectral path tracer provides support for the previously discussed technique
archive / summary
Vulkan techniques used to achieve better performance on the Nintendo Switch how to measure performance using timestamps
archive / summary
video recording of talk about the SEED halyon engine, was discussed in [issue-65](https://www.jendrikillner.com/post/graphics-programming-weekly-issue-65/)
archive / summary
slides that present common problems with mesh data what problems geometry processing algorithms need to support possible solutions to a few common problems
archive / summary
HLSLexplorer, a tool which helps in understanding how HLSL code gets translated to hardware assembly added support for D3D12 preview and other quality of life improvements
archive / summary
part 1 of a Unity tutorial that shows how to create 3D geometry offset from a texture and corresponding heightmap
archive / summary
collection of VFX tweets of the week tutorials, demos, and showcases of great looking effects
archive / summary
presents a technique that improves the handling of nested dielectrics in ray-tracing example for nested dielectrics is "ice cubes in a drink in a glass" tracking entering / existing geometry + priority system to handle overlap cases
archive / summary
the tutorial shows to create custom nodes in Unity Shader Graph shows to implement Vertex painting using shader graph and use it for a variety of effects
archive / summary
presents an algorithm for scheduling work in a render graph architecture
archive / summary
extension for WinDbg that enables debugging of Device Removed Extended Data the post shows how to track and find the reason for a GPU device lost error caused by a page fault
archive / summary
presents how to use the Ambient Dice to store the GGX specular component alternative storage scheme instead of spherical harmonics
archive / summary
derives weighting functions for Multiple Importance Sampling (MIS) that minimize the variance of an MIS estimator
archive / summary
a new strategy for the generation of stratified samples using the concept of orthogonal arrays from statistical experiment design
archive / summary
the article explains how to generate high-quality blue noise
archive / summary
next part in the article series about the implementation of a scriptable render pipeline in Unity adds support for multiple LOD levels per object switching between LODs is implemented using a dithering transition
archive / summary
explains gamut mapping techniques difference perceptual and clipping techniques shows how gamut mappings are derived
archive / summary
shows how the fog in The Witcher 3 has been implemented combines aerial fog and an artist-controlled fog coloring based on a gradient from 3 colors (front to back) uses AO information to darken the fog in occluded areas
archive / summary
list of sessions from SIGGRAPH 2019 that are related to ray tracing techniques
archive / summary
new extensions in AMD driver VK_EXT_full_screen_exclusive, allows application to enter fullscreen mode such as IDXGISwapChain::SetFullscreenState VK_EXT_separate_stencil_usage allows separate depth and stencil states VK_AMD_display_native_hdr, better HDR support for FreeSync 2 monitors without requiring AMD libraries
archive / summary
support for GPU timing data in the new timing capture view a lot of GPU capture improvements
archive / summary
new glint integrator for specular surfaces using multiple-scattering patch-based BRDF addresses energy loss introduced from classical normal mapping uses normal maps and second moments of slopes as in [LEADR mapping](https://hal.inria.fr/hal-00858220v1/document)
archive / summary
shows a new version of voxel-based path-tracing based graphics engine provides an overview of the implementation
archive / summary
new path tracing sampler techniques distributed per-pixel samples so that errors are distributed as blue noise in screen space provides C++ source code comparison against other methods at various sample counts
archive / summary
the paper builds on the techniques described in the previous article introduces a temporal algorithm that locally permutes the pixel sequences improves error distribution for a series of frames
archive / summary
describes how to support unbounded arrays of textures in Vulkan presents two techniques to solve validation errors first fills unused slots with a know valid texture descriptor second shows the required extensions to enable partially filled descriptor sets
archive / summary
shows how to implement raytracing against a Signed Distance Field (SDF) extends this to use sphere tracing
archive / summary
a master thesis that describes a progressively path-traced solution for indirect illumination lightmaps on the GPU covers parameterizing geometry into lightmaps, improving coherence in a path tracer, reducing variance and spherical basis functions presents a new way to store diffuse and specular irradiance using an Ambient Dice encoding scheme (additional post below)
archive / summary
explains how to extend the Ambient Dice basis function to store and evaluate both diffuse and specular irradiance
archive / summary
explains how branching on GPUs is commonly implemented explains what divergence is, impact on performance and how to reduce it GPUs use an execution mask to hide results from inactive threads shows how this looks in GCN ISA and AVX512
archive / summary
describes the surface gradient framework a framework for robust processing of height maps, height volumes, and normal maps explains the Preliminaries (Tangent Frame, Height Maps, and Volumes, Wrinkled Surfaces)
archive / summary
explains how to combine sampling of projected spherical caps and multiple importance sampling source code provided
archive / summary
collection of VFX tweets of the week tutorials, demos, and showcases of great looking effects
archive / summary
an updated article explaining color blending with OpenGL how the blend operators work and what premultiplied alpha is
archive / summary
hardware overview of the new architecture for AMD GPUs now uses 32 or 64 waves wide operations unified cache hierarchy including compression for all stages
archive / summary
the article shows what changes have been introduced with Metal 3 including metal support for the simulator cleaned up feature levels into families
archive / summary
the article shows what changes have been introduced with Metal 3 covers additional details compared to the previous article
archive / summary
the paper investigates using the raytracing hardware support added in Turing GPUs to accelerate other tasks uses the hardware to detect in which tetrahedral mesh a point is located can achieve better performance than pure CUDA implementation
archive / summary
breakdown of two frames in the game very little instancing all render targets are manually packed into 32-bit formats rats use a 4 level LOD system, and only the last level is instanced
archive / summary
the presentation explains the stages a triangle is passing through while being processed for rendering starts with a brief look at the software layers provides more details on lower-level hardware layers
archive / summary
Windows Version 1903 adds a new variable refresh rate option enable VRR in older D3D11 games if the hardware supports it
archive / summary
beginner level explanation of the rendering pipeline for games explains how game worlds are defined, and models are converted into something that can be seen on the screen
archive / summary
explains what a Vulkan pipeline cache is, why developers want to use it presents best-practices
archive / summary
keynote from I3D presenting the challenges modern open world games such as FarCry need to solve presents an in-depth case study for Multiscattering BRDFs & Area Lights research investigation, implementation combinations with other techniques
archive / summary
part 1 of article series about Global Illumination overview of terms and concepts required to understand Global Illumination solutions
archive / summary
a paper about Dynamic Diffuse Global Illumination solution builds on the terms explained in the previous article presents an overview of the problems the technique tries to solve provides implementation details
archive / summary
collection of best practices and pitfalls when using Vulkan on Nvidia hardware many of the guidelines should apply to other hardware manufacturers too
archive / summary
the article presents a comparison between two different sampling strategies for environment maps tested on three environment maps with very different characteristics
archive / summary
presents an overview of what requirements need to be met on AMD to enable color compression on render targets and what causes DCC to be disabled look at barriers and copy queue usage
archive / summary
presentation with a collection of options and debug modes that help with debugging provide a safe mode to disable optimizations and use API validation layers overview of tools available and APIS to add more debug information
archive / summary
presents how ray tracing is integrated into the High Definition Render Pipeline (HDRP) a brief overview of the Unity raytracing API integration shows how different effects have been implemented including optimizations and performance results
archive / summary
shows how to use HLSL to write a raytracing implementation using the Nvidia Vulkan extension uses recently added DXC support to compile the shaders updated docker image to provide the shader compiler support
archive / summary
presents how the Unity demo was made overview of skin/hair/eye/teeth shading facial animations used scanned information, at runtime need to resolve positions for hair details about how the tentacles were created for the different use cases based on Hermite splines, signed distance fields and divergence-free noise and skinning
archive / summary
overview of the deferred decal solution uses bindless resource binding model decals are part of lighting shader and don't modify the Gbuffer presents use-cases, common problems, and optimizations for deferred decals includes a lot of code samples to explain the concepts
archive / summary
a new release, range profiler provides detailed metric graph about the performance of the application rules can be written to trigger custom performance warnings ray tracing acceleration structures can be exported and inspected independently
archive / summary
summary of the Quake II path tracing implementation presented in 3 video parts with notes covering Path Tracing theory, denoising and the path tracer implementation
archive / summary
Nvidia helper library to simplify the integration of Variable Rate Shading the user only needs to provide eye positions and select performance presets the library creates/updates/manages the required API resources
archive / summary
the author presents what makes a graphics system paper papers that introduce new systems and are not necessarily introducing new discoveries provides what paper authors and reviewers should focus on
archive / summary
new point based shadowing algorithm for local area lights better quality than single view and less performance required than multi-view solutions generate a multi-viewpoint pointset for the area light projecting points into many depth buffers at once
archive / summary
tutorial series covering Unity's scriptable render pipeline explains how to combine real-time lighting with baked shadows
archive / summary
presentations that talks about the state of rendering how did we get to today's state and what might be the next steps ideas about challenges, workflow, and research meant to challenge ideas and start a discussion
new representation approach for spectra shows use in offline raytracing and real-time D3D12 application a variable number of momements can be used to match quality and performance constraints the source provided in C++, HLSL, and Python
archive / summary
database with articles that were previously covered in Graphics Programming Weekly central location that aims to make it easier to discover/rediscover graphics programming information
archive / summary
open source release of the Basis Universal texture codec similar compression as .jpeg but allows textures to stay compressed on the GPU transcode from a common format into compressed GPU formats at runtime
archive / summary
collection of VFX tweets of the week tutorials, demos, and showcases of great looking effects
archive / summary
presents the GPU based light mapper implemented in Unity, based on Radeon Rays how to design for GPU occupancy and efficient cache usage
archive / summary
overview videos of the hair rendering in Frostbite later parts will contain details about the implementation
archive / summary
master thesis trying to answer if raytraced real-time ambient occlusion is a viable option for games providing path tracing theory, an overview of implementation (Vulkan) presents the theory behind ambient occlusion comparison for performance and quality with existing real-time techniques
archive / summary
proposed antialiasing technique combines rasterization with ray tracing uses ray tracing to collect extra samples when information from previous frames is not available run FXAA on the fast moving parts on the edges of the screen to reduce cost
archive / summary
Microsoft GDC 2019 presentation about variable rate shading (VRS) presents the history of techniques and what problems VRS is designed to solve how VRS works introduction into the API how it performs on Intel hardware results by Firaxis in Civilization
archive / summary
presentation video recordings have been released a large variety of topics are covered VFX, modern rendering features for 2D games, layer materials, raytracing, color management, Vulkan and many more
archive / summary
a new skinning algorithm that removes the need for iterative calculations from delta mush skinnings the algorithm aims to reduce the manual skinning requirements quality comparison against existing skinning techniques
archive / summary
a master thesis that demonstrates how to use multiple GPUs with Vulkan comparison of sharing work by dividing the screen or recomposition of rendering results
archive / summary
shader tutorial aimed at beginners that teaches shader fundamentals using Panda3D and GLSL starting with the basics of coordinate spaces, and GLSL shaders shows how to implementing texturing, lighting, normal mapping additionally outlining, fog, bloom, screen space ambient occlusion, depth of field and several stylization techniques
archive / summary
explains tone mapping terms and how the human vision perceives changes in luminance the viewing environment has a significant influence on the perceived dynamic range shows how different display technologies deal with bright pixels and what artifacts they produce FreeSync provides information about the HDR capabilities of a connected to monitor to the application to be able to adjust the tone mapper accordingly
archive / summary
paper on path trace denoising aimed at interactive scenarios with 1 sample per pixel using linear regression and temporal anti-aliasing combined with many problem-domain specific improvements
archive / summary
Vertex Descriptors in Metal allow the programmer to describe the memory layout of vertices shader compiler inserts the necessary fetch logic to read the data correctly this allows decoupling of vertex memory layout from the usage in shaders
archive / summary
shows how to implement Asymmetric Projection adjust the projection on a render-to-texture in 3D space so that it appears as if the viewer is looking through a portal into another 3D space
archive / summary
the new version adds support for hardware-level tracing on an instruction level now shows the ISA inside of the pipeline view too support for user markers have been added a small overview of how to interpret the provided data
archive / summary
video for article discussed in [issue 76](https://www.jendrikillner.com/post/graphics-programming-weekly-issue-76/)
archive / summary
the tutorial shows how to use BGFX running on Linux initialize BGFX, load shaders, and models and draw a cube on screen
archive / summary
example project for a course teaching the basics of shader development using Unity covers vertex, pixel, surface shaders additionally talks about Shader Graphs and post-processing
archive / summary
collection of VFX tweets of the week tutorials, demos, and showcases of great looking effects
archive / summary
presents what kind of approximations are still required to be done in Physically Based Rendering opens the question that we should start looking at the approximations to determine where to focus on for the next generation of visuals
archive / summary
proposal of requirements that would allow WebGPU to be used as a common cross-platform abstraction
archive / summary
describes an alternative bounding structure that is based around axis aligned triangles starts with 2D example and extends the concepts to 3D comparison against other bound object representations
archive / summary
overview video of papers that will be presented at SIGGRAPH 2019
archive / summary
describes the cross-platform shader pipeline mix of json description files for state / constants / vertex layout / ... code generator used to generate the final shader for compilation cross-compilation pipeline for platforms that don't support HLSL
archive / summary
Vulkan 1.1 will be a requirement on 64-bit devices starting with Android Q [Thermal API](https://developer.android.com/preview/features#thermal) will be added to allow games to react to thermal status changes
archive / summary
tour of TensorFlow Graphics allows to define 3D scenes and run training on them system to allow bi-directional machine learning techniques
archive / summary
presents the history of 2D printing and font formats shows problems with implicit curve evaluations discussion of implicit surfaces in regards to 2D rendering
archive / summary
interview describing the reflections that have been implemented in the [Neon Noir Demo](https://www.cryengine.com/news/crytek-releases-neon-noir-a-real-time-ray-tracing-demonstration-for-cryengine) merging voxel and ray tracing data only tracing rays for mirror-like surfaces and the beginning of rays, otherwise tracing voxels instead
archive / summary
a method based on stochastic light culling hierarchical Russian Roulette using an approximate scattering lobe does not support perfectly specular surfaces
archive / summary
brief Unity example that shows how to render a basic fur look combination of vertex offsets and alpha blending
archive / summary
overview about how to design a game to run all logic in Vulkan shaders compute shaders to run the game logic and updating the game state draw management is done using a compute shader and draw indirect is used for the final draw submission
archive / summary
Dynamic Diffuse Global Illumination overview of the evolution of several indirect illumination techniques how the method tries to solve the problem of Irradiance Probes summary of the implementation and evaluation in different scene contexts
archive / summary
reverse-engineering the cloud rendering of The Witcher uses a texture based approach, including normal mapping the clouds uses a sky gradient to lighten the clouds close to the sun
archive / summary
explains how to apply a screenspace Bayer dithering pattern in Unity
archive / summary
presents how Granite deals with vkPipeline management API designed for user convenience hashmaps used for control of the different state combinations pre-warmed with information from previous runs using [Fossilize](https://github.com/ValveSoftware/Fossilize)
archive / summary
explains a code generation method to generate helper functions to make indexing into unbounded resource tables more convenient uses glslang symbol information to auto-generate accessor functions
archive / summary
explains the BHH (Bounding Half-Space Hierarchy) data-structure allows sorting of 3D objects with sublinear search
archive / summary
bibliography file containing 2000+ entries, in computer graphics, rendering, transport theory, and statistics
archive / summary
part 3 of the volumetric cloud rendering series the code has been released on [github](https://github.com/sergeneren/Volumetric-Path-Tracer) Open VDB is used to store volumetric data
archive / summary
a twitter thread that provides an overview about how games, especially in regards to texturing, have changed since the 90s
archive / summary
presents the rendering architecture used for the raytracing demo uses nearby pixels to fill in missing lighting information temporal reprojection is used to gather extra information from the last 6 frames
archive / summary
overview of the state of graphics API wrappers and libraries for rust
archive / summary
explains 3D camera projections shows the influence of the camera FoV and how it changes the perceived image presents how to calculate a perspective and orthographic projection matrix
archive / summary
shows how to convert effects from unity shader code to use the ShaderGraph system
archive / summary
shows the window system abstraction can be used to render to a window or into an offscreen render target how to allocate temporary data that is only required for the duration of the frame
archive / summary
the article describes the process to locate a bug in Babylon.js PBR pipeline comparison against other rendering engines confirmed the problem caused by the difference between spherical polynomials and spherical harmonics
archive / summary
shows the effect on PBR scene when no tone mapping is applied why tone mapping is required and explanation of exposure presents how to calculate luminance and the final average exposure required
archive / summary
presents the process of tone mapping and how curves are used shows different kinds of tone mapping curves and their final result highlighting what different considerations need to be considered when deciding on a solution
archive / summary
new PIX version contains a preview of a new timing view will support larger capture durations, up to hours designed to better visualize a large amount of data collected preview because a large number of features are still missing team is looking for feedback
archive / summary
presents how render passes are expressed in the user-facing API shows how layout transition for external dependencies are handled separate logic for user-created, WSI images and transient images suggests that barriers should be treated at a higher level inside a frame graph architecture
archive / summary
presents a new technique for a stochastic sampling of spherical area lights that is suitable for GPU implementations able to reduce noise from unoccluded areas significantly based on cutting the projected spherical cap into disks and sampling the disks instead
archive / summary
the second part of the volumetric cloud rendering series explains transmittance and phase functions 3D path visualization that presents how phase functions influence the way rays traverse the volume
archive / summary
an extended version of the GDC 2019 talk overview of AABB and BVH shows how to build a BVH using bottom up and top down building algorithms and update dynamically presenting different strategies
archive / summary
explains how to create a layering parallax effect to simulate the inside of a marble using ray marching
archive / summary
presents how memory, object lifetime and command buffers are managed resource lifetime is bound to a frame context frame context tracks which resources can be deleted once the frame has been consumed
archive / summary
PDFs for all AMD presentations from GDC 2019 have been posted
archive / summary
shows the Cooperative Matrix extension for Vulkan the extension enables matrix multiplications to be computed across a subgroup enables better shader optimizations and allows the use of tensor cores on Turing GPUs
archive / summary
explains the HSV colorspace and how to convert it to RGB
archive / summary
using a Forward+ rendering pipeline and raytracing for shadows presents a frame breakdown of the main rendering passes acceleration structure for skinned objects is updated via UAV writes from a vertex shader
archive / summary
shows the different spaces that are typically involved in 3D rendering how to transform between the different spaces visually shows the effect of the transformations
archive / summary
series on rendering of volumetric clouds shows how to sample the sky lighting contribution using a sampling scheme that places more samples in the bright sections of the sky
archive / summary
Flax engine now fully supports a Vulkan backend better performance than the D3D12 implementation
archive / summary
D3D12 is starting to allow GPU drivers to implement shader optimization in a background thread provides an API to control the driver behavior
archive / summary
presents how the snow simulation has been implemented and how it was optimized for Intel GPUs supports dynamic melting and build up of snow tesselation stage is used to generate the snow mesh
archive / summary
presents the shader binding model used by granite user binds resources to sets and bind points on a per-resource basis Vulkan descriptor set management is not exposed to the user
archive / summary
vulkan extension that allows progress markers to be inserted into the Vulkan command stream these can be used to detect the range of draw commands that have caused a GPU device error a short overview of how it is used in X-Plane
archive / summary
a brief overview of the rasterization process look at the logical rendering pipeline model presents the different components that are used to implement pipeline in hardware implementation details about the different stages
archive / summary
Ray Tracing Gems is now also available as a free Kindle version
archive / summary
presents an overview of the general flow of a frame of the game a more detailed look at the acceleration structures used for the raytraced GI implementation
archive / summary
looks at the composition of transparent objects, lens flares and at terrain tessellation presents more images from the acceleration structures and problems discovered with it
archive / summary
Microsoft released the engineering specification for Direct3D 11 and 12 including DXR
archive / summary
all GDC content from Nvidia is now available for download (free login required)
archive / summary
shows which tools are available to look at the shader disassembly for AMD GPUs presents the instructions generated for a simple shader and overview of some of the instructions used shows the effect of code changes to the code generation
archive / summary
preprint of I3D paper that will be presented in May AO calculations are split into large-scale interactions based on sphere approximations finer details are created using linear interpolation from key points on the spheres both components are trained against ground truth data
archive / summary
overview of the latest extensions added to Vulkan on Nvidia GPUs mesh shader motivation, execution model and how to use them barycentric coordinates extension subgroup overview and tensor core access texture space shading derivatives in compute shaders
archive / summary
discusses the authors' thoughts about abstraction levels in graphics APIs presents the motivation for the design of the granite engine API
archive / summary
provides a look at the 3DFX VOODOO1 GPU from the mid-90s shows how the hardware and rendering pipeline was designed comprising between the visual result of the software renderer and the GPU acceleration
archive / summary
a tutorial that explains how to render grass using Unity uses a mix of geometry and tesselation shaders covers how to generate geometry from the geometry shader, explains tangent space, and adds vertex attributes tesselation shader is used to control the density of the grass wind is applied to make the grass move lighting and shadows are added
archive / summary
walkthrough of a simple cloud shading setup using the Unity shader graph system
archive / summary
with Windows Server 2019 or Windows 10, version 1809 GPU acceleration for Direct3D based workloads is now supported in Docker also enabled Windows ML hardware acceleration
archive / summary
describes how cubemap pre-filtering for image-based lighting is done in Unity’s HD Render Pipeline derivation of the filtering equation and comparison against the [split sum approximation](https://cdn2.unrealengine.com/Resources/files/2013SiggraphPresentationsNotes-26915738.pdf) used in UE4
archive / summary
windows update 19H1 supports GPI based validation with shader model 6, generated by the [DXC](https://github.com/Microsoft/DirectXShaderCompiler) compiler
archive / summary
presents the Creation Graph a graph-based system that allows the definition of functionality, which mixes GPU and CPU based work in a single graph examples presented: cubemap filtering for image-based lighting and skybox rendering
archive / summary
collection of tweets related to a variety of tech art articles many great looking effects
archive / summary
videos and slides for GDC 2019 have been released on the vault
archive / summary
presents techniques used to alleviate ghosting in the TAA solution of "The Grand Tour Game" uses the stencil to mark object groups and does not blend between with history buffer pixels when the stencils differ uses per-pixel depth and velocity to disable TAA so as to further reduce ghosting on shadows
archive / summary
presents the coordinate conventions for Metal, OpenGL and Vulkan how they differ and how to deal with the difference in a mixed API scenario
archive / summary
series part 1 of the reverse engineering of The Witcher senses explains how objects are selected using the stencil buffer
archive / summary
reverse engineering of The Witcher sense effect show how the outline for objects is generated
archive / summary
explains how the inputs from part 1 and 2 of the series are combined using a fullscreen effect
archive / summary
part 3 of tutorial series in building a path tracer in Unity shows how to trace a ray against a triangle and extends this by integration of Unity mesh interactions from the scene
archive / summary
new Nsight graphics release adds improved DXR support, D3D12 fence visualization and Vulkan support for the range profiler
archive / summary
whitepaper presenting the Autodesk uber surface shader based on the Arnold shading model based on ten components that are layered and mixed hierarchical to form the final surface appearance defines a "preview" model that simplifies the shading model for real-time use shows the effect of the individual components and exposed parameters partial Open Shading Language implementation is provided
archive / summary
presents how to render maps using WebGL shows how to convert color maps to elevation generate normal maps from a height map apply soft shadows, ambient lighting and combine with color map information
archive / summary
collection of resources aimed at helping beginners get started with graphics programming
archive / summary
overview of Variable Rate Shading which is starting to become part of the D3D12 API will have a two-tier hardware support level tier 1: per draw shading rate changes tier 2: can vary shading rate within a draw, with a screenspace image or per-primitive
archive / summary
next Windows update will add support for library subobjects these allow configuring raytracing pipeline state from HLSL, removing the need for boilerplate C++ code
archive / summary
youtube playlist with all Khronos talks from GDC 2019
archive / summary
the author presents his thoughts on the current state of raytracing in games where it can bring an advantage, weaknesses and the need for hybrid solutions how it might influence art direction
archive / summary
explores a stable filter further presents a new test that can be used to validate the filter quality better performs experiments to find a filter that is stable and introduces less blurring than the filter discussed in part 1
archive / summary
ARM released a best practice guide for Vulkan consists of runnable samples that show best-practices and shows common performance pitfalls on-screen information visualizes the performance impact of different methods
archive / summary
look at the disassembly for parts of the skydome, sun, and stars shader from The Witcher
archive / summary
covers overview of color theory, color spaces, and encoding presents what problems FreeSync 2 solves and what guidelines it requires hardware manufacturers to follow
archive / summary
list of best practices for ray tracing how to manage the acceleration structure construction and building efficiently how to manage pipeline objects, shaders, and resources denoisers and memory budget
archive / summary
occupancy graph is now supported on Turing GPUs too Variable Rate Shading is supported
archive / summary
a small article explaining the difference in the viewport coordinate system when using Vulkan compared to OpenGL shows how to flip the viewport to match OpenGL convention
archive / summary
presents how to precalculate an energy preserving microfacet BRDF with a diffuse-like lobe
archive / summary
presents the authors' views on "do"'s "do not"'s for the future use of raytracing in games how RTX gives new opportunities and also challenges performance vs. quality tradeoffs will still be required, and raytracing will not make this simpler
archive / summary
the latest update adds support to run the D3D12 game on windows 7 user mode d3d12 implementation without win10 kernel level optimizations no public information about the implementation details yet
archive / summary
source code for the Ray Tracing Gems has been released
follow up to the post discussed in [issue 75](/post/graphics-programming-weekly-issue-75/) presents a way to speed up the presented technique by 2.34x discussion of the rendering error using the Eric Heitz method discussed above
archive / summary
pix for windows now supports High-Frequency Counters This allows that hardware counters are sampled multiple times per draw/dispatch and allows further insight into GPU activity
archive / summary
a ray tracing system for Wolfenstein 3D using only WebGL 1 a hybrid approach, raytraced shadows, diffuse GI and reflections overview of the implementation for the different elements how to apply temporal stability and noise reduction filters
archive / summary
explains the concepts of textures, mip-mapping, sampling shows the different filtering, addressing mode available on texture samplers describes how to use DirectXTex to load textures and upload them into GPU memory introduction into compute shaders and how to use them to generate mipmaps
archive / summary
a new low distortion mapping between squares and triangles that is also cheap to compute can be used for random sampling of points with a uniform density
archive / summary
program for the I3D conference in Montreal has been published
archive / summary
presents 3 optimizations that can be applied to BVH to increase performance usage of inverse ray direction, ray traversal early-out and surface area heuristic for construction of the BVH the comments contain a few more tips for increased performance
archive / summary
a new technique for continuous level of detail generation of point clouds, designed for VF applications additive point storage, each point is assigned to one level compute shader used to iterate over all points, time-sliced over multiple frames, and builds a new vertex buffer that only contains required points each point is classified into distinct LOD levels + a random factor, this makes it possible to allow the set to be changed continuously points have a blend zone to reduce aliasing, in this zone point sizes are adjusted so that they gradually are blended to the final extent as the camera approaches the points
archive / summary
explains how the lightning effect in The Witcher 3 has been implemented based on a tree-like mesh that is expanded based on the normals and additive blending
archive / summary
explanation of half-pel filters shows properties of different filters common in video compression and how they perform when applied multiple times common filters are "unstable" when executed multiple times the feedback loop causes the results to be oversharpened until the results become unrecognizable presents a filter that does not have a feedback loop problem and converges to a slightly softened but stable result
archive / summary
survey about the Vulkan memory allocator library how it is used, how the experience is and what features are you used or are missing
getting started guide that shows how to use the bgfx library initialize the library and render a cube to the window
archive / summary
overview of the state of graphics APIs in Rust presents wgpu-rs, a higher level API based on the [WebGPU](https://www.w3.org/community/gpu/) API that is being designed for use in the browser
archive / summary
overview of particle system samples that have been created with the Visual Effect Graph in Unity including small video demonstrations of most effects
archive / summary
an unofficial updated version of Ray Tracing Gems with fixes for the errors found in the original book
archive / summary
presents how to find a GPU crash on a low-end Vulkan device caused by a GPU driver timeout, requiring the work to be split into smaller submits
archive / summary
overview of all sessions AMD is involved with during GDC 2019 will later also include links to the slides as they become available
archive / summary
the chapter describes the hybrid rendering pipeline used in the PICA PICA demo uses a mix of rasterization and raytracing techniques to generate the final image talks about opaque and transparent shadows, reflections, ambient occlusion, transparency, translucency, and GI techniques
archive / summary
Ray Tracing Gems is now available as open access book the whole book is available as single pdf, but individual chapters can be downloaded too
archive / summary
presents a method to distribute sampling points within a triangle taking advantage of sub-triangles to guide the distribution able to reduce variance in the test scene by 2.17x
archive / summary
collection of different sampling patterns explains the patterns and the characteristic of each provides C++ implementations
archive / summary
presents a new algorithm that allows to efficiently and incrementally generate stratified sample points
archive / summary
shows how to implement a fluid like movement inside an object, tri-planar mapping and a animated waterfall shader using the Unity Shader Graph
archive / summary
shows how to implement halftone toon shading with Unity a technique that uses a binary lighting style that is modified by sampling screenspace signed distance fields to customize the edge between lit and unlit area
archive / summary
documents the experiments with HDR support using all 3 different hardware vendors shows what HDR information is reported from DXGI and compares against manufacture APIs all vendors seem to indicate very different information about the same monitor connected
archive / summary
presents how FreeSync2 supports HDR and variable refresh rate explains what variable refresh is and what is required to use it FreeSync HDR allows the game to collect capabilities from the monitor to adjust the tone mapping accordingly shows how to use the AMD library to create and request the device
archive / summary
shows the method used to abstract pixel formats between OpenGL and Vulkan using an external enum format using C++ preprocessor to provide abstraction and testing support
archive / summary
explains the design of the new Unity batching system designed to enable better matching in situations where many materials are used, but they are using a small number of shader variations
archive / summary
in-depth discussion of color spaces shows how the color response curve influences which color absolute values are referring to explains how to match colors between different color spaces how to represent color spaces visually what negative color values represent defines the standard CIE XYZ and RGB color space and how they have been defined relative to human perception capabilities look at the sRGB color space related to all the information covered in the article
archive / summary
whitepaper explains how to enable GPU assisted validation how it is implemented, performance implicatications what issues it is a ble to detect and known problems
archive / summary
walkthrough of two algorithms for forward culling techniques stream compaction and flat bit arrays presents how to implement scalarazation to reduce atomics overhead and achieve higher occupancy presents performance comparisions of the approaches with lights and decals
archive / summary
presents multiple approaches to calculate MIP mapping textures when using raytracing includes performance comparisons for the different methods DXR shader implementation of the RayCones mip selection algorithm
archive / summary
explains how to use GPU instancing to render health bars for individual objects
archive / summary
implementation walkthrough of the OpenGL Scalable Ambient Obscurance (SAO) algorithm
archive / summary
shows how to implement a parallax effect in the pixel shader allows the appearance of depth in materials that is not backed by actual geoemtry
archive / summary
Vulkan extension that exposes NVIDIA Tensor Cores on Turing GPUs
archive / summary
video, author presents his approach to reducing of tiling artifacts in terrain textures using a height based approach
great visual explanation of Convolution Integrals many examples that allow to gain a visual understanding of filters commonly used in computer graphics
archive / summary
chapter from the [Ray Tracing Gems](http://www.realtimerendering.com/raytracinggems/) book describes the real-time GI preview system developed for the Frostbite engine, runs on the GPU asynchronously to the editor uses an irradiance cache light map approach with denoising applied presents performance and results of different acceleration techniques
archive / summary
shows the frame breakdown of Shadow Fight 3 rendering approach designed to reduce the number of draw calls explains how the rendering system was designed to take advantage of the game design constraints to find very cheap solutions for lighting, shadows, and reflections
archive / summary
presents performance optimizations done for the 2D rendering system reducing overdraw for blended objects discussion of texture compression formats for detailed 2D pixel art using [YCoCg-DXT compression](https://www.nvidia.com/object/real-time-ycocg-dxt-compression.html) to split luma and chrominance requires two textures instead of 1 but still a performance win for the game
archive / summary
shows how to set up full-screen quad geometry data so that attribute interpolation can be used to generate the camera rays in a vertex and pixel shader with few instructions
archive / summary
card deck that introduces visual shapes and GLSL code required to create them combined with [The Book of Shaders](https://thebookofshaders.com) (by the same author) it provides a good starting point for artistic shader projects
archive / summary
presents a brief look at the performance of emulating a custom command buffer format on top of OpenGL notices a 7% overhead from the command buffer parsing
archive / summary
explains how to create a pulsating vertex effect using Unity Shader Graph and the lightweight rendering pipeline shows how to set up the shader node graph and control parameters it from C# scripts
archive / summary
shows how debug compute shaders when using BGFX a brief introduction into what is necessary to compile the project explains how to compile shaders so that debug information is available and can be used with RenderDoc and the Visual Studio Graphics Debugger
archive / summary
open-source AMD Linux driver adds support to use async compute to cull primitives before the vertex shader stage
archive / summary
added support for ray and path tracing for the D3D12 backend low-level abstractions and high levels features have been implemented includes GI path-tracer to generate reference images directly in the editor preview for render graph API
archive / summary
Unity provides a plugin that implements the tiling stochastic texturing approach presented in issue [68](https://www.jendrikillner.com/post/graphics-programming-weekly-issue-68/) and [45](https://www.jendrikillner.com/post/graphics-programming-weekly-issue-45/) source code for shader and offline precomputation step is provided
archive / summary
list of Unreal events/talks/presentations that will take place at GDC
archive / summary
presents a brief history of the development of WebGL and it's adoption
archive / summary
presents the equations necessary to express point and directional lights when only area lights are supported
archive / summary
presents a simplistic approach to tone mapping results from a renderer
archive / summary
presents how the RGB color representation is based on human vision shows how to visualize the visual color range in chromaticity diagrams presents the Rec. 709, sRGB, Rec. 2020 and XYZ color space shows which color ranges can and cannot be represented in each space
archive / summary
Crytek removed all presentations from their website a user has uploaded a backup copy of many presentations to his dropbox
presents how to optimize the compaction pass in a GPU culling pipeline reduce memory bandwidth usage by taking advantage of shared memory and compression of data that needs to be processed wrap level and shuffle instructions allow further optimizations
archive / summary
shows how to simplify the math for constant time sphere indexing (the technique was described in issue [64](/post/graphics-programming-weekly-issue-64/)
archive / summary
enables debugging of GPU hangs with D3D12 using Nvidia aftermath allows trace comparison Support D3D12 NVAPI Metacommand enabling [DLSS](https://news.developer.nvidia.com/dlss-what-does-it-mean-for-game-developers/)
archive / summary
presentations from Siggraph 2015 have been published Deus Ex: Mankind Divided presentations covers: shield and skin VFX, parallax occlusion mapping hair simulation and rendering motion blur color correction that allows changing the effect depending on the distance to the camera Rise of the Tomb Raider presentation covers: volumetric lights sunlight shadows ambient occlusion procedural snow deformation
archive / summary
overview of improvements to the system that allows D3D11 applications to be run using D3D12 improved threading behavior new APIs will allow the underlying D3D12 resources to be requested from the D3D11 objects
archive / summary
discusses author's view on the state of low-level graphics APIs (Vulkan, D3D12, Metal) presents how the abstraction level might not be the right one too low-level for ease of use but too high-level to guarantee predictable performance on all platforms
archive / summary
every few days a new preprint article from the "Ray Tracing Gems" book will be released requires a free Nvidia developer account
archive / summary
part 2 of getting started with D3D12 for programmers with D3D11 experience, part 1 discussed in week [70](/post/graphics-programming-weekly-issue-70/) shows to create vertex and constant buffers explanation of memory management and binding model
archive / summary
shows how to sample a signed distance field in a Unity UI shader signed distance field UI shaders allow the UI to be resolution independent
archive / summary
discusses screen space reflection and planar reflections techniques presented technique for reflections uses ray-marching against the terrain height map to calculate the reflections show that the technique could be extended to trace against signed distances fields to add reflection for other objects too
archive / summary
show how a projection matrix is formed explains GPU clipping and how it relates to the projection matrix many videos explain the significance of each component visually provides a calculator to help gain a more intuitive understanding
archive / summary
twitter thread discussing mip-map selection algorithms comparison between the custom shader implementation and hardware solution
archive / summary
introduction into physically based shading presents how light is reflected and refracted when it comes into contact with surfaces shows how metal and dielectrics (non-metals, insulators) interact with light differently and how this forms the visual perception of different materials
archive / summary
presents a technique to distribute an infinite sequence of points on the surface of an arbitrary triangle evenly
archive / summary
the article points out that albedo textures are commonly stored in sRGB color space and need to be converted into linear color space before using in shading achieved using the correct SRGB texture format comparison images present the differences between sRGB and non-sRGB color formats
archive / summary
thesis presentation covering snow rendering presents the visual features of snow with real-world reference pictures an overview of existing techniques defines 4 defining characteristics for snow shading and develops a BRDF from them
a short post that shows how to make an object appear infinitely large without clipping artifacts adjusts the vertex position in the vertex shader so that they are mapped onto the far plane
archive / summary
extends the custom scriptable rendering pipeline, the previous part was covered in [issue 66](/post/graphics-programming-weekly-issue-66/) now adds support for directional shadows, such as sun shadows shows how to deal with common shadow artifacts implements cascaded shadow mapping for the main directional light
archive / summary
weekly series with twitter posts about tech art techniques and ideas
archive / summary
summary of resource about getting started with tech art mainly unity shader focused
archive / summary
new PIX for windows version performance counters are now supported on AMD Radeon 7 GPUs and NVIDIA Turing GPUs more consistent and reliable timing data on all GPUs
archive / summary
D3D12 adds support for DRED (device removed extended data) in the latest windows insider preview build writes an auto-incrementing counter after each render-operation into memory that is persistent across device removed events this allows the GPU progress to be inspected during post-mortem analysis the overhead is around 2 to 5 % for a frame of a AAA game, therefore defaults to off and needs to be enabled explicitly additionally allows better tracking of page faults tries to detect access to recently deleted objects shows the API to enable and how to use it to enable and inspect provided data
archive / summary
extension to real-time image based lighting models adding support for multi-scattering shading using the precomputed integrals from single scattering models accomplishes energy conversation the paper derives the GGX approximation for 3 classes of objects (perfect reflectors, generic metals, and dielectrics) presents comparisons against single scattering models in a furnace test
archive / summary
explains the PBR shading model a combination of 3 BSDFs that allow expressing a large number of materials including the derived formulas and illustrates the exposed parameters user guide describes how to use the system and provides examples of the different effects that can be achieved
archive / summary
shader workshop that uses Shadertoy to teach raymarching techniques the workshop starts with basic 2D shape marching in the end explains how to define 3D scenes with support for lighting, gamma correction, shadows and materials with tri-planar texture mapping
archive / summary
latest Vulkan SDK version (1.1.97.0) adds GPU assisted validation validates at runtime that shaders are not accessing any descriptors out of bounds this is achieved by adding instrumentation into the SPIR-V the document explains the constraints of the layer, known issues and an overview of the implementation details
archive / summary
the article discusses his favorite chapters and insights when looking back at the original "An Introduction to Ray Tracing" (book is now free) from today's perspective mentions which chapter are still relevant today and which information has not aged as well
archive / summary
list of common problems encountered when using Shadertoy and how to solve them texel center issue, loading texture data, resolution changes, mipmap discontinuities
archive / summary
list of sessions by Khronos and related talks that will be taking place during GDC this year
archive / summary
issue 2 of weekly tech art series, contains a collection of twitter post showing interesting art and effects
archive / summary
describes lookup table based (LUT) color grading in LDR color space shows how to represent the 3D color space in a 2D image LUT is embedded into the picture during color grading and later used to apply the transform at runtime walkthrough of the implementation using Unity
archive / summary
explains how to port an existing iOS OpenGL application to use Metal shows everything required for a spinning 3D cube on screen including shader authoring, render pipeline creation, uploading of data from the CPU to the GPU and draw call execution providing resources for future steps at the end of the article
archive / summary
implementation of ray marching renders the back faces of the bounding volume to determine on which pixels raymarching needs to be done simplified absorption model, ignoring the scattering effects the vertex shader is used to calculate the ray direction and pass it to the pixel-shader lookup texture is used to color to the greyscale information from the 3D volume texture
archive / summary
cellular noise created from a quadtree grid structure presents a method that calculates the optimal order in which neighboring cells need to be visited in 2D introduces how to generalize this into higher dimensions and provides a python script can generate lookup tables to store the optimal visit order the technique reduces computation time by around 15%
archive / summary
explains how the distant rain shafts in The Witcher 3 are implemented large cylinders in the distant use noise textures with UV distortion reading back the scene depth buffer is used to fade out the effect on distance objects reverse engineered source code provided
archive / summary
the first book on raytracing "An Introduction to Ray Tracing" from 1989 is now freely available as PDF
archive / summary
full path tracing implementation of Quake 2 implemented Vulkan and the RTX raytracing extension uses an adaptive temporal filter for light transport paths to reduce noise
archive / summary
start of weekly curation of tweets about 3D (technical) art, shaders, and VFX
archive / summary
start of series for programmers with D3D11 experience starting to learn D3D12 explains what command queues are, how they express different GPU execution timelines and how fences allow synchronization between CPU and GPU
archive / summary
explains how to render water using WebGL, Rust, and WebAssembly water supports reflection and refraction reflections are rendered using a reflection plane technique, that mirrors the world and clips fragments if they are below the water plane
archive / summary
shows how to use screen space derivatives to create hard edges on a mesh in the pixel shader how to calculate greyscale from colors
archive / summary
video explaining the rendering equation in an easy to understand and visual way
list of common patterns for shadertoy programming included are: normalizing screen coordinates, color management (hue, sRGB), line drawing, antialiasing, blending, vector math, and random value generation
archive / summary
preprint of the article to appear in GPU Zen 2 talking about the implementation details (C++ and GLSL) replaces the 3D histogram transformation with three 1D histogram transformations improves quality of the result under mipmapping and shows how to generate correct results with compressed texture formats
archive / summary
walkthrough of steps to learn graphics programming recommends starting that beginners start with a raytracer/rasterizer from scratch before starting to use any graphics API list of project ideas for beginners
archive / summary
explains how to rasterize the glyphs from a font into a texture. Providing the coverage information that is required by the technique discussed in part 1 and 2 includes code for the OpenGL compute shader overview of typography terms and explain how to correctly position the glyphs to form the final text on the screen
archive / summary
presents what vertex attributes are and how they are interpolated to deal with perspective distortions correctly uses this knowledge to interpolate normals and UV coordinates for the sponza model
archive / summary
Part 1 of the article: explains how classical forward/deferred pipelines work and how tiled and clustered algorithms can be used to extend these ideas includes animations to show the concepts in a more visual way presents strengths and weaknesses for each technique Part 2 of the article: presents the clustered forward shading implementation how to subdivide the camera frustum into clusters and implement light culling provides links to further information sources
archive / summary
frame breakdown of the Rise of the Tomb Raider with D3D12 on PC uses a light pre-pass architecture lens flares don't use a visibility query but instead use the depth buffer to calculate visibility talks about shadow mapping, ambient occlusion, depth-aware upscaling, reflections, hair rendering, volumetrics, and tone mapping
archive / summary
explains how to apply an expanding color effect that converts the world from greyscale back to color as post-processing effect using Unity scriptable render pipeline presents how to reconstruct world space position from the depth buffer
archive / summary
shows how to set up a Docker container image that is able to run shader compilers supported are: DXC, FXC, GLSLang, AMD Radeon Graphics Analyzer, DXIL signing, SMOL/V and Vulkan SDK
archive / summary
explains the state management system implemented for the Diligent Engine resources states are exposed on D3D12 style semantic for barriers allows mixing of automatic and manual explicit state management the developer can choose to disable automatic transitions on a per resource basis can switch on a per-resource basis at any time during the frame
archive / summary
course notes for the Siggraph Asia 2019 course presenting the newest developments and techniques used during The Incredibles 2 talking about Simulation & FX, Rendering & Compositing and Real-time Tools to allow quicker iteration time overview of subdivision surface representations for use with OpenSubdiv
archive / summary
explains the parallax mapping technique used to represent the interiors of buildings as seen through windows broken into multiple layers to separate window frames, curtains and interior of the room baked separate light texture to allow night time for interiors
archive / summary
explains sparse binding and residency sparse binding lifts the requirement that resource memory needs to be fully continuous in memory. Instead, memory is managed with pages that can be mapped at non-continues offsets sparse residency lifts the requirement that the complete resource needs to mapped. For example, only parts of a texture atlas could be mapped
archive / summary
describes how the histogram of pixel brightness is collected using a compute shader in The Witcher 3 the system allows a dynamic weighting of pixels that origin from the sky
archive / summary
explains how to use D3D12 to calculate a histogram of pixel brightness in a compute shader shows how to use a per-bin weight to calculate the luminance for the exposure step
archive / summary
part two of rasterization implementation article series with C++ shows how to extend the rasterizer into 3D now implements the necessary pipeline to project vertices from object space into clip space for rasterizations adds support for depth testing and index buffers
archive / summary
RenderDoc survey looking to gather information about the user experience, stability, development experience, API and platform coverage help to set the direction for future developments
presenting an overview of next-generation Intel architecture will support adaptive sync, tile-based rendering, coarse pixel shading
archive / summary
acceleration structure visualization for DXR (DirectX Raytracing) and Vulkan serialize DXR application to a C++ capture is now supported added Vulkan pixel history support
archive / summary
new AMD driver adds support for VK_EXT_inline_uniform_block, VK_KHR_swapchain_mutable_format, VK_EXT_scalar_block_layout and sparse extensions
archive / summary
the final part of the series presents how different GPUs are able to overlap the workload between different async and graphics queues work on the same graphics queue presents how split barriers influence the overlap additionally presents the ability of Windows to preempt GPU work when multiple applications are sharing the same GPU
archive / summary
slides for the fluid simulation used in Shadow of the Tomb Raider have been released the content of the talk was discussed last week in [issue 65] (https://www.jendrikillner.com/post/graphics-programming-weekly-issue-65/)
next part of the series about the development of a forward shading pipeline using the Unity scriptable render pipeline implements support for directional, point, and spotlights show how to interact with the Unity provided light culling system
archive / summary
object based shading approach designed for VR rendering splits rendering into client and server operations the server calculates visible geometry and object space shading the results are stored into a shading atlas the client receives a preprocessed vertex stream and the shading atlas the visible geometry is rendered from a single vertex buffer and shading is applied from the information cached in the shader atlas presents the memory management technique and mip-level selection
archive / summary
user created index-page for the Apple Metal documentation contains links to samples, class documentation, best practices documents, tools and debugging helper
archive / summary
shows how to validate using image comparison and using a furnace test how to implement a plastic and glass BSDF make the ray tracer less biased through changes to the way the number of bounces is determined
archive / summary
Khronos talks from Siggraph 2018 Asia talks about Vulkan memory management, subgroup operations and the design of a FrameGraph style engine architecture introduction to WebGL and overview of the latest updates to the GLTF format
archive / summary
series of videos walking through the implementation of a software renderer written in multithreaded C++ using SIMD presenting the whole pipeline from vertex fetching, vertex processing, culling, projection, binning, rasterization, mipmapping and finally shading
archive / summary
explains why noise is significant in computer graphics and how to animate blue noise over time so that it retains its properties
archive / summary
video summary of variable rate shading presents a few approaches that are used to drive shading rate selection what options are exposed in Wolfenstein 2 and how they influence performance and quality
new encoding model for Ambient Highlight Direction (AHD) lightmaps that eliminate common interpolation artifacts and how to fit AHD from spherical harmonics data
archive / summary
review of problems with classical APIs (OpenGL) and motivations for the creation of WebGPU presentation about Dawn, WebGPU implementation from Google splits into render passes that insert resource transitions between passes automatically how numerical fences are implemented (Monotonically increasing values indicate a timestamp in GPU execution history) considerations for implementations using cross-process communication
part 2 of Vulkan raytracing series extends the application with multiple 3D meshes, texturing, simple shading, shadows, reflections, and ice shading model
archive / summary
development of a new rendering framework for transmittance for participating media that enables non-exponential media types to be represented archived by splitting transmittance into 4 transport functions discussion of how to express this new model so that it is intuitive to use and still creates physically correct results
archive / summary
walkthrough of the implementation of a rain material using the Unreal Engine 4 shader graph
archive / summary
a short summary of what spherical harmonics are and what they are used for proposes a sanity check for SH projection code, by passing a function with a constant of 1, should result in a first coefficient close to 2√π
archive / summary
article series about procedural routines for color generation talks about some techniques to generate procedural color variations explains HSB color space and the effect of changing each component convert from RYB hues to HSB hues generation of monochrome color schemes how the difference in colors influences human perception
archive / summary
a sample that explains how to use Metal to generate render commands on the GPU implements GPU culling only to issue rendering commands for visible meshes and remove empty draws the final command buffer submission is controlled from the CPU
archive / summary
explains a new model for sampling visible normals of the GGX distribution summarizes the properties of GGX and how sampling a 2D projection of the truncated ellipsoid is equivalent to sampling the visible normals of the GGX distribution the method is more precise and quicker than previous methods provides a GLSL implementation
archive / summary
twitter thread that discusses what a BRDF is and how they are formed links to sources with more in-depth information
archive / summary
a single slide-deck that will evolve and serve as a single reference point for information about the SEED Halcyon engine the content was discussed in issue [63](https://www.jendrikillner.com/post/graphics-programming-weekly-issue-63/) [61](https://www.jendrikillner.com/post/graphics-programming-weekly-issue-61/) of this graphics programming weekly series
archive / summary
the walkthrough explains how to use GLSL-reduce to simplify a GLSL shader and preserve certain conditions such as a crash or invalid output this is achieved with an interestingness test script the script expresses what is considered to be interesting, such as specific compiler crash, high memory usage, long compile time, etc presents the problem of bug slippage, this happens when a reduced shader generates a problem, but it's not the same problem as in the original shader
archive / summary
a tutorial explains how to implement ray traced shadows when using a signed distance field to represent the scene geometry using Unity
archive / summary
interactive WebGL demo for the paper describing a technique to reduce firefly artifacts from path tracer outputs
archive / summary
a brief overview of the concepts of the ray tracing extension started integration with replacing screenspace AO and shadow map implementations how to implement ray trace reflections, techniques to reduce noise and optimizations best optimization advice is to split ray casting and shading export ray hit information from raycasting shader, and shade samples later using a conventional compute shader overview of the indirect diffuse voxel solution used in Quantum Break and how ray tracing can be used to improve the results
overview of the Navier-stokes equation, look at each step of the implementation and how it was integrated into the engine scrollable grid, only run simulation near the player character, a static map for the rest of the world obstacle injection uses capsule vs. water plane collision checks algae implementation uses virtual particles that convert density to particles, applies simulations, and turns back to densities
Nvidia sample for mesh shaders using Vulkan and OpenGL presents performance comparison for different meshes and a varying number of vertex attributes
archive / summary
explains the GPU programming model, how shaders are executed showcases the differences between CPU and GPU design
archive / summary
twitter collection of many graphics and game programming related links
archive / summary
explains how to implement a shader that simulates a foggy window effect applied to a plane in 3D space allows the user to clean parts of the window. Foggy state returns after some time has passed
archive / summary
explains how to integrate the DirectX shader compiler (DXC) into the Visual Studio build system (msbuild) integration of dependency tracking detecting headers shows how to provide a regex to integrate with the Visual Studio error window
archive / summary
Khronos survey looking for feedback on Vulkan education material
beginner level overview about consideration for modeling techniques related to performance and minimizing z-fighting artifacts
archive / summary
article with interactive and live tweakable examples presents a technique that allows constant time conversion from a position on or above a sphere to the nearest triangle index using an octahedron subdivision model
archive / summary
explains how to use new D3D12 API additions to precompile shaders for DirectX raytracing in parallel into a native hardware format
archive / summary
performance comparison of OpenGL, D3D9, D3D11, and Vulkan in Dota 2
frame breakdown of an interior scene in Ni No Kuni 2 uses a light pre-pass architecture the cartoon edge line is using FXAA for smoother lines, and the final render result uses SMAA
archive / summary
C++ header only implementation to generate 2D blue noise sample points
part 1 of the series on writing a software rasterizer in C++ explains the concept of barycentric coordinates, edge functions and how they are combined to rasterize a 2D triangle
archive / summary
overview of the synchronization primitives of the Vulkan API explains concepts of barriers, access masks, semaphores, and queue transitions
archive / summary
the distinction between memory and execution barrier explains render passes including sub-region dependencies look at GPU → CPU synchronization
archive / summary
overview of architecture multiple render backends are supported at the same time all GPU resources are referred to by a handle, resources can exist on multiple GPUs overview of the high-level command system that is recorded and translated into native API command buffers render graph system graph construction and execution how to deal with multiple GPUs virtual GPU system allows emulation of a multi GPU setup using a single GPU proxy backend routes rendering calls to a remote machine for execution a brief look at machine learning in a render graph architecture overview of the asset pipeline overview of hybrid rendering pipeline and how transparent shadows have been implemented using DirectX Raytracing discussing open problems with ray tracing
archive / summary
a new shading language, designed for use with WebGPU discusses the constraints of targeting the web, and the ability to convert to Metal, HLSL, and SPIR-V SPIR-V limitations also limit the expressiveness of WHLSL memory safety for arrays, getter and setter support does not support a preprocessor but instead uses a two-pass compilation model with specialization constants bindless binding model is not supported
archive / summary
part 2 of the series on font rendering shows the artifacts a regular grid sampling pattern causes and how a rotated grid improves the edges of glyphs that contain straight lines explains how to sample the grid efficiently by splitting the rotation into one horizontal and one vertical skew able to optimize the sampling by precalculating lookup tables
archive / summary
new open source library from Microsoft that combines the [DirectXShaderCompiler](https://github.com/Microsoft/DirectXShaderCompiler) and [SPIRV-Cross](https://github.com/KhronosGroup/SPIRV-Cross) to convert HLSL shaders into OpenGL/Metal/SPIR-V or HLSL compatible with D3D11
archive / summary
presents an approach to generate a quasirandom blue noise point sequence shows the mathematical foundation, distribution analysis and comparison with other techniques python code is provided to help with the understanding of the technique
archive / summary
podcast episode discusses how to design a cross-platform API, problems, and considerations engine design is aimed at modern APIs, supporting older APIs is not a concern for "Our Machinery"
archive / summary
reverse engineering the sharpening filter from The Witcher 3 and explains how it works step by step provides HLSL source code that produces the same assembly
archive / summary
shows that using DXGI functionality can be used to keep track of Vulkan memory usage on Windows presents how to identify physical adapters between Vulkan and DXGI to deal with multi-GPU systems
archive / summary
experiments with using DXGI for memory reporting when using Vulkan results are presented for the system using one AMD and one NVIDIA GPU memory management behavior seems to be different between the vendors DXGI appears to be able to report sensible application local memory usage information
archive / summary
the extension allows the application to collect timing information from the presentation engine and schedule presents at specified times the post presents results from experimenting with VK_GOOGLE_display_timing on Android and Mesa (X11) list of issues encountered and possible points of improvement
archive / summary
explains how ray-tracing could be used for arbitrary data-lookup in 2D and 3D can handle more data points where the signal changes more rapidly a texture has a fixed resolution and cannot adjust to varying density needs
archive / summary
shows how to generate a depth pyramid for Vulkan takes the depth buffer and produces a conservative mipmap chain preparation for GPU occlusion culling in the next episode
archive / summary
implementation of GPU occlusion culling into the mesh-shader and classical rendering pipeline
list of resources for beginners that are looking to get started with graphics programming
archive / summary
new Vulkan extension that allows usage of the C++ memory layout in Vulkan constant and structured buffers this relaxes the alignment requirements
archive / summary
presents how to recover the scale, rotation, and position from a model matrix rotation is retrieved as a rotation matrix
archive / summary
a presentation about the development and design of a C++ library implementation that allows GLSL shaders to run on the CPU
overview of the compute shader execution and pipeline model explains how instructions are executed, what the difference between uniform and non-uniform work is and how it relates to SGPRs and VGPRs using the example of texture downsampling to present the performance profile of a pixel shader solution and why a compute shader solution can achieve better performance
archive / summary
overview of the GPU execution model, the difference between scalar and vector registers and instructions explains the concept of scalarization and how wave level instructions enable this process
archive / summary
walkthrough of two different strategies to scalarize the forward+ shading loop provides code, step by step analysis and links to more in-depth presentations
archive / summary
overview of some of the technical papers that will be presented during SIGGRAPH Asia 2018, 4-7 December 2018 in Tokyo
adding support for multiple meshes and GPU frustum culling and submission one Dispatch to execute culling and one ExecuteIndirect is used to draw the rest of the scene
improving culling performance through the removal of dummy draw calls implementation of LOD selection per mesh support querying of pipeline statistics to gather information about the number of triangles drawn
A walkthrough that explains all the concepts and shaders necessary to ray trace a single colored triangle using the Vulkan raytracing extension
archive / summary
explains how to convert the code from the [Ray Tracing in One Weekend](http://in1weekend.blogspot.com/2016/01/ray-tracing-in-one-weekend.html) book to use CUDA the source code is available [here](https://github.com/rogerallen/raytracinginoneweekendincuda), one branch for each chapter
archive / summary
unity tutorial that explains how to create a signed distance field for a 2D circle and rectangle how to apply transformations (translation, rotation, scale) and how to visualize the distance field to aid debugging
archive / summary
explains how to implement 3D picking in a Metal application overview of coordinate spaces and how to convert between them hit-testing performed using a ray vs. bounding sphere test
archive / summary
a tool, now open source, that allows the compilation of HLSL and shows the disassembly in DXBC and AMD GCN includes a small utility to visualize the effect of a fullscreen pixel shader effect
archive / summary
list of image effects found in tools such as Photoshop with a small explanation and GLSL code snippets
paper on BRDF measurement which proposes a new parameterization that adapts to the behavior of the material able to significantly reduce the number of samples required published a new large database of measured BRDFs that have been captured using this technique
archive / summary
presents an architecture overview of the engine render backends are implemented as DLLs that can be reloaded at runtime multiple backends can be loaded at the same time resource handle system that allows the same resource to point to physical instances on multiple GPUs GPU work is recorded into an abstract command stream that is later compiled into API specific format render graph system that manages resource transitions, lifetimes, and execution order showcase of shader binding model using HLSL spaces concept to separate between update frequencies explanation how the HLSL resource binding model was emulated with SPIR-V using shader patching
archive / summary
discusses considerations when designing memory components for use with gfx-hal (rust graphics API abstraction) proposes not to use a general purpose allocator but instead to implement simple allocator components and combine them into context-aware allocators on a higher level
archive / summary
open source path tracer implemented using the DirectX Ray Tracing API
presents a technique for font rendering that operates on coverage instead of visibility this allows fonts to remain sharp when moving on the screen and at varying font sizes for each pixel in a glyph, a 4x4 sub-sample grid of visibility samples is calculated ahead of time explains how to use this coverage mask to implement font rendering covering how to sample the coverage mark correctly for axis-aligned font rendering
archive / summary
new PIX version that supports the final DirectX Raytracing API version
archive / summary
full Linux support for Vulkan and OpenGL 4.5 support for final DirectX Raytracing API and new supports Vulkan extensions such as VK_NV_shading_rate_image, VK_NVX_raytracing
archive / summary
shows that BC7 encoders produce compression artifacts when the alpha channel is unrelated to the RGB channels presents a heuristic to decide what BC7 mode to use on a per-block basis to improve the compression
archive / summary
case study of a performance regression in League of legends presents what performance data they collected shows what problems they had with the existing data and how a better aggregation of performance data into distinct buckets allows better detection of performance regressions
archive / summary
provides best practices for applications that use the RTX API talks about acceleration structure creation and updating how to improve memory usage, improve performance and best practices for shader authoring and compiling
archive / summary
presents how to reduce light leaks in a large scale global illumination system each geometry is associated with markup information about visibility zones GI light data is only applied if two pieces of geometry are in the same visibility zone or are visible through connected portals
archive / summary
comparison of two libraries to compress SPIR-V shaders SMOL-V MARK-V compares for compression ration, decompression speed, and library size MARK-V achieve great compression results, but the library has a large memory footprint and is slow at decompressing the data
archive / summary
a tutorial that explains how to create a custom shader for use with the scriptable render pipeline in Unity teaches how to interact with constant buffers presents what is required for GPU instancing to be supported by a shader and how to pass custom per-material data to the instanced meshes
archive / summary
mesa gallium driver that implements partial support for OpenGL 2.1, and OpenGL ES 1.1 and 2.0 on top of Vulkan talks about why this project was started, and what is and is not supported at this point
archive / summary
shows how the lighting system in the 2D game was implemented making heavy use of color remapping LUTs sprites have normal maps, lights move in 3D space with custom light falloffs for lights moving behind sprites discusses how shadows and fog are applied presents how a deformation shader is used to simulate wind
archive / summary
optimizing mesh shading pipeline, can now reach >20B triangles/second (input triangles, before cone culling)
adding per object transformation and depth buffer support switched to using multi-draw indirect for classical and mesh shader based pipeline
brief overview about what mips are and how to calculate mip selection in a rasterizer explains ray differentials, a technique that can be used for mip selecttion on primary rays discussion of problems with ray differentials on other ray types, possible solutions and look at what other production renderers use solution using a distance to camera metric and presenting the results by comparing against other techniques
archive / summary
explains the plugin architecture that enables efficient implementation of high-level graphical features how to interact with the scene, culling, scheduling, and GPU execution
archive / summary
SPIR-V shaders can only access global resources HLSL is very flexible with resource usage this post shows what usage pattern DXC is able to transform into legal SPIR-V and what patterns cannot be expressed in SPIR-V
archive / summary
walkthrough of the development of real-time GPU based water simulation discusses simulation experiments and algorithms used a brief look at the lighting of the water
archive / summary
post that provides links to talks with summaries about ray tracing on Nvidia RTX hardware difference between rasterization and ray tracing the structure of a real-time ray-tracing application and the components required how to extend the raster-based application with ray-tracing
archive / summary
overview of texture space shading technique decouples shading from rasterization rate Turing hardware provides support for computing derivatives in compute shaders and exposes texels that need to be shaded linked video explains the implementation of a texel space shading pipeline
archive / summary
look at how to adjust mip selection to favor noise over more detail at acute angels
archive / summary
visual and interactive explanation of quaternions and stereographic projection
usage of descriptor update templates SPIRV parser implementation
cone culling in task shaders two implementations, one using shared memory atomics and one with other subgroup operations
collection of HLSL functions to use spherical harmonics Mathematica notebook to verify and visualize SH functions
all content from the SIGGRAPH 2018 course has been published
archive / summary
console tool to get collect capabilities information from DXGI and Direct3D 12
the complete 3rd edition of Physically Based Rendering is now online for free the post explains the history of the book and decisions that led to making the book available for free authors can be supported on [https://www.patreon.com/pbrbook](https://www.patreon.com/pbrbook)
archive / summary
summarizes voxel ray tracing implementation, memory and performance optimizations show the different artifacts that can be encountered and their solutions
archive / summary
next part in the Metal ray tracer series that adds support for multiple bounces to simulate global illumination implements importance sampling for diffuse BSDF
archive / summary
extending the material system of the Metal raytracer so that multiple materials can be expressed and importance sampled correctly changes sampling heuristic to support multiple importance sampling. This enables both rough and mirror-like surfaces
archive / summary
2-minute video summary of the "Position-Free Monte Carlo Simulation for Arbitrary Layered BSDFs" paper
overview of the strengths and weaknesses of different sampling techniques in ray tracing presents links to papers that present methods that are aimed at creating better-stratified sampling results
archive / summary
stream that adds support for rendering meshes using Nvidia mesh shader extensions
during the stream, the mesh shader pipeline is optimized performance parity with the classical rasterization pipeline is achieved without GPU culling
shows how to implement interior mapping using the Unity reflection probe system explains how to set up the model and environment to generate the required probes and how to apply the reflections to the windows
archive / summary
rust version of the [meshoptimizer](https://github.com/zeux/meshoptimizer) library is now available the post explains how to setup Rust code to be able to compile, link and use existing C code from Rust
archive / summary
the presentation explains how Global illumination has been implemented in the Godot engine talking about GI probe generation, deterministic light baking and the interacting with the shading pipeline
walkthrough of a Godot shader that uses particles to spawn vegetation meshes based on height map and feature (biomes) map data
archive / summary
a brief summary of the usage of premultiplied alpha using Vulkan pre-multiplication is done in the pixel shader, no texture pre-processing is used
archive / summary
explains an O(n) algorithm that calculates 2D distance fields by operating on rows and treating samples as overlapping quadratic parabolas shows ideas to visualize distance fields, generate tiling noise and some use-cases of distance field functions
archive / summary
slides from XDC ([X.Org](http://x.org/) Developer's Conference) Vulkan timeline semaphores allow increasing a 64-bit value on signal and wait on "greater than" a target value unified system for CPU and GPU waits look at how to implement them in the drivers many more talks about OS-level graphic topics
archive / summary
compute shader based adaptive GPU tessellation technique using Mesh Shaders on Turing up to ~25% rendering time reduction at high tesselation rates
explains the Vulkan ray-tracing extension contains an overview of the ray tracing pipeline, the new shader types and how to interact with the API shows how to generate the acceleration structure, update and compact it as required
archive / summary
explains the mathematical foundation behind deep composition that allows compositing of volumetric effects such as fog
archive / summary
walkthrough of the steps required to render the Moana scene in the authors custom path tracer uses a binning scheme on rays combined with on-demand geometry loading to be able to render the scene on a 32 GB RAM machine
archive / summary
discusses a change to the SDL render back-end that will batch CPU rendering commands to reduce the number of draw calls required this will improve performance significantly
archive / summary
next part of the series on gfx-hal usage (low-level graphics API for Rust) adds support for loading and using vertex buffers
archive / summary
explains a water ripple system implementation that uses a top-down projection of ripples onto the water surface in a separate rendering pass
archive / summary
updated SDF function for a capped cone, round cone, and an ellipsoid
archive / summary
Vulkan stream part 3 fixing validation layer errors, explanation of pipeline barriers implementation of swap chain resize shader compiler integration with Visual Studio
Vulkan stream part 4 overview and integration of Vulkan extension loader loading an .obj and rendering a mesh using classical vertex pipeline and manual vertex pulling
archive / summary
explanation of shader for diamond rendering in a forward rendering architecture uses a precalculated cubemap from the inside of the object to simulate internal bounces
archive / summary
discussing many aspects of making a fractal-based game including cone tracing, lighting, shadows, ambient occlusion, volumetric lighting, and atmospheric effects
archive / summary
presents the steps required to vectorize the Ray-AABB approach by [Andrew Kensler](http://psgraphics.blogspot.com/2016/02/new-simple-ray-box-test-from-andrew.html) results are very similar to the recent [jcgt paper](http://jcgt.org/published/0007/03/04/)
archive / summary
derivation of the progressive spherical Gaussian encoding technique discussed in last week's issue
archive / summary
explores changes to CUDA path tracer with Rust, what improved since the last post and what problems persists
archive / summary
command line tool that allows cross compilation from GLSL to HLSL, GLES and MSL (Metal) implemented using a combination of Glslang and SPIRV-cross
work in progress post comparing API concepts between D3D12, Vulkan, Metal, and OpenGL
archive / summary
Windows raytracing support is available starting with Windows 10 October 2018 update
archive / summary
breakdown of "Real-Time Ray Tracing for Interactive Global Illumination Workflows in Frostbite" into short sections key takeaways for each section is provided in the post
archive / summary
explains how to parse a shader file for includes using regex (implemented using Rust)
archive / summary
collection of resources to get started with the Unity Scriptable Render Pipeline
archive / summary
visualization of floating point precision when a classical OpenGL projection matrix is used
archive / summary
explanation of Unity shader graph nodes walkthrough of example shaders that allow the creation of a small island scene
archive / summary
new PIX features are available with Windows 10 October 2018 can capture D3D11 applications using Direct3D 11 on 12 translation layer and WinML workloads
archive / summary
explains what variable rate shading is and what use cases it enables a control texture allows varying of the shading rate on a 16x16 pixel grid
archive / summary
explains the recent developments in VR headsets and how Turing offers new hardware solutions extensions that allow rendering up to 4 different views, with view-dependent attributes using a single invocation
archive / summary
a new encoding method for Spherical Gaussians that improves quality from previous encoding methods
archive / summary
presents a high-level overview of how to implement interior mapping comments have much information about the timeline of games that used similar techniques
archive / summary
discusses a technique to generate instanced geometry procedurally on the GPU using OpenGL compute shaders aimed at filling vast streaming worlds that are broken down into tiles
archive / summary
new stream coding series about the creation of a Vulkan renderer from scratch the first two episodes implement rendering of a single triangle on screen
pre-print of an article that will appear in GPU Zen 2 implements adaptive tessellation using OpenGL 4.5 compute shaders source code: [https://github.com/jadkhoury/TessellationDemo](https://github.com/jadkhoury/TessellationDemo)
archive / summary
Twitter thread discussing Raw vs. Typed buffer performance on Claybook suggest using raw buffers if supported
archive / summary
overview of new features included in CUDA 10 Multi-Precision Tensor Cores are exposed on Turing CUDA Graphs allow the specification and recording of an execution graph that can be executed multiple times, this reduces overhead and allows the compiler to apply further optimizations interoperability with Vulkan and D3D12 is supported
archive / summary
explains how to generate 2D and 3D noise in a Unity shader
archive / summary
extends the Metal raytracer with obj model loading a simple diffuse BRDF implementation, including frame accumulation and shadows provides a Mitsuba test scene
archive / summary
walkthrough of the geometry pipeline on current GPU architectures and how mesh shaders fit into it description of an upgrade path to mesh shaders look at possibilities of future use cases
archive / summary
updated post now includes SM warp-issue-stall metrics previously discussed in [issue-26](https://www.jendrikillner.com/post/graphics-programming-weekly-issue-26/)
archive / summary
summary of resources for graphics programmers to study and keep up-to-date with the graphics programming community
archive / summary
a tutorial that shows how to implement a custom rendering pipeline in Unity implements skybox rendering, culling filtering, sorting and rendering of unlit objects how to improve memory usage and better integration with the Unity frame debugger
archive / summary
Unreal released the tech talks from SIGGRAPH 2018 Virtual Production in Unreal Engine 4.20, Mixed Reality Production with Unreal Engine, Fortnite: Advancing the Animation Pipeline, Real-Time Motion Capture in Unreal Engine
archive / summary
new shader stages on Turing that allows the generation of primitives for direct consumption by the rasterizer task shader: emits mesh shader workgroups allows work on larger clusters, the selection of mesh resolution, ... mesh shader: generates primitives (index + vertex buffers) OpenGL shader implementation that uses the new shader stages to allow culling on a per-cluster basis and generation of efficient mesh data [video recording](http://on-demand.gputechconf.com/siggraph/2018/video/sig1811-3-christoph-kubisch-mesh-shaders.html)
archive / summary
talks about the challenges of developing for open world games covers water rendering, physically based time of day model, nighttime rendering lighting, exposure, emissive effects, and tone mapping material blending
archive / summary
a new algorithm to compute the intersection point and surface normal of an oriented 3D box without precomputations or spatial data structures uses rasterizer pipeline to generate screen-space AABB to limit tests to only potentially visible pixels provides GLSL shader implementation
archive / summary
explains the evolution of the windows graphics driver model from win7 to win10 how WDDM 2.0 enables the features of D3D12 differences between D3D12 and Vulkan regarding queue submission design D3D12 fences are designed to enable the OS to control command buffer scheduling look at Nvidia and AMD hardware details
archive / summary
explains optimizations done to the hybrid shadow raytracer change to the way the BVH layout is constructed (Surface Area Heuristic) and memory layout changes enable huge speedups (16ms to 0.8ms on the GTX970)
archive / summary
overview of the new Turing hardware architecture description of new hardware features, exposed shader features, and improvements to existing technologies
archive / summary
an extensive list of OpenGL and Vulkan extensions that expose the new Turing hardware features with short descriptions of each feature
archive / summary
Vulkan extension that makes it possible to skip parts of command buffers based on the content of a GPU buffer the example uses this to pre-generate a single command buffer and controls visibility of mesh parts from the CPU
archive / summary
overview of the interior mapping technique showcase of different implementations and links to further information
archive / summary
discussing of a technique that tries to preserve normal map variation by generation MIPs that preserve the variance in the roughness map the comments contain links to further reading about this topic
archive / summary
comparison of DXC (DirectX Shader Compiler) and FXC shader compiler in regards to performance and functional regressions provides a docker file that allows FXC to run successfully
archive / summary
provides a configuration that allows the DXC compiler to run within docker
archive / summary
explains the process that enables DXIL shaders to be signed after they have been compiled provides code for detecting if a shader has already been signed and how to call the necessary libraries to sign the shader provides a command line utility that can be used to sign DXIL shaders
archive / summary
start of a series of posts that will describe the development of a ray tracer using Metal Performance Shaders
archive / summary
Khronos released provisional material on the memory model for Vulkan including the specification, extensions for SPIR-V, GLSL and conformance tests
archive / summary
presents a small cross-vendor library for D3D12 that allows collection of information to narrow down GPU hangs to specific draw call ranges
archive / summary
looks at the state of integration of the Vulkan swap chain with different OS and GPU vendors explains the expected API, what is required for a good experience and how the implementations differ between platforms
archive / summary
discusses challenges and possible solutions to undersampling artifacts on curved geometry
archive / summary
links to the presentations from the machine learning and rendering course from Siggraph
archive / summary
an interview that explains what Nvidias DLSS is (Deep Learning Super Sampling) a trained neural network that is able to infer a 64 sample per pixel supersampled image from a 1 sample per pixel source the model is trained on Nvidia GPU clusters before the release of the game
archive / summary
extends the Perlin noise implementation from the previous tutorial to support mixing of multiple layers of Perlin noise uses this to generate a dynamic terrain in a vertex shader
archive / summary
explains how Unity command buffers enable the extension of the Unity graphics pipeline uses this to implement selective bloom on objects
archive / summary
presents a filtering approach for a pixel art style in a 3D environment discussion of filtering theory and derivation of a filter for real-time use provides GLSL implementation of the filter
archive / summary
in-depth documentation for Unity explains the most common terms, the difference between the rendering pipelines with strengths and weaknesses explains the difference between global illumination systems and light modes provides 4 example scenarios that show how the desired game influences the decisions
archive / summary
shows how to reformulate the rendering equation so that stochastic shadows can be combined with non-stochastic shading explains how to denoise the stochastic shadows shows results and discusses the performance of the approach
archive / summary
start of a new Intel series about Vulkan the focus is on the high-level usage and will be comparing different approaches to common problems walkthrough of the structure of the series and how the sample code will be structured
archive / summary
investigates the performance effect of different acquire → render → present approaches shows visually why two sets of frame resources are required to utilize the available hardware efficiently the sample allows experimentations with different scene complexities and CPU workloads
archive / summary
explains the strategy how GPU memory is currently managed and what allocation strategy is used shows a visual representation of allocator usage and discusses the weaknesses of the current approach, pointing to possible future improvements
archive / summary
tutorial on how to implement a candle flame using 3 separate texture channels and noise distortion using Unity
archive / summary
discusses how the drunk effect in "The Witcher 3" was implemented based on reverse engineering the D3D11 shader disassembly provides the reverse engineered HLSL source code
archive / summary
reusing a generic ray-triangle intersection for other calculations such as calculating the distance from a ray to a curve segment
archive / summary
Unity tutorial that extends water with flow map (previous part of the series) to support transparent water rendering apply underwater fog and approximation of refractions
archive / summary
overview how the large-scale ambient occlusion data is baked for Homefront: The Revolution implemented using rasterization with an orthographic projection and per-pixel linked lists runtime information stored in regularly spaced cells
archive / summary
article discussing what is required to achieve high-quality lightmaps UV space rasterization, using a UV G-buffer to collect necessary information to trace rays dealing with shadow leaks and UV seams an algorithm to enable mipmap generation for lightmaps
archive / summary
explains why clipping happens in 4D clip space before the perspective divide is applied
archive / summary
blender developers view of the technologies shown at Siggraph talking about USD / Hydra, MaterialX / ShaderX / OSL / Gaffer and OpenColorIO
archive / summary
overview of the open shading language in 3ds Max how OSL was implemented into the 3ds max architecture discusses problems encountered and improvement possibilities for OSL
explains what contact-hardening shadows are presents one technique that can be used to implement them and deal with artifacts discussions of a method to optimize the process by splitting the shadow mask generation into two passes the first pass generates the penumbra mask at a quarter resolution and the second pass generates the soft shadows, sampling from the quarter resolution penumbra mask
archive / summary
the slides for all talks from the High-Performance Graphics 2018 conference have been uploaded
archive / summary
can now show register and LDS (Local data share) usage as well as theoretical occupancy new render target overview table, provides information about all render targets in the frame in one location more robust handling for applications that create multiple device contexts
archive / summary
explains how to pack an integer and a floating point number into a single unsigned render target channel provides source code for packing and unpacking into a variable number of available bits
archive / summary
video for the talk that was discussed in [issue 42](https://www.jendrikillner.com/post/graphics-programming-weekly-issue-42/) an in-depth overview of color, color spaces, and color transformations discussion of HDR standards ACES pipeline overview implementation of HDR pipeline covering: tone curve, display mapping, UI rendering universal CLUT and color grading
normal and gloss mipmapping using a shortened normals technique normals are shortened based on the glossiness how to combine different textures to add detail to a base texture material surface occlusion reformulation of Ambient Occlusion that adds indirect lighting in the occluded parts of the material adds micro-shadowing from material occlusion into the direct-lighting component indirect specular occlusion, using 3D Environment BrdfLut, 3rd dimension is cone angle multi-scattering diffuse BRDF utilizing an approximation stored in a 2D LUT
archive / summary
present HLSL code snippets that implement different kinds of dithering and an example application comparison of quality and performance of the different dithering techniques
archive / summary
an in-depth walkthrough of the new Depth of Field implementation in Unreal Engine 4 discussing problems encountered, solutions and optimizations includes many small code snippets better results and better performance than the old UE4 implementation
archive / summary
discusses architecture, light culling, clustered lighting implemetation how feature parity between deferred and forward pipeline is achieved implementation of decal system using a D-buffer (similar to g-buffer but for decals only) details about material types, lighting features, volumetric systems
archive / summary
presentation of a screen space subsurface scattering model, they call it the Disney SSS model is using a single tweakable parameter that makes it easy to use for artists implementation details for a thick and thin object model and optimizations to the implementation
archive / summary
start tracing rays where rasterizer has shortcomings explains how to tune Monte Carlo estimators to converge quicker by minimizing variance using different AO and spherical lights as examples shows the weakness of uniform random numbers and provides techniques to generate better distributions variance-driven sampling focus taking more samples where variance is high
archive / summary
presents two techniques that improve on existing Fibonacci lattice methods one version to achieve better packing distribution other to optimize volume and surface area of the convex hull
archive / summary
overview of differentiable rendering a technique gaining traction in machine learning the idea is to provide a way to inverse the rendering process so that changes in the output can be traced back through the pipeline to map changes from output state into changes in the input state
archive / summary
slides for the Moving Mobile Graphics 2018 course from SIGGRAPH 2018
archive / summary
Game Of Life implemented using OpenGL compute shaders in Rust
archive / summary
an in-depth explanation WIP document about Monte Carlo integration how it's able to approximate the shape of the function from taking independent samples how importance sampling helps to converge quicker extend technique to support Multiple Importance Sampling
archive / summary
slides from the SIGGRAPH course characteristics of an idealized display discussion of real hardware considerations tone reproduction, tone characteristics, dynamic range color primaries, gamut, calibration & characterization viewing environment, adaptive displays, observer differences
archive / summary
video tutorial on how to implement a subsurface scattering approximation with unity
archive / summary
a tutorial that explains how to use the stencil buffer with Unity shows how to read/write the stencil mask so that only parts of models will be visible on the screen
archive / summary
a tutorial explains how to create an Overwatch style x-ray effect in Unity implemented using stencil buffer and multiple shader passes
archive / summary
abstraction layer from AMD on-top of Vulkan has been released as open source implements automatic render barrier management, descriptor pools/sets, memory management, render passes, etc
collection of observations and nuggets of information from different SIGGRAPH 2018 sessions
archive / summary
a visual explanation of foundational linear algebra concepts that are required for shader programming
archive / summary
video of the demoscene session at SIGGRAPH 2018 [Clouds in Wande](https://youtu.be/yqA71-HHY2Q?t=585) [Making an animation in 18 bytes at a time](https://youtu.be/yqA71-HHY2Q?t=1555) [Building World in 64KB](https://youtu.be/yqA71-HHY2Q?t=2722) [Demo Party in Japan](https://youtu.be/yqA71-HHY2Q?t=3918)
archive / summary
next part of the series about developing a path tracer using Cuda discussing how to move ray generation code from the CPU to the GPU speedup of 11x is achieved compared to single threaded CPU implementation
archive / summary
thoughts on open questions in regards to raytracing dynamic, open world type environments
archive / summary
brief discussion of difference between [Moment Transparency](https://dl.acm.org/citation.cfm?id=3231585) and [Moment-Based Order-Independent Transparency](http://momentsingraphics.de/?page_id=210) approaches small code samples to help to integrate the trigonometric Moment-Based Order-Independent Transparency technique
archive / summary
look at different ray tracing scenarios and how they influence coherency between neighboring rays references to papers that investigate the issue in further details
archive / summary
slides for the layered real-time shading model discussed in [issue 38](https://www.jendrikillner.com/post/graphics-programming-weekly-issue-38/) using a statistical analysis of light transport in layered structures a visual explanation of the statistical analysis framework presentation of results, comparison against stochastic references and discussion of limitations of the technique
archive / summary
slides for the technique discussed in [issue 45](https://www.jendrikillner.com/post/graphics-programming-weekly-issue-45/) explanation of problems with linear blending how contrast-preserving blending is able to mitigate some of these problems presents a histogram-preserving blending algorithm that has many use cases besides the introduced procedural texturing technique whenever you blend weighted data: use premultiplied blending data chosen randomly: use histogram-preserving blending
archive / summary
video discussing a fully automated UV unwrapping tool explains all steps of the pipeline that tries to find the best projection technique for local parts of the model tool available for licensing
added pixel history view for D3D12 and added support for support for Vulkan ray trace extension new GPU trace activity view visualizes the GPU utilization in more detail provides a breakdown of wrap level activity, connected to events and performance markers
archive / summary
overview of the PICA PICA hybrid raytracing pipeline thought about DirectXRaytracing constraints related to acceleration structures presentation of a texture LOD technique developed with Nvidia preprint available [here](https://t.co/opJPBiZ6au) Pica Pica assets are avaible with with a non-commercial license on [sketchfab](https://skfb.ly/6AJCp)
archive / summary
comparison of 3 techniques to generate blue noise visual quality comparison of three methods to generate blue noise the void and cluster technique produces the best results in the test
archive / summary
integration of spherical harmonics over spherical polygons using a closed form expression with linear cost shows applications for area lights and approximating shadows from area lights
archive / summary
Nvidia open sourced the MDL SDK (Material Definition Language) set of tools that allow materials to be shared between different renderers can generate texturing functions for multiple backends; however the GLSL backend is NOT part of the open source release
archive / summary
slides and [video](https://youtu.be/Q1cuuepVNoY?t=310) for the "Introduction to DirectX RayTracing" track from Siggraph 2018 have been released
archive / summary
the pdf version of the Ray Tracing Minibooks series has been released for free
growing collection of links to SIGGRAPH 2018 content
archive / summary
new GPU architecture from Nvidia dedicated ray tracing hardware volta cores have int8 and int4 support support for variable rate shading
archive / summary
slides and [videos](https://www.youtube.com/watch?v=FCAM-3aAzXg) for the Khronos talks from SIGGRAPH 2018
archive / summary
list of author's favorite papers with a brief summary of the content
archive / summary
slides for the Siggraph course about the fundamentals of color science and color management for games and film
archive / summary
slides for the Siggraph course provides an overview of all API interfaces required to render 3D meshes
archive / summary
fully vulkan 1.1 compatible support for VK_EXT_conditional_rendering, VK_KHR_8bit_storage
using ideas from imperfect shadow map point-cloud rendering to implement reflections generates a point cloud around the track screen space pixels that are close to points of the point cloud transfer their color onto the points the point cloud is then projected onto a sphere around the car and used as an environment map to add reflections on the cars
archive / summary
breaks down the engine into two separate related concepts, Resource and Command management discusses how to interact with resources introduces the idea of state scopes to prevent state leaking commands are recorded into engine specific command buffers that are later converted into the API specific format
archive / summary
slides for most of the talks have already been published
archive / summary
Nvidia tutorial on how to integrate DirectX raytracing and rasterization so that both rendering paths can be used within the same application how to initialize the API, create DXR acceleration structures how the ray tracing pipeline works, manage shaders, resources, and shader binding tables implementation of the required raytracing shaders to produce identical results with the rasterization pipeline
archive / summary
. short description of the different aspects of the Disney BSDF, including source code
archive / summary
a technique to render screen space water using unity water particles write information into offscreen buffers to accumulate water information these buffers are then resolved to form a continues water surface instead of individual blobs
archive / summary
improves upon the multiple scattering approximation from the previous part of the series the result is a model that only requires a 2D LUT to be pre-calculated
archive / summary
walkthrough of two vegetation shaders created with the visual shader editor that was added in Unity 2018.1
archive / summary
how to improve the generation of uniform points in a sphere, disk, and a spherically capped cone
archive / summary
a tutorial that shows how to clip a mesh in a pixel shader against a plane using unity
archive / summary
a web tool that allows the conversion from HLSL Shaders to HLSL 6.2, GLSL 4.5 and Metal 2.1
choosing a different algorithm to optimize triangle-ray intersection tests and vectorizing the calculations
archive / summary
a quick overview of blue noise tiled with various tile sizes from 16x16 to 256x256
archive / summary
explores source to source optimizations techniques using the LunarGlass framework with GLSL shaders comparison of different optimization techniques and the effects on runtime performance results vary significantly between different shaders and target platforms
archive / summary
overview of libraries available to write GPGPU applications using the Rust programming language
archive / summary
description of the "unlit" light system being used it allows lights to modify tint, brightness and contrast to enable the 2D characters to match the environment better
archive / summary
a short explanation and Metal shader code for different blend modes as described in the PDF specification
archive / summary
overview of different fire effects that are based around animated noise textures
archive / summary
overview of different rain effects with links to more in-depth articles discussing the showcased effects
archive / summary
Microsoft open sourced their library to read and write GLTF model files
great in-depth discussion of the full PBR rendering pipeline, documentation for the [Filament engine](https://github.com/google/filament) base BRDF model, extended with support for clear coat layer, anisotropic surfaces, and cloth explanation of lighting units and implementations for directional, point and spotlights providing GLSL code snippets a short overview of the clustered forward shading implementation information about how to validate a PBR implementation
archive / summary
physically based shading model implemented using D3D11, D3D12, Vulkan and OpenGL 4.5 each backend is implemented in a single .h and .cpp file
archive / summary
shows algorithms for generating random points within a sphere contains interactive visualizations that make it easy to see the quality of the distribution
archive / summary
breakdown of a burning shader implemented in Unreal Engine uses flow maps and world space positioned spheres to influence the fire
archive / summary
part two of the series providing an introduction to vertex shaders shows how to add a custom vertex shader to a basic unity shader, sample textures, pass data from vertex to pixel shader and modify vertex positions
archive / summary
summary of the paper: "View-warped Multi-view Soft Shadows for Local Area Lights " discussed in [last weeks] (/post/graphics-programming-weekly-issue-49) issue a real-time technique for soft shadows
archive / summary
shows how to measure Cuda copy performance using the tools contained in the SDK how to speed up the application with the collected performance information
archive / summary
the article discusses how to calculate the central axis from a 3D mesh the axis is computed as maximal perpendicular to the area-weighted surface normal of the mesh
archive / summary
explains how to use MSAA when using Vulkan how to detect the supported sample count, set up the render targets and make the necessary adjustments to the render passes shows how to enable sample shading to further improve quality on the inside of polygons
archive / summary
twitter thread that provides a large number of links to information about volume rendering
archive / summary
provides the Vulkan specification in a chunked version the original specification is one large HTML file that causes usability issues
archive / summary
AMD provides a XML file that offers the possibility to map from external driver version to the contained Vulkan driver version
archive / summary
Xenko, a C# based game engine has been released as open source with an MIT license
archive / summary
collection of many 3D graphics research papers for a large number of different topics (sorted by topic)
archive / summary
OpenGL ES implementation using Vulkan licensed as LGPL v3
archive / summary
explanation of frame stuttering provides videos and frame by frame comparisons of what is causing the stutter explains how the discrepancy between measured time and actual present time causes the studdering issue current state of graphics API ecosystem in solving this problem
archive / summary
shadertoy implementations of multiple noise types the comments describe improvements and possible optimizations to the used noise types
shadow technique for local area lights based on the generation of view independent point clouds from dynamic triangle meshes and the rendering of multiple depth maps simultaneously proposes two different implementations performance and quality comparison against PCSS (percentage closer soft shadows) and Multi-view rasterization (MVR)
archive / summary
part 3 of the series about Grassmann for computer graphics combines the concepts of bi-vectors / tri-vectors with dual vectors explaining use cases
archive / summary
explains how GPUs are able to execute multiple execution streams to hide memory latency how the different workloads of CPU and GPU lead to differences in the design of caches
archive / summary
added support for visualizing the content of DirectX Raytracing shader tables able to detect invalid data in the table and warn about it
archive / summary
explanation of a geometry shader in Unity that converts a triangle mesh into camera facing quad particles
archive / summary
explains how to calculate luminance and a very brief overview of the human vision
archive / summary
look at image shaders that modify brightness, contrast, exposure, gamma or saturation using Metal
archive / summary
overview of water rendering starting from the early 90s to the early 2000s
the history behind the release of the Disney datasets of large-scale scenes comparison of the scene rendered using Disney's renderer and PBRT 3
archive / summary
paper discussing the software implementation of the rasterization pipeline using compute shaders using a dynamic approach that adjusts to the workload dynamically comparison within environments taken from games to evaluate the pipeline overhead showcase of what kind of effects are possible with a software approach custom primitive rendering programmable blending adaptive supersampling in-depth performance comparison against hardware and other software approaches
archive / summary
follow up series of 2012's GPU Pro 3 model dynamic, real-time atmospheric model without pre-calculations explains aerial perspective and the Chapman approximation to optical depth
archive / summary
showcase different ways to visualize a 2d flow field presentation of an algorithm that allows the creation of loopable animations from vector fields
archive / summary
summary of "Conservative Z-Prepass for Frustum-Traced Irregular Z-Buffers" paper explanation of irregular z-buffer and conservative shadow maps and how they are combined
archive / summary
mathematical derivations of importance sampling for GGX, Beckmann, and Blinn-Phong
archive / summary
part 2 of the Metal tutorial adding support for depth buffers, some simple lighting with textures extending the application to support multiple lights, objects, and materials with some basic animations
archive / summary
explanation of Vulkan render passes example how to create Render passes manage shader bindings for input attachments and how to use them from within the GPU shader
archive / summary
start of a series about graphics engine architecture core design goals and pillars for the author's graphics engine embrace concepts introduced in modern graphics APIs make job-based multi-threaded execution a first class citizen define a clear, small API, but be open towards extension
archive / summary
a new vertex cache optimization algorithm that is able to improve cache usage on NVidia hardware by taking advantage of vertex batch sizes
archive / summary
summary of the "Revisiting The Vertex Cache: Understanding and Optimizing Vertex Processing on the modern GPU" paper
archive / summary
explains what color inversion is and how to implement it using metal
archive / summary
tutorial on how to use multi-pass shaders in unity to implement an outline drawing effect first pass object is drawn like usual in the second pass drawn with front face culling and slightly scaled up to define the outline
archive / summary
explanation of partial derivates in pixels shader, (ddx, ddy in HLSL or dFdx, dFdy in OpenGL) the rate of change for variables in a 2x2 pixel grid how they are calculated, how they can be used to calculate face normals from world space positions how branches interact with derivative calculations
archive / summary
explanation of SIMD execution details for GCN discussing latency, throughput, and scheduling introduction of instructions that allow multiple SIMD lanes to exchange information extra requirements for pixel shaders
archive / summary
a technique to rotate vectors on the GPU using only integer math aims to take advantage of packed operations and scalar integer operations
archive / summary
Colin Barré-Brisebois is looking for feedback and open problems in real time raytracing this will influence the HPG 2018 keynote
archive / summary
how to calculate the bounding box for quadratic and cubic Bezier splines analytically
archive / summary
changing the color parts of a character at runtime using a mask texture detailed visual explanation of why this works for fixed colors but causes an issue when giving the option to blend between two colors using premultiplied colors removes the artifacts
archive / summary
explanation of how blending HDR values into an SDR render target behaves regarding clipping into the [0,1] range shows how using non-premultiplied HDR values results in incorrect results and how this can be fixed by the use of premultiplied alpha colors
archive / summary
tutorial how to write a Metal app for iOS end results is a spinning, constant color teapot deals with loading models, handling vertex data, shaders, constants and drawing
archive / summary
showcase of small rendering demos that showcase volumetric rendering effects
archive / summary
explanation of dark and stormy, cloudy skybox shader for unity source code and example assets are available
archive / summary
a technique to generate quadrilateral meshes from triangulated meshes won the Best Paper Award at Symposium on Geometry Processing 2018 source code available
archive / summary
a library that aims to provide a thin abstraction layer on top of OpenGL, D3D11, D3D12, Vulkan, and Metal
GLSL implementation as a starting point for a temporal antialiasing solution
archive / summary
bibliography of the Real-Time Rendering 4th edition 1978 references
archive / summary
comparison of combinations of six different sampling strategies for disk area light sources and 9 sample sequences testing is done for wholly and partially illuminated regions the best result could be achieved with the polar4 strategy introduced in this paper with well-stratified samples
archive / summary
introduction of new strategies to generate progressive(hierarchical) 2D sample point sequences can be stopped at any point in the sequence and samples will still be well distributed comparison against existing techniques, using many different distribution functions and shapes
archive / summary
explanation and derivation of the HSV and HSL color spaces how to convert the color spaces to and from RGB colors
archive / summary
implementation of a hybrid approach that mixes rasterization for first hit and raytracing for secondary rays tracing against polygons using compute shaders directly (no raytracing API) how to create a BVH structure and traverse it details about how to raytrace for shadows and reflections look at the performance, mainly memory bound
archive / summary
provides an overview of GPU preemption strategies and how these affect application responsiveness and latency
archive / summary
explains the physical properties of cameras, starting with a pinhole camera model shows the effect of changing focal length, aperture radius and how to implement this into a raytracer extending the concepts into a lens based camera system
archive / summary
explanation of performance culture, a working culture that treats performance as a core feature designed from the beginning and it's everyone responsibility to uphold it
archive / summary
video and slides from a talk that explains lessons learned from porting an AAA engine to Vulkan recommendations for memory, descriptors, command buffers and barrier management a short overview of frame graph architecture to achieve better barrier usage
archive / summary
overview of the hybrid real-time rendering pipeline developed for PICA PICA demo layered material model transparency translucency shadows an in-depth look at the reflection system and global illumination system
how GPUs evolved from fixed function hardware to the uniform architecture used today overview of concepts required to understand the programming model how GPUs are able to hide memory latency to achieve higher throughput
archive / summary
summary of the paper "High-Performance Procedural Noise using a Histogram-Preserving Blending Operator" that was discussed in issue [45](https://www.jendrikillner.com/post/graphics-programming-weekly-issue-45/)
archive / summary
steps that the author recommends programmers follow that are interested in getting started in graphics programming from shadertoy (for instant visual feedback) to game engines to more low-level aspects of the implementation
archive / summary
overview of the SDF storage system how the world space SDF is generated from a list of brushes and how it is modified at runtime how to raytrace against the distance field efficiently soft shadows and ambient occlusion improvements SDF → mesh conversion for moving particles
overview of design decisions of single header low-level rendering API comparison against bgfx and sokol_gfx
archive / summary
windows registry contains entries for Explicit Layers (all layers that can be loaded by a process) and Implicit Layers (all layers that will be loaded automatically for every process) sometimes these values will become corrupted
archive / summary
a technique that allows the generation of infinite output space from a small example texture (such a grass, snow) in a pixel shader only for example tillable terrain textures cheap to evaluate; 0.29ms for a fullscreen quad the approach is to partition the output space into a triangle grid and to pick three random patches from the input texture to blend to create the output patch this is made possible through the variance preserving blending operation, and this can also be used to improve triplanar mapping
archive / summary
technique for downsampling images that preserves high-frequency information from the original image instead of discarding high-frequency information it remaps the signal into a form that can be represented in the downsampled image
archive / summary
a technique to improve importance sampling for spherical light sources by projecting the visible spherical cap onto a 2D plane, and taking uniform samples within this plane yields noise-free direct illumination for constant illumination with no occluders
archive / summary
summary of the previous paper explains the spherical cap projection and the intuition how this improves the results
archive / summary
program for the High-Performance Graphics 2018 in Vancouver has been published
archive / summary
technique changes shading rate adaptively based on the local content of the image partitions the framebuffer into subdivision levels; uses these to estimate the variance between neighboring pixels to decide if new shading information needs to be calculated or if the shading result can be estimated from neighboring pixels
archive / summary
overview of area-preserving approaches of cube to sphere mapping summarizing ability to preserve area and GPU performance how to generalize 2D grid-based poisson-disc sampling to the sphere provides shadertoy implementations of the presented techniques
archive / summary
summary of "cube-to-sphere projections for procedural texturing and beyond" paper
archive / summary
Pix now also support GPU occupancy visualization for all shader types on AMD GPUs
archive / summary
polygons on terrain implemented as image-space decals how to apply them when they span a large area on the surface of the earth effects of implementation inaccuracies of inverse trigonometric functions between CPU and GPU
archive / summary
explains what a context on AMD hardware is and how the driver manages these the Radeon GPU Profiler has a tool to analyze when context rolls are causing a performance issue
archive / summary
a technique that adjusts the temporal accumulation factor dynamically per pixel and frame done by calculating per-pixel temporal gradients. These are reconstructed from sparse information that captures the change of luminance between the last and current frame
archive / summary
Microsoft DirectX Shader Compiler is now also supported on Linux and macOS there is a docker image available: [https://github.com/gwihlidal/docker-dxc](https://github.com/gwihlidal/docker-dxc)
archive / summary
low-level C# graphics library now supports SPIR-V shader for all supported backends exposes specialization constants on the API level and emulates them at translation time for backends that don't support them
archive / summary
discusses problems with synchronization between unrelated work when using a single command queue showcases how two command queues can achieve better overall utilization at the cost of longer latency
archive / summary
explanation of the simball environment that has been initially designed for the Maxwell Renderer descriptions of the different object features, what they are designed to provide tests for and how it's supposed to be used
archive / summary
shows how Zelda uses an FX in world space to make objects visible in high grass by adjusting the position of the effect based on the environment fix clipping with the object by offsetting the FX towards the camera
archive / summary
twitter thread with a checklist of common problems that can cause objects not be rendered in OpenGL / D3D
archive / summary
the technique that mixes rasterization and temporal antialiasing to only ray trace pixels where a classification algorithm determines that TAA will not produce good results
archive / summary
C++ source code and prebuild demo application are released
archive / summary
The decals are projected from world space onto the mesh UV and rendered into separate per-object decal textures
archive / summary
optimizations to raytracer using SIMD extending AABB tests to deal with various edge cases
archive / summary
a new set of SDR ODT (Output Device Transforms) first Output Transforms that combine the RRT (Reference Rendering Transform) and ODT (Output Device Transforms) into a single transform
archive / summary
shows how the runtime/compile time selection feature of the Rust programming language is used to select different SSE intrinsics based on the available hardware
archive / summary
overview of rendering API support for the user of Roblox Metal reaches above 60% on MacOS and D3D11 77% on Windows on Android, Vulkan is available on 20% of devices
archive / summary
new sdk contains VK_KHR_get_display_properties2 and VK_KHR_draw_indirect_count extensions
archive / summary
how to use two Vulkan queues to enable optimal scheduling for compute-shader based post-processing discussion how fragment → compute can introduce bubbles on the hardware uses two software queues with semaphore synchronization to overlap early work in the frame of the following frame with the post-processing work of the previous frame
archive / summary
explanation of to use Monte Carlo integration to calculate the area under a curve extending the system to deal with non-uniform random numbers distributions convergence can be faster when using a distribution that is a closer match to the signal that is being sampled
archive / summary
timing capture now visualizes fence signal and wait fences can be named shader edit and continue workflow improvements shader resource tracking for DXIL shader
archive / summary
shader playground added support for [slang](https://github.com/shader-slang/slang) a shader language that extends HLSL to make it more modular and extensible ability to shows the control flow graph in GraphViz 'dot' form for SPIRV
using lookup tables to precompute the endpoints better compression results different number of lookup tables allow tradeoffs in performance, quality and memory usage
archive / summary
talks from Microsoft at GDC are online including [DirectX Raytracing](https://channel9.msdn.com/Events/GDC/GDC-2018/05) and [Optimizing and debugging your DirectX-12 game](https://channel9.msdn.com/Events/GDC/GDC-2018/10)
discusses the history and design of their in-house procedural texture generation tool
archive / summary
discussion of the photogrammetry workflow camera used to capture, tools to generate the mesh and normals using unity Unity’s DeLighting tool to remove shadows are even present on an overcast day Tree assets are created with a mix of scans, 3ds max plugins, and quixel megascans assets a fluid solver is used to calculate the flow map for the wind, shape exploration and VFX generation
archive / summary
overview of all the post effects that can be found in PostFX v2 code is on [github](https://github.com/Unity-Technologies/PostProcessing)
archive / summary
explains the basic of path tracing used in his D3D12 path tracer
archive / summary
discusses engines, frameworks, abstraction layers that support metal
archive / summary
QT adds support for vulkan on macOS through [MolenVK](https://github.com/KhronosGroup/MoltenVK)
archive / summary
this in-depth document (26 pages) covers how real-world measurement is used to achieve correct lighting in call of duty explanation of camera concepts getting relative EV differences between light and shadowed areas is more important than having absolute correct values how having consistent measurements between the real world and in-game allowed numerous issues to be discovered and fixed the exposure handling required for the sizeable dynamic range of the scene how to capture accurate HDR photographs, albedo textures, and specular gloss
archive / summary
an in-depth overview of color, color spaces, and color transformations discussion of HDR standards ACES pipeline overview implementation of HDR pipeline covering tone curve, display mapping, UI rendering universal CLUT and color grading
archive / summary
look at solution developed by Imageworks compensates for the energy loss in a single bounce BRDF model improvements to the model
archive / summary
proposal of how to group vulkan resources by usage type designed for coloring in the [VulkanMemoryAllocator] (https://github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator)
archive / summary
Apple will start to deprecate OpenGL with macOS 10.14 and OpenGL ES with iOS 12 developers should be using Metal instead
archive / summary
how to generate command buffers in parallel on the CPU metal can analyze data dependencies to insert GPU parallelization automatically explicit control is supported but requires explicit opt-in how to build a GPU driven rendering pipeline using indirect command buffers and argument buffers look at image blocks, programmable blending, tile shading, persistent thread group memory, custom multi-sample color resolve lessons learned from bringing Fortnite: Battle Royale to iOS
archive / summary
twitter thread with advice how to learn more advanced graphics programming topics
archive / summary
a tutorial that explains how to clip a polygon based on a list of lines in a pixel shader
archive / summary
derivation of a ray function that implements the effects of a thin lens on rays
archive / summary
looks at different file formats and discusses the difference between formats aimed at the interchange of information or consumption only formats covered: gltf, fbx, alembic, USD, a brief look at application and engine support
archive / summary
a sample that shows how to use the VK_KHR_multiview Vulkan extension
archive / summary
shader authors can define variations of shaders with a number of systems each system can inject code/resources/constants into the shader a material allows specifications of which shaders belong together, which systems they use and allows to insert command at the correct time in the Frame all of the resulting shaders get a shared resource binder and constant buffer to reduce
archive / summary
explanations how ray tracing shaders in OpenGL can access the necessary textures for all objects in the world using GL_ARB_bindless_texture
archive / summary
moving the scene information into group shared memory to speed up the ray tracing code a lot problems on metal, slower unless passing data by value instead of by const reference
archive / summary
look at the iOS implementation with an overview of performance tools for CPU and GPU
archive / summary
now using Logarithmic depth buffer when available writes custom depth in a pixel shader, this does disable early depth optimizations but still a performance win for their use-case
archive / summary
look at the implementation of Witcher 3 rendering from an outside perspective using RenderDoc breakdown of rendering Frame structure how normals are stored in the g-buffer explanation of a number of techniques from the d3d disassembly sun rendering blinking stars eye adaptation tonemapping vignette
discussion of tradeoffs for the basis file format comparison of different images formats transcoded from the same source format
archive / summary
extending previous work in CNN(Convolutional neural network) based denoising using a modular architecture that improves temporal stability and detail preservation
archive / summary
the longer the CPU/GPU can idle, the less power is needed optimizing a CPU bound game might cause more frames to be rendered (hitting 60 fps instead of 30). causing less GPU idle time and increasing power consumption kernel heuristics might trigger higher frequency mode which increases battery usage significantly
archive / summary
Tutorial about the implementation of water surface movement of using a flow map in unity how to deal with deformation of normals using derivative maps
archive / summary
NVIDIA Nsight Systems visualizes system-wide application interactions across CPU and GPU Nsight Volta, Vulkan 1.1 and Cuda 9.2, are supported user configurable memory view
archive / summary
-how to investigate GPU starvation and detect CPU/GPU synchronizations and overview of other tools
archive / summary
many optimization lessons learned for mobile how to deal with shader preloading discussion of error detection in automated image comparison tests increased game brightness to reduce the use of display backlights to save battery and reduce heat using raytracing to remove aliasing in special cases improvements to blue noise algorithm
archive / summary
discussions of problems with old occlusion culling systems renders occluders in a pre-pass, uses the depth information to cull instances how to implement culling against the depth buffer, remove culled instance from the stream stream compaction implementation extend the system to handle LOD, materials and manual vertex fetching performance results on Nvidia and Intel
archive / summary
overview of how to generate a SDF in unity per object SDF at build time global SDF aggregation at runtime
archive / summary
introduction to shaders workshop in Montreal focused on the node-based shader pipeline of Unreal
discussion of characteristics of different ways to pass CPU generated data to the GPU using OpenGL persistent memory (GL_ARB_buffer_storage) client arrays vertex buffer object (VBO)
archive / summary
overview of SPH (Smooth Particle Hydrodynamics) how it's implemented in a compute shader explanation of a sorted grid acceleration structure
archive / summary
how the fractal raytracer was implemented on the GPU evaluating the fractal, ray marching and photon simulation
archive / summary
discussion of a unique art style rendering technique the character is represented from axis aligned voxels voxels are created/destroyed on a quantized world space grid as the character moves through the world
archive / summary
adds supports for a basic material system with lambert diffuse + phong specular explanation of importance sampling
archive / summary
list of resource for beginners into graphics programming
archive / summary
implementation details for reflections, translucency, transparency, shadows global illumination uses surfels with world space accumulation
archive / summary
explanations of how to get started with shader programming with unity takes the unity toon shader as the starting point to explain concepts and provide a gentle introduction into making modifications to it
archive / summary
adds support for GPU tracking system that allows to enable/disable features based on the GPU used
now includes present events in the system activity view explanations for why the driver had to insert barriers
archive / summary
implements foveated rendering through usage of log-polar transformation gbuffer is written as normal, attributes transformed into sub-resolution textures using a log-polar transformation shading is done in log-polar space before the results are transformed back into Cartesian space
archive / summary
Intro to sampling theory and how different sampling patterns influence the aliasing that can be observed explanation of why the default D3D11 MSAA has been chosen
archive / summary
description of a shader effect that dissolves triangles outside of a spherical effect range
archive / summary
slerp between two orientations takes the shortest path on a 4D hypersphere author wants the shortest arc in 3D instead decomposes rotation into swing and twist operations these are interpolated independently and concatenated to form the final rotation
archive / summary
start of series that will look at lack of multi scattering in common analytical BSDFs and solution only modelling single scattering causes significant energy loss on rough surfaces post shows visual example that up to 60% of energy can be lost
archive / summary
derivation of the multi-scattering GGX BRDF provides source code and precomputed lookup tables
archive / summary
explains what shader variations are how to compute the amount of variations created for a shader how unity decides what variations to include Unity 2018.2 beta adds the possibility to control shader variation compilation from a C# script
archive / summary
new image diff option allows visualization of pixel difference between compressed / uncompressed textures adds model optimizations (vertex cache, overdraw, vertex prefetch optimizations) draco compression support
archive / summary
tool that allows to only include vulkan functionality that you need comparison of header sizes and influence on compile time, startup time
archive / summary
introduction into vectors as functions and dual space how to transform dual vectors
archive / summary
uses ShaderGen to write shaders in C# and compile them into the target shader language for D3D11, Metal, OpenGL and vulkan
archive / summary
website that allows compilation of shaders with a multitude of shader compilers and inspect the available outputs possibility to chain compilers together
archive / summary
tutorial how to use the VK_EXT_debug_utils extensions combines old debug extensions into a unified one and adds more possibilities allows more details to be reported from the validation layer and tools that support the extension
archive / summary
technical details about the font rendering algorithm used in [slug](http://sluglibrary.com/)
archive / summary
presents one method to derive the slerp formula for quaternions
archive / summary
discusses issues with composability, how complexity poses a problem of sharing research results list of frameworks for research how the scriptable render pipeline of unity allows more flexibility and still hides most of the complexity
archive / summary
discusses problems with using a texture atlas set of scripts to help with the creation, management and usage of texture arrays in unity
archive / summary
technique that helps to reduce problems of disappearing geometry for alpha tested geometry no runtime changes required, only changes the way mips are generated
archive / summary
experience of using vulkan with AMD drivers (stock and open source) comparison of register usage with different shader compilers
archive / summary
Khronos event focused on experiences of game developers that ship Vulkan versions on May22 in Cambridge
archive / summary
compressing animation key frames relative to the bind pose and presenting results results are data dependent, on Paragon dataset saves 7.9% but increases compression time
archive / summary
new model for layered materials statistical analysis that uses an atomic decomposition of light transport to predict scattering in the layered structure per layer statistics are combined into a scattering function as mixture of microfacet models
archive / summary
in-depth look at the distribution of display resolution across the VR display how this influences the mapping of renderer output results to the final display physical display resolution is the same on both headsets (1080×1200 per eye) Oculus favors resolution over FoV Vive has a higher FoV but reduced resolution
archive / summary
tutorial course covering representation, usage and applications of voxel DAG and multiresolution hierarchies voxel DAG take advantage of duplicated data found in voxel data sets how to compress color information construct a DAG using CUDA raytrace the structure use it for shadows in static environments
archive / summary
unicode overview overview of different font rendering techniques look at how Slug renders individual glyphs and what is required to present good results for lines of text
archive / summary
explanation of rules that apply to shader input structures and interstage linking differences between HLSL and SPIR-V semantics shows how HLSL semantics are expressed in SPIR-V
archive / summary
blog series about the mathematics of spherical gaussians a gaussian function that is defined on the surface of a sphere and how to use the techniques for normal map filtering
archive / summary
videos from the Montreal Vulkan dev days have been uploaded
how the stylized vfx in Rime was implemented short overview of fire and smoke effect in-depth overview of the water rendering implementation
archive / summary
explanation how to query reflection information from SPIR-V shader brief overview of the the SPIR-V type system
archive / summary
explanation of the implementation of [Pixel Projected Reflections](http://advances.realtimerendering.com/s2017/PixelProjectedReflectionsAC_v_1.92.pdf) using vulkan supports approximation of normal maps and roughness comparison against brute force ray tracing implementation (image quality and performance)
archive / summary
how to implement a ray tracer using a compute shader in unity features supported: sky box, ground plane, spheres, reflections, directional light with hard shadows and a basic material system simple temporal anti-aliasing solution
archive / summary
shows the steps leading up the final implementation uses a fixed weight for all contributing samples. If sample doesn't contribute, blend in the current average color instead clamping sample size when sample is further away then the center sample. This makes sure out of focus background do not blur into in-focus foreground objects
archive / summary
texture compression library in just 500 lines of C code + Zstd zpng compressing is quicker, takes 6% of the time and output size of the image is 66% compared to the png reference
archive / summary
presentations from the Vulkan Montreal dev day including updates about HLSL in Vulkan and descriptor indexing
archive / summary
comparison of Draco and mesh optimizer output in regards to size and decoding time Draco size compression is mesh dependent, can be larger. Always a lot slower to decode
archive / summary
most of the AMD presentations from GDC have now been uploaded
archive / summary
examples for arguments buffer have been published allow the grouping of resources and constants into a single object that can be bound as a single unit
archive / summary
tool that allows simplifications for static VR environments takes RGB + depth as input images generates simplified geometry that textures will be mapped onto to represent the scene prebuild version can be found here: [https://github.com/ddiakopoulos/seurat/releases](https://github.com/ddiakopoulos/seurat/releases)
archive / summary
build upon the ideas of moment shadow mapping transparent geometry is rendered twice 1. determine transmittance function per pixel 2. composite all transparent surfaces taking advantage of the fact that the logarithm of the transmittance can be accumulated additively
archive / summary
overview of the new rendering API build around method chaining for the initialization of descriptors
archive / summary
summary of cloud modeling and authoring system lighting model high level overview of the implementation
archive / summary
environment lighting is using several distributed area lights distribution / strength is adapted to the environment implementation of importance sampling using varying step sizes for ray marching steps
archive / summary
investigation of relation between linear interpolation and curve representations
archive / summary
D3D11 extensions to simplify use of Lens Matched Shading and Multi-Res Shading short overview of the concepts and how the API works
archive / summary
vulkan function calls pass through several layers until the actual function is executed looks at the disassembly to evaluate the cost of this (between 1-5%) and how to bypass many layers to reduce the overhead
archive / summary
100% dynamic lights, 16 shadow maps in 4kx4k atlas gbuffer breakdown stores material index in gbuffer, indexing into structured buffer for material information deferred decals have problems with depth discontinuities because of wrong mip selections use mip0 when depth discontinues are found around the pixel object decals, blending arbitrary meshes into the gbuffer working on bindless decals, follow the same pattern as clustered deferred lighting
archive / summary
implementation of a buffer based (breadth first) approach for the raytracer looking at synchronization issues, performance brief look at the NVidia nsight tool
archive / summary
overview of what error metric he uses when working/comparing encoders
archive / summary
shows effect of different ray marching step sizes for screen space reflections diffuse reflections approximation with mip selection vs reference implementation with many samples
archive / summary
comparison of backface culling efficiency for cluster cone, 64-triangle clusters
archive / summary
discusses 3 different approaches for implementing thermal erosion on a height field based terrain
archive / summary
supports perceptual metric for compression designed for opaque textures
archive / summary
descriptor types in vulkan vs D3D12 how to specify resource bindings for vulkan in HLSL memory layout rules
archive / summary
April 30th, Vulkan Developer Day in Montreal, hosted by Ubisoft
archive / summary
UVs map into a gradient texture to change the colors the UVs are adjusted to point to other sections in gradient texture
archive / summary
overview of the shader authoring format shader input parameters are defined without thinking about how they are bound passing data between shader stages is abstracted giving the system flexibility to pack as required
archive / summary
microarchitectural details of the NVIDIA Volta architecture registers are divided into two 64 bit banks reduction of bank conflicts with register remapping can improve performance by 15% shorter latency for shared memory atomics
archive / summary
MatCap texture contains lighting information for all camera space normals needs to be recalculated when camera direction changes
archive / summary
uses a texture based and camera facing quad approach instead of a post-processing bloom lighting for terrain rendered into a low-res light map, sampled per-fragment terrain is rendered at 720p, up-scaled to 1080p
archive / summary
algorithm to sum regions from arrays or grids in constant time need larger storage format, increase depends on largest range that needs to be summed compatible with bilinear filtering for sub-pixel values
archive / summary
unity graphics team is looking to gather feedback to improve the roadmap
archive / summary
performance numbers for all implementations with latest changes
archive / summary
current approach recursively processes a single ray until it terminates new approach calculates each step for all rays in seperate passes memory read seems to be limiting factor, shows a few optimizations for that
archive / summary
available with AMD vega architecture pack two FP16 into FP32 register reduce ALU instructions count, reduce VGPR usage how to detect FP16 code generation in FXC disassembly and GCN ISA output discussion of pitfalls and common use-cases how to deal with FP16 constants
archive / summary
combination of ripples and streaking effect blending between the two effects based on surface orientation this post covers the implementation of the streaking effect
archive / summary
many BC7 encoders compress all channels equally for color textures, errors in red and blue are less noticeable YCbCr color space allows better compression by reducing the number of bits used for chroma
archive / summary
discusses issue with the ispc implementation compression has quality problems with grayscale textures
archive / summary
survey of methods utilizing Monte Carlo for light transport in participating media
archive / summary
list of resources for beginners aimed at shader toy like graphics programming
archive / summary
A C++14/C++17 header-only library for simple, efficient, and robust serialization/deserialization of glTF 2.0
archive / summary
library that allows access to GPU performance data on intel GPUs
archive / summary
It is my favorite book, and I own the first and second editions. It covers a vast amount of different topics required for game engine development. Presents different approaches to the engine design and discusses different strategies with practical examples from various engines and their associated tradeoffs. The book provides detailed insights into how Naughty Dog solved several challenges in their property technology. It doesn't focus too much on the rendering aspect of engine design but covers pretty much everything else.
archive / summary
This book fills the gap where Game Engine Architecture needs more information about rendering. The book provides an extensive overview of the real-time rendering world aimed at an intermediate-level graphics programmer. This is not a beginner book, and it's helpful to have followed a couple of getting-started tutorials for graphics programming before picking up this book. However, it focuses on developing a practical and well-explained understanding of basics such as color spaces, coordinates spaces, graphics pipelines, projections in various forms, and classical lighting and shadow methods. Many of the techniques presented are not state-of-the-art, but these techniques provide an excellent understanding of the foundations of the more "modern" techniques used in many AAA game engines today. Additionally, it contains an excellent chapter on visibility and occlusion. It's an intermediate book; a good understanding of fundamentals in math is helpful, but the author explains as the material gets introduced. If you notice yourself needing more mathematical understanding, look at [part 1](/books/book-engine-vol1-math) from the same series and author.
archive / summary
This book covers a modern and in-depth approach to the design and developemnt of a practical photorealistic rendering system. The implementation is aimed at non-realtime rendering but shows the theory that underlies the state-of-the-art realtime rendering methods. The whole book is available free of charge online but an print version is available as well.
archive / summary
This book provides an in-depth introduction to the mathematics required for graphics developers. It covers "classical" topics such as linear algebra (vectors and matrices), transforms, and geometry and gives the reader a great understanding of how to solve many practical challenges and understand industry work. However, the book also covers Grassmann/Geometric algebra, a relatively recent algebra extending to more natural work on geometrical objects. With this understanding, some "oddities" of linear algebra, such as the behavior of normal vectors under transformation, can be understood more cohesively.
archive / summary
This is a book that I find myself grabbing from the bookshelves quite regularly. It's my go-to resource when I am looking to solve geometry or collision-related challenges. It has an extensive list of explanations for the most reliable and efficient way to perform various operations. Looking to test for a collision between two primitives, find the closest point between a shape and a line, how to merge AABBs, and build efficient spatial partitioning structures? This book has you covered, as well as in many more cases. Take a look at the table of contents.
archive / summary
This book is a quick and fabulous read to get a deeper understanding of what all this talk about data-oriented design is about. It goes beyond the often-mentioned reduction of cache misses. It shows how an application design based on the underlying data's properties is fundamentally designed differently than when following an object-oriented approach. It provides much food for thought when looking at your problems with a new mindset.
archive / summary
This book covers the Zettelkasten method. A method of organizing knowledge based around a structured, interconnected web of fundamental ideas. This book fundamentally changed how I store, connect, and find all the knowledge I read and learn about daily. The book focuses on academic writing, but the same can be applied to a personal knowledge management system. This book is in German, and I have yet to read the English translation. Therefore, I cannot comment on the quality of the translated English text.
archive / summary