Jump to content
  • Advertisement


  • Content count

  • Joined

  • Last visited

Community Reputation

124 Neutral


About jendrikillner

  • Rank

Personal Information


  • Twitter

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. I am going to be on vacation for the next two weeks so this series will take a small break and will return on September 24th. Pseudo-bandlimited pixel art filtering in 3D – a mathematical derivation 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 wayback-archive Spotlight Team Best Practices: Setting up the Lighting Pipeline 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 wayback-archive Real-Time Ray Tracing of Correct* Soft Shadows 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 wayback-archive API without Secrets: The Practical Approach to Vulkan* Preface 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 wayback-archive API without Secrets: The Practical Approach to Vulkan* - Part 1 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 wayback-archive Device Memory Management 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 wayback-archive Animated Candle Flame write-up tutorial on how to implement a candle flame using 3 separate texture channels and noise distortion using unity wayback-archive Reverse engineering the rendering of The Witcher 3, part 5 - drunk effect 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 wayback-archive hacking a generic ray-triangle intersector reusing a generic ray-triangle intersection for other calculations such as calculating the distance from a ray to a curve segment wayback-archive Looking Through Water Underwater 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 wayback-archive Large scale ambient occlusion: introduction 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 wayback-archive Baking artifact-free lightmaps on the GPU 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 wayback-archive Why Clip Transformed Vertices in Clip-Space? explains why clipping happens in 4D clip space before the perspective divide is applied wayback-archive Siggraph 2018: A developer’s viewpoint blender developers view of the technologies shown at Siggraph talking about USD / Hydra, MaterialX / ShaderX / OSL / Gaffer and OpenColorIO wayback-archive An edited (and extended) version of my OSL BOF talk at SIGGRAPH 2018 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 Contact-hardening Soft Shadows Made Fast 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 wayback-archive High-Performance Graphics 2018 the slides for all talks from the High-Performance Graphics 2018 conference have been uploaded wayback-archive Radeon GPU Profiler 1.3 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 wayback-archive GBuffer helper – Packing integer and float together 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 wayback-archive If you are enjoying the series and getting value from it, please consider supporting this blog. Support this blog Read more
  2. DD2018: Paul Malin - HDR display in Call of Duty video for the talk that was discussed in 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 Material Advances in Call of Duty: WWII 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 wayback-archive Tech Note: Shader Snippets for Efficient 2D Dithering present HLSL code snippets that implement different kinds of dithering and an example application comparison of quality and performance of the different dithering techniques wayback-archive A Life of a Bokeh 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 wayback-archive The Road toward Unified Rendering with Unity’s High Definition Render Pipeline 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 wayback-archive Efficient Screen-Space Subsurface Scattering Using Burley’s Normalized Diffusion in Real-Time 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 wayback-archive Real-Time rendering’s next frontier: Adopting lessons from offline ray tracing to real-time ray tracing for practical pipelines 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 wayback-archive Evenly distributing points on a sphere 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 wayback-archive Differentiable Rendering 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 wayback-archive Moving Mobile Graphics - SIGGRAPH 2018 slides for the Moving Mobile Graphics 2018 course from SIGGRAPH 2018 wayback-archive Journey into rust #2: Compute Shaders Game Of Life implemented using OpenGL compute shaders in Rust wayback-archive Monte Carlo Integration 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 wayback-archive Color in advanced displays: HDR, OLED, AR & VR 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 wayback-archive Subsurface Scattering for Foliage (without Raytracing!) video tutorial on how to implement a subsurface scattering approximation with unity wayback-archive Stencil Buffers 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 wayback-archive X-Ray Shader Tutorial in Unity a tutorial explains how to create an Overwatch style x-ray effect in Unity implemented using stencil buffer and multiple shader passes wayback-archive V-EZ 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 SIGGRAPH 2018 Stuff collection of observations and nuggets of information from different SIGGRAPH 2018 sessions wayback-archive Basic Math for Shaders a visual explanation of foundational linear algebra concepts that are required for shader programming wayback-archive Demoscene session at SIGGRAPH 2018 video of the demoscene session at SIGGRAPH 2018 Clouds in Wande Making an animation in 18 bytes at a time Building World in 64KB Demo Party in Japan wayback-archive Scatter Kernel 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 wayback-archive Some thoughts re Raytracing post-Siggraph 2018 thoughts on open questions in regards to raytracing dynamic, open world type environments wayback-archive A brief postscript on moment-based order-independent transparency brief discussion of difference between Moment Transparency and Moment-Based Order-Independent Transparency approaches small code samples to help to integrate the trigonometric Moment-Based Order-Independent Transparency technique wayback-archive Pathtracing Coherency look at different ray tracing scenarios and how they influence coherency between neighboring rays references to papers that investigate the issue in further details wayback-archive If you are enjoying the series and getting value from it, please consider supporting this blog. Support this blog Read more
  3. Efficient rendering of layered materials slides for the layered real-time shading model discussed in 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 wayback-archive High-Performance By-Example Noise using a Histogram-Preserving Blending Operator slides for the technique discussed in 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 wayback-archive Fully Automated Mesh UV UnWrapping 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 NVIDIA Announces Nsight Graphics 2018.4 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 wayback-archive GAME RAY TRACING: STATE-OF-THE-ART AND OPEN PROBLEMS 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 Pica Pica assets are avaible with with a non-commercial license on sketchfab wayback-archive Not All Blue Noise is Created Equal 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 wayback-archive Integrating clipped spherical harmonics 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 wayback-archive May the Source Be with You: NVIDIA Open Sources Material Definition Language SDK 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 wayback-archive Introduction to DirectX RayTracing slides and video for the “Introduction to DirectX RayTracing” track from Siggraph 2018 have been released wayback-archive Ray Tracing Minibooks Series released as free pdf the pdf version of the Ray Tracing Minibooks series has been released for free SIGGRAPH 2018 Links growing collection of links to SIGGRAPH 2018 content wayback-archive NVIDIA Reveals Next-Gen Turing GPU Architecture: NVIDIA Doubles-Down on Ray Tracing, GDDR6, & More new GPU architecture from Nvidia dedicated ray tracing hardware volta cores have int8 and int4 support support for variable rate shading wayback-archive siggraph course: path tracing in production 2018 course notes are available wayback-archive Khronos - 2018 SIGGRAPH slides and videos for the Khronos talks from SIGGRAPH 2018 wayback-archive SIGGRAPH 2018 Papers - Machine Learning, Graphics, and Rendering list of author’s favorite papers with a brief summary of the content wayback-archive Fundamentals of color science slides for the Siggraph course about the fundamentals of color science and color management for games and film wayback-archive Introduction to the Vulkan Graphics API slides for the Siggraph course provides an overview of all API interfaces required to render 3D meshes wayback-archive Vulkan GPUinfo database - 1.7 fully vulkan 1.1 compatible support for VK_EXT_conditional_rendering, VK_KHR_8bit_storage If you are enjoying the series and getting value from it, please consider supporting this blog. Support this blog Read more
  4. Imperfect Environment Maps 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 wayback-archive Musings on cross-platform graphics engine architectures – Part 2 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 wayback-archive High-Performance Graphics 2018 slides for most of the talks have already been published wayback-archive DX12 Ray Tracing Tutorials 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 wayback-archive Rendering the Moana Island Scene Part 1: Implementing the Disney BSDF . short description of the different aspects of the Disney BSDF, including source code wayback-archive Screen-space Water Rendering 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 wayback-archive A Multi-Faceted Exploration (Part 3) 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 wayback-archive Shader Graph Updates and Sample Project walkthrough of two vegetation shaders created with the visual shader editor that was added in Unity 2018.1 wayback-archive Uniform points in sphere and capped cone how to improve the generation of uniform points in a sphere, disk, and a spherically capped cone wayback-archive Clipping Objects with a Plane a tutorial that shows how to clip a mesh in a pixel shader against a plane using unity wayback-archive Confetti Shader Translator - Alpha a web tool that allows the conversion from HLSL Shaders to HLSL 6.2, GLSL 4.5 and Metal 2.1 The other pathtracer 5: Optimizing Triangle-Ray Intersections choosing a different algorithm to optimize triangle-ray intersection tests and vectorizing the calculations wayback-archive Tiled Blue Noise a quick overview of blue noise tiled with various tile sizes from 16x16 to 256x256 wayback-archive A Cross-platform Evaluation of Graphics Shader Compiler Optimization 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 wayback-archive The State of GPGPU in Rust overview of libraries available to write GPGPU applications using the Rust programming language wayback-archive Lighting the Unlit 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 wayback-archive Metal shaders: blending basics a short explanation and Metal shader code for different blend modes as described in the PDF specification wayback-archive Shader Showcase Saturday #4 overview of different fire effects that are based around animated noise textures wayback-archive Shader Showcase Saturday #5 overview of different rain effects with links to more in-depth articles discussing the showcased effects wayback-archive Microsoft/glTF-SDK Microsoft open sourced their library to read and write GLTF model files Read more
  5. Filament - Physically-based rendering engine great in-depth discussion of the full PBR rendering pipeline, documentation for the Filament engine 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 wayback-archive An implementation of physically based shading model & image based lighting in various graphics APIs physically based shading model implemented using D3D11, D3D12, Vulkan and OpenGL 4.5 each backend is implemented in a single .h and .cpp file wayback-archive Generating random points in a sphere shows algorithms for generating random points within a sphere contains interactive visualizations that make it easy to see the quality of the distribution wayback-archive Flowmapped-Burn-Shader breakdown of a burning shader implemented in Unreal Engine uses flow maps and world space positioned spheres to influence the fire wayback-archive Non-Scary Shader Intro 2: Vertex Fun 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 wayback-archive Explanation of the paper 'View-warped Multi-view Soft Shadows for Local Area Lights' summary of the paper: “View-warped Multi-view Soft Shadows for Local Area Lights ” discussed in last weeks issue a real-time technique for soft shadows wayback-archive Optimize Memory Transfers - Using CUDA profiler to figure out why our renderer is slow 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 wayback-archive Aligning 3D scans 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 wayback-archive Vulkan - Multisampling 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 wayback-archive Twitter - Volume rendering thread twitter thread that provides a large number of links to information about volume rendering wayback-archive Vulkan® 1.1.82 - Chunked Specification provides the Vulkan specification in a chunked version the original specification is one large HTML file that causes usability issues wayback-archive Decoding Radeon Vulkan versions AMD provides a XML file that offers the possibility to map from external driver version to the contained Vulkan driver version wayback-archive Xenko 3.0 is now free and open-source! Xenko, a C# based game engine has been released as open source with an MIT license wayback-archive Compilation of 100+ 3D graphics academic papers collection of many 3D graphics research papers for a large number of different topics (sorted by topic) wayback-archive Think Silicon® releases GLOVE™, an OpenGL ES over Vulkan middleware as open source OpenGL ES implementation using Vulkan licensed as LGPL v3 wayback-archive Read more
  6. The Elusive Frame Timing 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 wayback-archive Quality hashes collection WebGL2 shadertoy implementations of multiple noise types the comments describe improvements and possible optimizations to the used noise types View-warped Multi-view Soft Shadowing for Local Area Lights 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) wayback-archive Normals and the Inverse Transpose, Part 3: Grassmann On Duals part 3 of the series about Grassmann for computer graphics combines the concepts of bi-vectors / tri-vectors with dual vectors explaining use cases wayback-archive Even more compute shaders 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 wayback-archive PIX 1807.19 – Shader Table Viewer added support for visualizing the content of DirectX Raytracing shader tables able to detect invalid data in the table and warn about it wayback-archive Geometry Shader Adventures, Mesh Triangle to Particle explanation of a geometry shader in Unity that converts a triangle mesh into camera facing quad particles wayback-archive metal shaders: luminance explains how to calculate luminance and a very brief overview of the human vision wayback-archive metal shaders: color adjustments look at image shaders that modify brightness, contrast, exposure, gamma or saturation using Metal wayback-archive DF Retro H2O! Water Rendering: Wave Race 64, Quake, Duke Nukem 3D + Many More! overview of water rendering starting from the early 90s to the early 2000s Read more
  7. Disney Animation Data Sets 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 wayback-archive A High-Performance Software Graphics Pipeline Architecture for the GPU 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 wayback-archive Followup to Atmospheric Scattering—Part 1 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 wayback-archive Visualizing 2D Vector Fields showcase different ways to visualize a 2d flow field presentation of an algorithm that allows the creation of loopable animations from vector fields wayback-archive TL;DR of the paper 'Conservative Z-Prepass for Frustum-Traced Irregular Z-Buffers' 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 wayback-archive Sampling Anisotropic Microfacet BRDF mathematical derivations of importance sampling for GGX, Beckmann, and Blinn-Phong wayback-archive Writing a Modern Metal App from Scratch: Part 2 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 wayback-archive Vulkan input attachments and sub passes 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 wayback-archive Musings on cross-platform graphics engine architectures – Part 1 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 wayback-archive Revisiting The Vertex Cache: Understanding and Optimizing Vertex Processing on the modern GPU a new vertex cache optimization algorithm that is able to improve cache usage on NVidia hardware by taking advantage of vertex batch sizes wayback-archive TL;DR of the paper 'Revisiting The Vertex Cache: Understanding and Optimizing Vertex Processing on the modern GPU' summary of the “Revisiting The Vertex Cache: Understanding and Optimizing Vertex Processing on the modern GPU” paper wayback-archive Shader Showcase Saturday #2 shader showcase of different waterfall effects wayback-archive metal shaders: color inversion explains what color inversion is and how to implement it using metal wayback-archive Multipass Shaders (& inverted Hull outlines) 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 wayback-archive Read more
  8. An introduction to shader derivative functions 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 wayback-archive More compute shaders 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 wayback-archive Rotating a vector using integer math a technique to rotate vectors on the GPU using only integer math aims to take advantage of packed operations and scalar integer operations wayback-archive Gathering Feedback: Open Problems in Real-Time Raytracing Colin Barré-Brisebois is looking for feedback and open problems in real time raytracing this will influence the HPG 2018 keynote wayback-archive bezier bounding box how to calculate the bounding box for quadratic and cubic Bezier splines analytically wayback-archive The Team Color Problem 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 wayback-archive Blending an HDR color into a U8 Buffer 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 wayback-archive Writing a Modern Metal App from Scratch: Part 1 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 wayback-archive Shader Showcase Saturday #1 showcase of small rendering demos that showcase volumetric rendering effects wayback-archive Dark and Stormy explanation of dark and stormy, cloudy skybox shader for unity source code and example assets are available wayback-archive QuadriFlow: A Scalable and Robust Method for Quadrangulation a technique to generate quadrilateral meshes from triangulated meshes won the Best Paper Award at Symposium on Geometry Processing 2018 source code available wayback-archive Low Level Graphics Library (LLGL) a library that aims to provide a thin abstraction layer on top of OpenGL, D3D11, D3D12, Vulkan, and Metal Rudimentary temporal anti-aliasing solution GLSL implementation as a starting point for a temporal antialiasing solution wayback-archive Real-Time Rendering, 4th Edition Bibliography bibliography of the Real-Time Rendering 4th edition 1978 references wayback-archive Read more
  9. Progressive Sampling Strategies for Disk Light Sources 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 wayback-archive Progressive Multi-Jittered Sample Sequences 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 wayback-archive HSV and HSL (colorpsaces XI) explanation and derivation of the HSV and HSL color spaces how to convert the color spaces to and from RGB colors wayback-archive Hybrid raytraced shadows and reflections 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 wayback-archive Breaking down barriers – part 4: gpu preemption provides an overview of GPU preemption strategies and how these affect application responsiveness and latency wayback-archive Pathtraced Depth of Field & Bokeh 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 wayback-archive Rules of optimization 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 wayback-archive Porting your engine to Vulkan or DX12 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 wayback-archive DD2018: Tomasz Stachowiak - Stochastic all the things: raytracing in hybrid real-time rendering 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 Introduction to compute shaders 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 wayback-archive TL;DR of the paper 'High-Performance Procedural Noise using a Histogram-Preserving Blending Operator' summary of the paper “High-Performance Procedural Noise using a Histogram-Preserving Blending Operator” that was discussed in issue 45 wayback-archive How to start learning graphics programming? 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 wayback-archive DD2018: Sebastian Aaltonen - GPU based clay simulation and ray tracing tech in Claybook 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 px_render.h rationale overview of design decisions of single header low-level rendering API comparison against bgfx and sokol_gfx wayback-archive Vulkan layers don't work? Look at registry 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 wayback-archive Read more
  10. High-Performance Procedural Noise using an Histogram-Preserving Blending Operator 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 wayback-archive Spectral Remapping for Image Downscaling 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 wayback-archive Stratified Sampling of Projected Spherical Caps 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 wayback-archive TL;DR of the paper 'Stratified Sampling of Projected Spherical Caps' summary of the previous paper explains the spherical cap projection and the intuition how this improves the results wayback-archive High-Performance Graphics 2018 - Program program for the High-Performance Graphics 2018 in Vancouver has been published wayback-archive Deferred Adaptive Compute Shading 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 wayback-archive Cube-to-sphere projections for procedural texturing and beyond 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 wayback-archive TL;DR of the paper 'Cube-to-sphere projections for procedural texturing and beyond' summary of “cube-to-sphere projections for procedural texturing and beyond” paper wayback-archive PIX 1806.20 – GPU Occupancy for AMD GPUs Pix now also support GPU occupancy visualization for all shader types on AMD GPUs wayback-archive Materials for Polygons on Terrain and the Evils of Inverse Trigonometry 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 wayback-archive Understanding GPU context rolls 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 wayback-archive Gradient Estimation for Real-Time Adaptive Temporal Filtering 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 wayback-archive Compiling DirectXShaderCompiler on Linux/macOS Microsoft DirectX Shader Compiler is now also supported on Linux and macOS there is a docker image available: https://github.com/gwihlidal/docker-dxc wayback-archive Veldrid Support for SPIR-V Shaders 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 wayback-archive Read more
  11. Breaking down barriers – part 3: multiple command processors 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 wayback-archive Simball description 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 Zelda – The Bling-Bling Offset 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 wayback-archive Blackscreen checklist for OpenGL and D3D twitter thread with a checklist of common problems that can cause objects not be rendered in OpenGL / D3D wayback-archive Adaptive Temporal Antialiasing 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 wayback-archive Combining Analytic Direct Illumination and Stochastic Shadows C++ source code and prebuild demo application are released wayback-archive Texture-space Decals The decals are projected from world space onto the mesh UV and rendered into separate per-object decal textures wayback-archive The other Pathtracer 4: Optimizing AABB-Ray intersection optimizations to raytracer using SIMD extending AABB tests to deal with various edge cases wayback-archive ACES 1.1 now available 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 wayback-archive Optimising path tracing: the last 10% 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 wayback-archive roblox graphics APIs 2018 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 wayback-archive lunarg releases new vulkan 1.1.77 sdk new sdk contains VK_KHR_get_display_properties2 and VK_KHR_draw_indirect_count extensions wayback-archive Read more
  12. Using Compute Post-Processing in Vulkan on Mali 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 wayback-archive Monte Carlo Integration Explanation in 1D 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 wayback-archive PIX 1806.11 – Fence signals and waits visualization, major UI streamlining, new Edit and Continue experience, and more timing capture now visualizes fence signal and wait fences can be named shader edit and continue workflow improvements shader resource tracking for DXIL shader wayback-archive Shader Playground updates shader playground added support for 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 Lookup table based real-time PVRTC encoding using lookup tables to precompute the endpoints better compression results different number of lookup tables allow tradeoffs in performance, quality and memory usage wayback-archive Microsoft - GDC 2018 talks from Microsoft at GDC are online including DirectX Raytracing and Optimizing and debugging your DirectX-12 game Texturing in a 64kB intro discusses the history and design of their in-house procedural texture generation tool wayback-archive Book of the Dead: Photogrammetry Assets, Trees, VFX 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 wayback-archive PostFX v2 – Amazing visuals, upgraded overview of all the post effects that can be found in PostFX v2 code is on github wayback-archive Simple GPU Path Tracer explains the basic of path tracing used in his D3D12 path tracer wayback-archive Cross-platform OpenGL alternatives discusses engines, frameworks, abstraction layers that support metal wayback-archive Vulkan for Qt on macOS QT adds support for vulkan on macOS through MolenVK wayback-archive Read more
  13. Real-World Measurements for Call of Duty: Advanced Warfare 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 wayback-archive HDR in Call of Duty 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 wayback-archive A Multi-Faceted Exploration (Part 2) look at solution developed by Imageworks compensates for the energy loss in a single bounce BRDF model improvements to the model wayback-archive Human-friendly classification of Vulkan resources proposal of how to group vulkan resources by usage type designed for coloring in the VulkanMemoryAllocator wayback-archive Apple Announces that OpenGL and OpenCL will be Deprecated in macOS 10.14 Mojave Apple will start to deprecate OpenGL with macOS 10.14 and OpenGL ES with iOS 12 developers should be using Metal instead wayback-archive Metal for Game Developers 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 wayback-archive How To become an advanced graphics programmer twitter thread with advice how to learn more advanced graphics programming topics wayback-archive Polygons a tutorial that explains how to clip a polygon based on a list of lines in a pixel shader wayback-archive Sticking a thin lens in a ray tracer derivation of a ray function that implements the effects of a thin lens on rays wayback-archive 3d file formats, last mile vs. interchange 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 wayback-archive 2018 Vulkanised video presentations from the Vulkanised conference Multiview rendering in Vulkan using VK_KHR_multiview a sample that shows how to use the VK_KHR_multiview Vulkan extension wayback-archive Read more
  14. The Machinery Shader System (part 3) 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 wayback-archive Adding texturing to a glsl path tracer explanations how ray tracing shaders in OpenGL can access the necessary textures for all objects in the world using GL_ARB_bindless_texture wayback-archive Pathtracer 13: GPU threadgroup memory is useful! 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 wayback-archive Pathtracer 14: iOS look at the iOS implementation with an overview of performance tools for CPU and GPU wayback-archive Hybrid Multi-Frustum Logarithmic Depth Buffer 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 wayback-archive Witcher tricks - a bit about rendering the witcher 3 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 Basis universal GPU texture format examples discussion of tradeoffs for the basis file format comparison of different images formats transcoded from the same source format wayback-archive Denoising with Kernel Prediction and Asymmetric Loss Functions extending previous work in CNN(Convolutional neural network) based denoising using a modular architecture that improves temporal stability and detail preservation wayback-archive Optimising path tracing with SIMD how to optimize a Rust path tracer using SSE4.1 wayback-archive On Games’ Power Consumption and phones 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 wayback-archive Texture Distortion Faking Liquid 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 wayback-archive A Trio of New Nsight Tools That Empower Developers to Fully Optimize their CPU and GPU Performance 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 wayback-archive Nsight Systems Exposes New GPU Optimization Opportunities -how to investigate GPU starvation and detect CPU/GPU synchronizations and overview of other tools wayback-archive Read more
  15. INSIDE shipping on iOS 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 wayback-archive GPU Driven rendering experiments at the Digital Dragons conference 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 wayback-archive SIGNED DISTANCE FIELDS IN UNITY overview of how to generate a SDF in unity per object SDF at build time global SDF aggregation at runtime wayback-archive Workshop: Shaders for Artists - Part 2 introduction to shaders workshop in Montreal focused on the node-based shader pipeline of Unreal Never Map Again: Persistent Memory, System Memory, and Nothing In Between 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) wayback-archive Scalable GPU Fluid Simulation overview of SPH (Smooth Particle Hydrodynamics) how it’s implemented in a compute shader explanation of a sorted grid acceleration structure wayback-archive Fractal Raytracing: The Mathy Parts how the fractal raytracer was implemented on the GPU evaluating the fractal, ray marching and photon simulation wayback-archive Art Design Deep Dive: Rendering the player as a form of pure energy in Recompile 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 wayback-archive GPU Path Tracing in Unity – Part 2 adds supports for a basic material system with lambert diffuse + phong specular explanation of importance sampling wayback-archive Advice for beginners, who are just getting started in Computer Graphics list of resource for beginners into graphics programming wayback-archive Stochastic all the things: Raytracing in hybrid real-time rendering implementation details for reflections, translucency, transparency, shadows global illumination uses surfels with world space accumulation wayback-archive How I got started with shaders (Non-Scary Shader Intro) 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 wayback-archive The Forge: Release 1.10 adds support for GPU tracking system that allows to enable/disable features based on the GPU used Radeon GPU Profiler 1.2 now includes present events in the system activity view explanations for why the driver had to insert barriers wayback-archive Read more
  • Advertisement

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

We are the game development community.

Whether you are an indie, hobbyist, AAA developer, or just trying to learn, GameDev.net is the place for you to learn, share, and connect with the games industry. Learn more About Us or sign up!

Sign me up!