Graphics Programming weekly - Issue 90 — June 23, 2019

posted in jendrikillner
Published June 23, 2019 Imported
Advertisement
  • explains gamut mapping techniques
  • difference perceptual and clipping techniques
  • shows how gamut mappings are derived
fs2_gamut_ab_view.png
  • 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
01_scene.jpg

  • list of sessions from SIGGRAPH 2019 that are related to ray tracing techniques
SIGGRAPH2019.png
  • 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
amd_vulkan.jpg

  • support for GPU timing data in the new timing capture view
  • a lot of GPU capture improvements
NewTimingCapturesWithGpuData2.png
  • 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
teaser_EGSR_2019.png

  • shows a new version of voxel-based path-tracing based graphics engine
  • provides an overview of the implementation
voxel_path_tracing.png

  • 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
blue_noise_screen_space.png

  • 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
blue_noise_temporal.png

  • 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
vulkan.png

  • shows how to implement raytracing against a Signed Distance Field (SDF)
  • extends this to use sphere tracing
ClippedSphere.png
  • 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)
master_thesis_illumination.png

  • explains how to extend the Ambient Dice basis function to store and evaluate both diffuse and specular irradiance
Sponza-Metals-Metallic-SG12NN-Crop.jpg
  • 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
gpu_branch_sorted.png

  • 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)
tbn.png

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

0 likes 0 comments

Comments

Nobody has left a comment. You can be the first!
You must log in to join the conversation.
Don't have a GameDev.net account? Sign up!
Advertisement