Jump to content
  • Advertisement
  • entries
    101
  • comment
    1
  • views
    27072

Entries in this blog

 

Graphics Programming weekly - Issue 101 — October 6, 2019

An Introduction To Real-Time Subsurface Scattering 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 wayback-archive Text Rendering Hates You 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 wayback-archive Desertscape Simulation 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 paper wayback-archive Flexible Ray Traversal with an Extended Programming Model 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 paper archive wayback-archive Half The Precision, Twice The Fun: Working With FP16 In HLSL 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 wayback-archive Technically Art: Issue 37 (04.10.2019) collection of tweets related to VFX, shaders, and game art wayback-archive Fractional Brownian Motion the article describes the characteristics of Fractional Brownian Motion commonly used for the procedural modeling of nature wayback-archive Physically-Based Rendering with PowerVR – Part 2 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 wayback-archive Thanks to Sean McAllister for support of this series. Would you like to see your name here too? Become a Patreon of this series.
Read more

jendrikillner

jendrikillner

 

Graphics Programming weekly - Issue 100 — September 29, 2019

Strand-based Hair Rendering in Frostbite 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 pptx archive wayback-archive Local linear models and guided filtering – an alternative to bilateral filter 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 wayback-archive PIX 1909.23 – New timing capture features, performance improvements and bug fixes 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 wayback-archive Ray Tracing Denoising overview of denoising techniques in raytracing applications covering sampling and signal processing techniques additionally covers blurring kernels and spatial reprojection techniques wayback-archive Jobs Senior or Lead Graphics Programmer (Helsinki, Finland) Ubisoft RedLynx is a multiplatform game development studio located in Helsinki. Along with the hugely popular Trials series, we have developed and published more than 100 games and we are a passionate team of over 140 people of 21 different nationalities. We are seeking an experienced Graphics Programmer to join our core technology team in creating impactful game experiences Would you like to advertise your job openings here too? More information How powerful can WebGL be in comparison with native OpenGL? 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 wayback-archive Custom Render Pipeline Taking Control of Rendering 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
wayback-archive [Video] DirectX Raytracing: Real-Time Denoised Raytraced Ambient Occlusion overview video for the new DirectX Raytracing sample, showing a Raytraced Ambient Occlusion implementation Technically Art: Issue 36 (27.09.2019) collection of tweets related to VFX, shaders, and game art wayback-archive Multi-resolution Ocean Rendering in Crest Ocean System [280 MB pptx] 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 wayback-archive Thanks to Spencer Sherk for support of this series. Would you like to see your name here too? Become a Patreon of this series.
Read more

jendrikillner

jendrikillner

 

Graphics Programming weekly - Issue 99 — September 22, 2019

Improved normal reconstruction from depth 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 wayback-archive Non-linear sphere tracing for rendering deformed signed distance fields 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 paper archive wayback-archive Metal Enhancements for A13 Bionic 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 wayback-archive Selectively Metropolised Monte Carlo light transport simulation 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 paper archive wayback-archive Vertex Assembly and Skinning 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 wayback-archive Jobs Senior or Lead Graphics Programmer (Helsinki, Finland) Ubisoft RedLynx is a multiplatform game development studio located in Helsinki. Along with the hugely popular Trials series, we have developed and published more than 100 games and we are a passionate team of over 140 people of 21 different nationalities. We are seeking an experienced Graphics Programmer to join our core technology team in creating impactful game experiences Would you like to advertise your job openings here too? More information Geometry Reinvented with Mesh Shading excerpt from the Siggraph talk 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 wayback-archive DRED v1.2 supports PIX marker and event strings in Auto-Breadcrumbs 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 wayback-archive Real-time lightmap baking the presentation explains how lightmap baking has been implemented in Wicked Engine 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 Updated Metaballs2 demo 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 wayback-archive Thanks to Jon Greenberg for support of this series. Would you like to see your name here too? Become a Patreon of this series.
Read more

jendrikillner

jendrikillner

 

Graphics Programming weekly - Issue 98 — September 15, 2019

The making of Gears 5: how the Coalition hit 60fps - and improved visual quality 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 for extra details instead of parallax occlusion mapping a mix of shadow maps and ray-traced distance field shadows wayback-archive Believable Caustics Reflections 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 wayback-archive Diagnosing performance issues in Unity 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 wayback-archive Jobs Senior or Lead Graphics Programmer (Helsinki, Finland) Ubisoft RedLynx is a multiplatform game development studio located in Helsinki. Along with the hugely popular Trials series, we have developed and published more than 100 games and we are a passionate team of over 140 people of 21 different nationalities. We are seeking an experienced Graphics Programmer to join our core technology team in creating impactful game experiences Would you like to advertise your job openings here too? More information WebGPU and WSL in Safari 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 wayback-archive Mip-mapping is hard – importance of keeping your quads full 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 wayback-archive Overview of new additions to Vulkan SDK 1.1.121 GPU assisted validation for VK_EXT_buffer_device_address SPIRV-opt can now retarget shaders to use RelaxedPrecision without requiring source-level changes wayback-archive Mitsuba 2: A Retargetable Forward and Inverse Renderer 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 paper archive wayback-archive Technically Art: Issue 34 (13.09.2019) collection of tech art tweets, many gifs, and videos showing a large variety of effects and art styles wayback-archive Variance-aware multiple importance sampling 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 paper archive wayback-archive Integral formulations of volumetric transmittance 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 paper archive wayback-archive Thanks to Bruno Opsenica for support of this series. Would you like to see your name here too? Become a Patreon of this series.
Read more

jendrikillner

jendrikillner

 

Graphics Programming weekly - Issue 97 — September 8, 2019

Engineering Career Guide [LEAKED] guide by Roblox for the career development of rendering engineers what jobs are required, how to learn and personally take control of directed development wayback-archive Watch the Unity Graphics Sessions from SIGGRAPH 2019 summary and links to the video recordings from Unity talks at SIGGRAPH 2019 wayback-archive D3D12 Memory Allocator 1.0.0 the first release of a new open-source D3D12 memory allocator project by AMD wayback-archive My take on shaders: Water Shader a walkthrough that explains a Unity water shader implementation the shader is designed to be easy to use, control and extend wayback-archive The Sharpening Curse 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 wayback-archive hybrid screen-space reflections the article presents a hybrid technique between Screen space reflections and ray-traced reflections shows comparisons between the two methods, differences, strengths, and weaknesses wayback-archive Raw OpenGL OpenGL tutorial that teaches the concepts required to render a textured mesh wayback-archive DirectXShaderCompiler - prebuild releases Microsoft is now offering pre-built binaries of the shader compiler on GitHub Faster Shadow Rays on RTX 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 wayback-archive Path Tracing Review intro to computer graphics from University of Waterloo summarized in one slide deck wayback-archive Thanks to Giuseppe Modarelli for support of this series. Would you like to see your name here too? Become a Patreon of this series.
Read more

jendrikillner

jendrikillner

 

Graphics Programming weekly - Issue 96 — August 04, 2019

Advances in Real-Time Rendering in Games - Siggraph 2019 slides for the Advances in Real-Time Rendering in Games are starting to be released Mesh Shading: Towards Greater Efficiency Of Geometry Processing (pptx) a brief historical look at the rendering pipeline what aspects mesh shaders can improve explanation of programming model what new programming approaches it enables wayback-archive Interactive Wind and Vegetation in 'God of War' (2GB pptx!) 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 wayback-archive Creating the Atmospheric World of Red Dead Redemption 2: A Complete and Integrated Solution (227 MB pptx) 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 wayback-archive AMD RDNA 1.0 Instruction Set Architecture instruction set documentation for the new AMD RDNA GPU architecture pdf archive wayback-archive Resident Evil 2 Frame Breakdown frame breakdown of a Resident Evil 2 presents the different stages found in the frame deferred rendering engine, heavy use compute and indirect draw wayback-archive SDF - ellipsoid the article presents a distance for function for ellipsoid how to improve it for better control and better interaction with other primitive types wayback-archive Split-free occlusion sorting the article discusses how to build a correct CPU occlusion sorting structure wayback-archive SIGGRAPH 2019 Links collection of links to content from Siggraph 2019 wayback-archive Thanks to Nathan Reed for support of this series. Would you like to see your name here too? Become a Patreon of this series.
Read more
 

Graphics Programming weekly - Issue 95 — July 28, 2019

Are we done with Ray Tracing? 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 wayback-archive Chasing Triangles in a Tile-based Rasterizer the detailed article explains how to tile-based rasterization works show how to implement rasterization using this design includes SSE and multithreaded implemenation wayback-archive siggraph course: path tracing in production 2019 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 wayback-archive Alpha Compositing 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 wayback-archive Technically Art: Issue 27 (26.07.2019) collection of VFX tweets of the week tutorials, demos, and showcases of great looking effects wayback-archive Differences in memory management between Direct3D 12 and Vulkan 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 wayback-archive Fresnel Equations Considered Harmful 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 wayback-archive Shadertoy media files the article contains the links to the build-in Shadertoy media files useful when implementing an effect based on reference found on Shadertoy wayback-archive Thanks to Eric Haines for support of this series. Would you like to see your name here too? Become a Patreon of this series.
Read more
 

Graphics Programming weekly - Issue 94 — July 21, 2019

Axis-Aligned Bounding Tetrahedra and Octahedra for Ray Tracing Bounding Volume Hierarchies 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 wayback-archive Anatomy of a frame in AnKi 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 wayback-archive Wavefront Path Tracing the article explains what wavefront path tracing is how it enables efficient path tracing on GPUs implementation provided in Lighthouse 2 wayback-archive Robust pipeline cache serialization 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 wayback-archive High-Performance Graphics 2019 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 wayback-archive Physically Based Shading A Shadertoy that shows the different components the define physically based rendering with explanations and demos of the separate components GPU-Assisted Validation GPU based validation in Vulkan has been updated now supports more cases, the article explains which are currently supported the whitepaper provides more details whitepaper archive wayback-archive Radeon GPU Analyzer 2.2 for Direct3D®12 Compute 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 wayback-archive Dot products and planes an article explains the dot product and how it relates to the plane equation wayback-archive Dot product and its relationship to matrices 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 wayback-archive How to ray-intersect a transformed geometry, without actually transforming it: a geometric illustration the article shows that with the inverse-transformation applied to a ray origin and direction intersection tests can be done against the untransformed geometry wayback-archive Thanks to Stephen Hill for support of this series. Would you like to see your name here too? Become a Patreon of this series.
Read more
 

Graphics Programming weekly - Issue 93 — July 14, 2019

Command buffers for multi-threaded rendering 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 wayback-archive I3D19 Keynote: Advances in Rendering, Graphics Research and Video Game Production (Steve McAuley) video recording of the i3D keynote discussed in detail in issue 88 additionally contains the QA that is not covered in the slides Texture Compression in Games survey by the ASTC Khronos group to understand compression use in games Real-Time Hybrid Hair Rendering using Vulkan 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 code wayback-archive Bindless Deferred Decals in The Surge 2 - Philip Hammer video recording of the talk discussed in detail in issue 87 Rendering Line Lights 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 wayback-archive New in D3D12 – Motion Estimation 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 wayback-archive Lighthouse 2 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 wayback-archive Using Basis Universal Texture Compression with Metal 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 wayback-archive GPU timing data in New Timing Captures 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 wayback-archive Using DXC In Practice the article explains how to use the DXC compiler API compile a shader, shader reflection, and signing wayback-archive SIGGRAPH 2019 Ray Tracing Roundup updated page with all raytracing related sessions, talks and papers from Siggraph 2019 wayback-archive [Twitter] Low-Level Rendering API discussion Twitter thread about modern APIs strengths, weaknesses, opinions, and suggestions for an alternate design wayback-archive Thanks to Cort Stratton for support of this series. Would you like to see your name here too? Become a Patreon of this series.
Read more
 

Graphics Programming weekly - Issue 92 — July 7, 2019

Spectral Primary Decomposition for Rendering with sRGB Reflectance the paper presents a new technique that allows the generation of spectral data from sRGB source data paper archive supplemental archive wayback-archive A Simple Spectral Renderer open source and well-commented implementation of a spectral path tracer provides support for the previously discussed technique [video] Turn your Frame Rate up to 60 with Vulkan on the Nintendo Switch: – Reboot Develop Blue 2019 Vulkan techniques used to achieve better performance on the Nintendo Switch how to measure performance using timestamps [video] Halcyon: Rapid innovation using modern graphics – Reboot Develop 2019 video recording of talk about the SEED halyon engine, was discussed in issue-65 geometry processing in the wild slides that present common problems with mesh data what problems geometry processing algorithms need to support possible solutions to a few common problems wayback-archive HLSLexplorer 1.01 - UI improvements and D3D12 rendering backend 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 wayback-archive Interactive Map Shader: Vertex Displacement part 1 of a Unity tutorial that shows how to create 3D geometry offset from a texture and corresponding heightmap wayback-archive Technically Art: Issue 25 (05.07.2019) collection of VFX tweets of the week tutorials, demos, and showcases of great looking effects wayback-archive Thanks to Angel Ortiz for support of this series. Would you like to see your name here too? Become a Patreon of this series.
Read more
 

Graphics Programming weekly - Issue 91 — June 30, 2019

Nested Dielectrics 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 wayback-archive ShaderGraph Conversion - Custom Functions(Toon Lighting Example), Vertex Colors(Specular/Texture Painting) 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 wayback-archive Render Graph Optimization Scribbles presents an algorithm for scheduling work in a render graph architecture wayback-archive Debugger Extension for DRED 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 wayback-archive Ambient Dice Specular Approximation presents how to use the Ambient Dice to store the GGX specular component alternative storage scheme instead of spherical harmonics wayback-archive Optimal Multiple Importance Sampling derives weighting functions for Multiple Importance Sampling (MIS) that minimize the variance of an MIS estimator paper archive wayback-archive Orthogonal array sampling for Monte Carlo rendering a new strategy for the generation of stratified samples using the concept of orthogonal arrays from statistical experiment design paper archive wayback-archive Generating Blue Noise Textures With Void And Cluster the article explains how to generate high-quality blue noise wayback-archive Level of Detail Cross-Fading Geometry 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 wayback-archive Thanks to Denis Gladkiy for support of this series. Would you like to see your name here too? Become a Patreon of this series.
Read more
 

Graphics Programming weekly - Issue 90 — June 23, 2019

Using AMD FreeSync 2 HDR: Gamut Mapping explains gamut mapping techniques difference perceptual and clipping techniques shows how gamut mappings are derived wayback-archive Reverse engineering the rendering of The Witcher 3, part 15 - fog 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 wayback-archive SIGGRAPH 2019 Ray Tracing Roundup list of sessions from SIGGRAPH 2019 that are related to ray tracing techniques wayback-archive New Vulkan® Extensions in Driver 19.6.2 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 wayback-archive PIX 1906.14 – GPU Timing in New Timing Captures support for GPU timing data in the new timing capture view a lot of GPU capture improvements wayback-archive Glint Rendering based on a Multiple-Scattering Patch BRDF 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 paper archive wayback-archive Announcing HighOmega v3.0 with RTX and Voxel-based Hybrid Path-tracing Support! shows a new version of voxel-based path-tracing based graphics engine provides an overview of the implementation video wayback-archive A Low-Discrepancy Sampler that Distributes Monte Carlo Errors as a Blue Noise in Screen Space 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 paper archive wayback-archive Distributing Monte Carlo Errors as a Blue Noise in Screen Space by Permuting Pixel Seeds Between Frames 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 paper wayback-archive Vulkan Textures Unbound 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 wayback-archive Spheretracing Basics shows how to implement raytracing against a Signed Distance Field (SDF) extends this to use sphere tracing wayback-archive Interactive Generation of Path-Traced Lightmaps 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) thesis archive wayback-archive Spherical Radial Basis Functions for Lighting explains how to extend the Ambient Dice basis function to store and evaluate both diffuse and specular irradiance wayback-archive What's up with my branch on GPU? 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 wayback-archive Normal Mapping Using the Surface Gradient 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) wayback-archive Thanks to Jon Greenberg for support of this series. Would you like to see your name here too? Become a Patreon of this series.
Read more
 

Graphics Programming weekly - Issue 89 — June 16, 2019

Sampling projected spherical caps with multiple importance sampling explains how to combine sampling of projected spherical caps and multiple importance sampling source code provided wayback-archive Technically Art: Issue 22 (14.06.2019) collection of VFX tweets of the week tutorials, demos, and showcases of great looking effects wayback-archive Alpha compositing, OpenGL blending and premultiplied alpha an updated article explaining color blending with OpenGL how the blend operators work and what premultiplied alpha is wayback-archive RDNA - new AMD GPU architecture 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 wayback-archive Introducing Metal 3 the article shows what changes have been introduced with Metal 3 including metal support for the simulator cleaned up feature levels into families wayback-archive What’s New in Metal (2019) the article shows what changes have been introduced with Metal 3 covers additional details compared to the previous article wayback-archive RTX Beyond Ray Tracing: Exploring the Use of Hardware Ray Tracing Cores for Tet-Mesh Point Location 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 wayback-archive Dissecting A Plague Tale: Innocence 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 wayback-archive Thanks to Jhon Adams for support of this series. Would you like to see your name here too? Become a Patreon of this series.
Read more
 

Graphics Programming weekly - Issue 88 — June 9, 2019

Triangles Are Precious - Let's Treat Them With Care 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 wayback-archive OS Variable Refresh Rate Windows Version 1903 adds a new variable refresh rate option enable VRR in older D3D11 games if the hardware supports it wayback-archive 3D Game Rendering 101 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 wayback-archive Pipeline Management explains what a Vulkan pipeline cache is, why developers want to use it presents best-practices wayback-archive Advances in Rendering, Graphics Research and Video Game Production 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 wayback-archive Dynamic Diffuse Global Illumination Part I part 1 of article series about Global Illumination overview of terms and concepts required to understand Global Illumination solutions wayback-archive Dynamic Diffuse Global Illumination with Ray-Traced Irradiance Fields 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 paper archive wayback-archive Tips and Tricks: Vulkan Dos and Don’ts collection of best practices and pitfalls when using Vulkan on Nvidia hardware many of the guidelines should apply to other hardware manufacturers too wayback-archive Visualizing Warping Strategies for Sampling Environment Map Lights the article presents a comparison between two different sampling strategies for environment maps tested on three environment maps with very different characteristics wayback-archive optimising a aaa vulkan title on desktop 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 wayback-archive Make Your Game Friendly for Graphics Debugging and Optimization 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 wayback-archive Thanks to Max R.R. Collada for support of this series. Would you like to see your name here too? Become a Patreon of this series.
Read more
 

Graphics Programming weekly - Issue 87 — June 2, 2019

Leveraging Ray Tracing Hardware Acceleration In Unity 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 wayback-archive Vulkan NV Ray Tracing with HLSL 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 wayback-archive The Heretic - Making of a real-time short film: digital humans and vfx characters 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 Bindless Deferred Decals in The Surge 2 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 wayback-archive NVIDIA Announces Nsight Graphics 2019.3! 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 wayback-archive Video Series: Path Tracing for Quake II in Two Months 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 wayback-archive Easy VRS Integration with Eye Tracking 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 wayback-archive What Makes a (Graphics) Systems Paper Beautiful 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 wayback-archive View-Warped Multi-View Soft Shadows for Local Area Lights 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 wayback-archive Baked Shadows Mixed Lighting tutorial series covering Unity’s scriptable render pipeline explains how to combine real-time lighting with baked shadows wayback-archive Open Problems in Real-time Rendering - The Value of Pixel$ 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 Using Moments to Represent Bounded Signals for Spectral Rendering 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 paper archive wayback-archive Thanks to Matt Pharr for support of this series. Would you like to see your name here too? Become a Patreon of this series.
Read more
 

Graphics Programming weekly - Issue 86 — May 26, 2019

Graphics Programming Weekly - Database 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 wayback-archive Google and Binomial Partner to Open-Source Basis Universal Texture Format 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 code archive wayback-archive Technically Art: Issue 19 (24.05.2019) collection of VFX tweets of the week tutorials, demos, and showcases of great looking effects wayback-archive GPU Lightmapper: A Technical Deep Dive presents the GPU based light mapper implemented in Unity, based on Radeon Rays how to design for GPU occupancy and efficient cache usage wayback-archive frostbite hair rendering and simulation - part 1 overview videos of the hair rendering in Frostbite later parts will contain details about the implementation wayback-archive Approximating Global Illumination with Real-Time Ambient Occlusion 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 Understanding the Need for Adaptive Temporal Antialiasing (ATAA) 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 wayback-archive Boost rendering performance with Variable Rate Shading | Game Developers Conference 2019 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 unreal fest europe 2019 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 wayback-archive direct delta mush skinning and variants 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 wayback-archive Multi-GPU Rendering with Vulkan API 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 pdf archive wayback-archive Thanks to Jhon Adams for support of this series. Would you like to see your name here too? Become a Patreon of this series.
Read more
 

Graphics Programming weekly - Issue 85 — May 19, 2019

3D Game Shaders For Beginners 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 wayback-archive Using AMD Freesync 2 HDR: Tone Mapping 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 wayback-archive blockwise multi-order feature regression for real-time path tracing reconstruction 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 wayback-archive Vertex Data and Vertex Descriptors 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 wayback-archive Portals with Asymmetric Projection 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 wayback-archive Radeon GPU Profiler 1.5.1 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 wayback-archive [video] Real Time Continuous Lever of Detail Rendering of Point Clouds video for article discussed in issue 76 Using the bgfx library with C++ on Ubuntu the tutorial shows how to use BGFX running on Linux initialize BGFX, load shaders, and models and draw a cube on screen wayback-archive Unity 2019 Shader Development 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 wayback-archive Technically Art: Issue 18 (17.05.2019) collection of VFX tweets of the week tutorials, demos, and showcases of great looking effects wayback-archive Seeing the whole Physically-Based picture 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
wayback-archive Proposal for WebGPU as a new Standard Cross-Platform Graphics API (OpenGL replacement) proposal of requirements that would allow WebGPU to be used as a common cross-platform abstraction wayback-archive Thanks to Deepak Surti for support of this series. Would you like to see your name here too? Become a Patreon of this series.
Read more
 

Graphics Programming weekly - Issue 84 — May 12, 2019

Axis-Aligned Bounding Octahedra and The 7-Sided AABB 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 wayback-archive [video] Technical Papers Preview: SIGGRAPH 2019 overview video of papers that will be presented at SIGGRAPH 2019 Cross-Platform Shader Handling 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 wayback-archive What’s New in Android: Q Beta 3 & More Vulkan 1.1 will be a requirement on 64-bit devices starting with Android Q Thermal API will be added to allow games to react to thermal status changes wayback-archive Introducing TensorFlow Graphics: Computer Graphics Meets Deep Learning tour of TensorFlow Graphics allows to define 3D scenes and run training on them system to allow bi-directional machine learning techniques wayback-archive Why are 2D vector graphics so much harder than 3D? presents the history of 2D printing and font formats shows problems with implicit curve evaluations discussion of implicit surfaces in regards to 2D rendering wayback-archive How we made Neon Noir - Ray Traced Reflections in CRYENGINE and more! interview describing the reflections that have been implemented in the Neon Noir Demo merging voxel and ray tracing data only tracing rays for mirror-like surfaces and the beginning of rays, otherwise tracing voxels instead wayback-archive Hierarchical Russian Roulette for Vertex Connections a method based on stochastic light culling hierarchical Russian Roulette using an approximate scattering lobe does not support perfectly specular surfaces wayback-archive Fur Shader Tutorial brief Unity example that shows how to render a basic fur look combination of vertex offsets and alpha blending wayback-archive Shader games with Vulkan 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 wayback-archive Part 3: DDGI Overview 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 wayback-archive Reverse engineering the rendering of The Witcher 3, part 14 - cirrus clouds 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 wayback-archive Dithering explains how to apply a screenspace Bayer dithering pattern in Unity wayback-archive Thanks to Aras Pranckevicius for support of this series. Would you like to see your name here too? Become a Patreon of this series.
Read more
 

Graphics Programming weekly - Issue 83 — May 5, 2019

A tour of Granite’s Vulkan backend – Part 6 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
wayback-archive Pro Tip: Improved GLSL syntax for Vulkan DescriptorSet Indexing 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 wayback-archive Bounding Half-Space Hierarchy explains the BHH (Bounding Half-Space Hierarchy) data-structure allows sorting of 3D objects with sublinear search rendering-bib bibliography file containing 2000+ entries, in computer graphics, rendering, transport theory, and statistics wayback-archive Integrating GVDB & Future Plans part 3 of the volumetric cloud rendering series the code has been released on github Open VDB is used to store volumetric data wayback-archive A brief history of 3D texturing in video games a twitter thread that provides an overview about how games, especially in regards to texturing, have changed since the 90s twitter-thread archive wayback-archive Making of Newton Protocol 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 wayback-archive A Guide To Rust Graphics Libraries 2019 overview of the state of graphics API wrappers and libraries for rust wayback-archive 3D Projection 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 wayback-archive GTC 2019 - videos avaialble videos from GTC 2019 have been released Birthday Post! ShaderGraph conversions (WorldPosition Textureswap/Appear/Disappear) shows how to convert effects from unity shader code to use the ShaderGraph system wayback-archive Thanks to Eric Haines for support of this series. Would you like to see your name here too? Become a Patreon of this series.
Read more
 

Graphics Programming weekly - Issue 82 — April 28, 2019

A tour of Granite’s Vulkan backend – Part 4 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 wayback-archive A Tale of a Bug 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 wayback-archive Tone Mapping 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 wayback-archive Automatic Exposure Using a Luminance Histogram 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 wayback-archive PIX 1904.23 – New Timing Capture preview and improved DXIL shader debugging 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 wayback-archive A tour of Granite’s Vulkan backend – Part 5 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
wayback-archive i3D 2019 – Sampling Projected Spherical Caps in Real Time 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 wayback-archive Lighting And Transmittance 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 wayback-archive Dynamic Bounding Volume Hierarchies - Extended version 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 wayback-archive Thanks to Giuseppe Modarelli for support of this series. Would you like to see your name here too? Become a Patreon of this series.
Read more
 

Graphics Programming weekly - Issue 81 — April 21, 2019

Write-up: Magical Marbles explains how to create a layering parallax effect to simulate the inside of a marble using ray marching wayback-archive A tour of Granite’s Vulkan backend – Part 2 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 wayback-archive GDC 2019 Presentation Links PDFs for all AMD presentations from GDC 2019 have been posted wayback-archive Machine Learning Acceleration in Vulkan with Cooperative Matrices 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 wayback-archive HSV Color Space explains the HSV colorspace and how to convert it to RGB wayback-archive Under the hood of Shadow of the Tomb Raider 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 wayback-archive Model View Projection 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
wayback-archive Sampling A Procedural Sky 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 wayback-archive Flax Facts #25 – Vulkan Flax engine now fully supports a Vulkan backend better performance than the D3D12 implementation wayback-archive New in D3D12 – background shader optimizations D3D12 is starting to allow GPU drivers to implement shader optimization in a background thread provides an API to control the driver behavior wayback-archive Intel® Graphics Performance Analyzers Assist Snow Simulation in Frostpunk* 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 wayback-archive A tour of Granite’s Vulkan backend – Part 3 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 wayback-archive Thanks to Nathan Reed for support of this series. Would you like to see your name here too? Become a Patreon of this series.
Read more
 

Graphics Programming weekly - Issue 80 — April 14, 2019

Debugging VK_ERROR_DEVICE_LOST with Nvidia Device Diagnostics 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 wayback-archive GPU Architectures 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 RTG free on Kindle; consider Google Play for books Ray Tracing Gems is now also available as a free Kindle version wayback-archive Observations about the rendering of Metro: Exodus 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 wayback-archive More observations in Metro: Exodus 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 wayback-archive DirectX-Specs Microsoft released the engineering specification for Direct3D 11 and 12 including DXR wayback-archive GDC19 show guide from NVIDIA all GDC content from Nvidia is now available for download (free login required) wayback-archive AMD GCN ISA: a first dive 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 wayback-archive high-quality object-space dynamic ambient occlusion for characters 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 paper archive wayback-archive [pdf] - nvidia vulkan update - GTC 2019 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
wayback-archive A tour of Granite’s Vulkan backend – Part 1 discusses the authors’ thoughts about abstraction levels in graphics APIs presents the motivation for the design of the granite engine API wayback-archive Thanks to Cort Stratton for support of this series. Would you like to see your name here too? Become a Patreon of this series.
Read more
 

Graphics Programming weekly - Issue 79 — April 7, 2019

Missed the content for March? Don’t worry. Monthly summaries are availbale on my patreon: https://www.patreon.com/jendrikillner THE STORY OF THE 3DFX VOODOO1 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 wayback-archive Unity - Grass Shader 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 wayback-archive 2d Raymarched Smoke walkthrough of a simple cloud shading setup using the Unity shader graph system wayback-archive Bringing GPU acceleration to Windows containers 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 wayback-archive Alternative Take on the Split Sum Approximation for Cubemap Pre-filtering 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 used in UE4 wayback-archive New in D3D12 – GPU-Based Validation (GBV) is now available for Shader Model 6.x windows update 19H1 supports GPI based validation with shader model 6, generated by the DXC compiler wayback-archive Creation Graphs 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 wayback-archive Technically Art: Issue 12 (05.04.2019) collection of tweets related to a variety of tech art articles many great looking effects wayback-archive GDC 2019 - Vault videos and slides for GDC 2019 have been released on the vault Anti-Ghosting with Temporal Anti-Aliasing 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 wayback-archive Keeping the Blue Side Up: Coordinate Conventions for OpenGL, Metal and Vulkan presents the coordinate conventions for Metal, OpenGL and Vulkan how they differ and how to deal with the difference in a mixed API scenario wayback-archive Reverse engineering the rendering of The Witcher 3, part 13a - witcher senses (objects & intensity map) series part 1 of the reverse engineering of The Witcher senses explains how objects are selected using the stencil buffer wayback-archive Reverse engineering the rendering of The Witcher 3, part 13b - witcher senses (outline map) reverse engineering of The Witcher sense effect show how the outline for objects is generated wayback-archive Reverse engineering the rendering of The Witcher 3, part 13c - witcher senses (fisheye effect & final combining) explains how the inputs from part 1 and 2 of the series are combined using a fullscreen effect wayback-archive Thanks to Max R.R. Collada for support of this series. Would you like to see your name here too? Become a Patreon of this series.
Read more
 

Graphics Programming weekly - Issue 78 — March 31, 2019

Missed the content for March? Don’t worry. The summary is now availbale on my patreon: https://www.patreon.com/jendrikillner GPU Path Tracing in Unity – Part 3 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 wayback-archive NVIDIA Announces Nsight Graphics 2019.2! new Nsight graphics release adds improved DXR support, D3D12 fence visualization and Vulkan support for the range profiler wayback-archive Autodesk - A Surface Standard 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 OSL shader archive github wayback-archive Advanced Map Shading 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 wayback-archive game developers conference 2019 links collection of links to presentations from GDC 2019 wayback-archive Resources for Learning Graphics Programming collection of resources aimed at helping beginners get started with graphics programming wayback-archive Variable Rate Shading: a scalpel in a world of sledgehammers 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 wayback-archive New in D3D12 – DirectX Raytracing (DXR) now supports library subobjects next Windows update will add support for library subobjects these allow configuring raytracing pipeline state from HLSL, removing the need for boilerplate C++ code wayback-archive [video] Khronos - 2019 GDC youtube playlist with all Khronos talks from GDC 2019 A hybrid rendering pipeline for realtime rendering: (When) is raytracing worth it? 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 wayback-archive stable filtering — part 2 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 wayback-archive Arm Releases Vulkan Best Practices for Mobile Developers 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 wayback-archive Reverse engineering the rendering of The Witcher 3, part 12 - stupid sky tricks look at the disassembly for parts of the skydome, sun, and stars shader from The Witcher wayback-archive Using AMD FreeSync 2 HDR: Color Spaces covers overview of color theory, color spaces, and encoding presents what problems FreeSync 2 solves and what guidelines it requires hardware manufacturers to follow wayback-archive Tips and Tricks: Ray Tracing Best Practices 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 wayback-archive PIX 1903.26 – Occupancy for Turing GPUs and Variable Rate Shading occupancy graph is now supported on Turing GPUs too Variable Rate Shading is supported wayback-archive Flipping the Vulkan viewport 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 wayback-archive A Multi-Faceted Exploration (Part 4) presents how to precalculate an energy preserving microfacet BRDF with a diffuse-like lobe wayback-archive An unbiased look at real-time raytracing 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 wayback-archive Unreal Engine GDC 2019 tech talks now available online unreal tech talks from GDC 2019 are available wayback-archive Thanks to Warren Moore for support of this series. You would like to see your name here too? Become a Patreon of this series.
Read more
 

Graphics Programming weekly - Issue 77 — March 17, 2019

There will be no newsletter next week. I am at GDC all week. Will be returning as usual on April 1st. World of Warcraft uses DirectX 12 running on Windows 7 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 wayback-archive Source Code for Ray Tracing Gems: High-Quality and Real-Time Rendering with DXR and Other APIs source code for the Ray Tracing Gems has been released Adventures in Sampling Points on Triangles (Part 1.5): Reader Mail and Followups follow up to the post discussed in 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 wayback-archive PIX 1903.12 – High Frequency Counters 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 wayback-archive Wolfenstein: Ray Tracing On using WebGL1 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 Learning DirectX 12 – Lesson 4 – Textures 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 wayback-archive A Low-Distortion Map Between Triangle and Square 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 i3D 2019 - Program program for the I3D conference in Montreal has been published wayback-archive Making your BVH faster 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 wayback-archive Thanks to Matt Pharr for support of this series. You would like to see your name here too? Become a Patreon of this series.
Read more
  • Advertisement
×

Important Information

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

GameDev.net is your game development community. Create an account for your GameDev Portfolio and participate in the largest developer community in the games industry.

Sign me up!