Graphics Programming weekly - Issue 63 — November 18, 2018

posted in jendrikillner
Published November 18, 2018 Imported
Advertisement
  • overview of architecture
  • multiple render backends are supported at the same time
  • all GPU resources are referred to by a handle, resources can exist on multiple GPUs
  • overview of the high-level command system that is recorded and translated into native API command buffers
  • render graph system graph construction and execution
  • how to deal with multiple GPUs
  • virtual GPU system allows emulation of a multi GPU setup using a single GPU
  • proxy backend routes rendering calls to a remote machine for execution
  • a brief look at machine learning in a render graph architecture
  • overview of the asset pipeline
  • overview of hybrid rendering pipeline and how transparent shadows have been implemented using DirectX Raytracing
  • discussing open problems with ray tracing
render_proxy.png

  • a new shading language, designed for use with WebGPU
  • discusses the constraints of targeting the web, and the ability to convert to Metal, HLSL, and SPIR-V
  • SPIR-V limitations also limit the expressiveness of WHLSL
  • memory safety for arrays, getter and setter support
  • does not support a preprocessor but instead uses a two-pass compilation model with specialization constants
  • bindless binding model is not supported
WHLSL.png

  • part 2 of the series on font rendering
  • shows the artifacts a regular grid sampling pattern causes and how a rotated grid improves the edges of glyphs that contain straight lines
  • explains how to sample the grid efficiently by splitting the rotation into one horizontal and one vertical skew
  • able to optimize the sampling by precalculating lookup tables
art_rotated_t_full.png

  • new open source library from Microsoft that combines the DirectXShaderCompiler and SPIRV-Cross to convert HLSL shaders into OpenGL/Metal/SPIR-V or HLSL compatible with D3D11
shader_conductor.png

  • presents an approach to generate a quasirandom blue noise point sequence
  • shows the mathematical foundation, distribution analysis and comparison with other techniques
  • python code is provided to help with the understanding of the technique
sample_jitter.png

  • podcast episode discusses how to design a cross-platform API, problems, and considerations
  • engine design is aimed at modern APIs, supporting older APIs is not a concern for “Our Machinery”
cross_platform_graphics.jpg

  • reverse engineering the sharpening filter from The Witcher 3 and explains how it works step by step
  • provides HLSL source code that produces the same assembly
witcher3_sharpening.jpg

  • shows that using DXGI functionality can be used to keep track of Vulkan memory usage on Windows
  • presents how to identify physical adapters between Vulkan and DXGI to deal with multi-GPU systems

  • experiments with using DXGI for memory reporting when using Vulkan
  • results are presented for the system using one AMD and one NVIDIA GPU
  • memory management behavior seems to be different between the vendors
  • DXGI appears to be able to report sensible application local memory usage information

  • the extension allows the application to collect timing information from the presentation engine and schedule presents at specified times
  • the post presents results from experimenting with VK_GOOGLE_display_timing on Android and Mesa (X11)
  • list of issues encountered and possible points of improvement

  • explains how ray-tracing could be used for arbitrary data-lookup in 2D and 3D
  • can handle more data points where the signal changes more rapidly
  • a texture has a fixed resolution and cannot adjust to varying density needs
ray2d.png

  • shows how to generate a depth pyramid for Vulkan
  • takes the depth buffer and produces a conservative mipmap chain
  • preparation for GPU occlusion culling in the next episode
depth_pyramid.png
  • implementation of GPU occlusion culling into the mesh-shader and classical rendering pipeline
gpu_culling.png
  • list of resources for beginners that are looking to get started with graphics programming
  • new Vulkan extension that allows usage of the C++ memory layout in Vulkan constant and structured buffers
  • this relaxes the alignment requirements
  • presents how to recover the scale, rotation, and position from a model matrix
  • rotation is retrieved as a rotation matrix
original_rotated_axes.jpg

  • a presentation about the development and design of a C++ library implementation that allows GLSL shaders to run on the CPU
shaders_cpp.png

If you are enjoying the series and getting value from it, please consider supporting this blog.

Support this blog

Read more

1 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