- explains how to create a layering parallax effect to simulate the inside of a marble using ray marching
![marbles.png](https://www.jendrikillner.com/img/posts/graphics-programming-weekly-81/marbles.png&key=047dcf2feb3884d6312d10695594771f97b9df76c9813ad6cddda40a20eeff08)
- 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
![vulkan.png](https://www.jendrikillner.com/img/posts/graphics-programming-weekly-81/vulkan.png&key=d152da3356c420cebb3d0ae192d8f00c3ce6fc95e1642a653d320d625820a795)
- PDFs for all AMD presentations from GDC 2019 have been posted
![gdc_logo.png](https://www.jendrikillner.com/img/posts/graphics-programming-weekly-81/gdc_logo.png&key=1ca3aee8b73603e13351066dd7e6755f0f7da370d32a6ceaeae81f6405843508)
- 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
![nvidia_titan.png](https://www.jendrikillner.com/img/posts/graphics-programming-weekly-81/nvidia_titan.png&key=06fd4faa5af53c9d881e07948b53abe35014a7c65062273cdf505302e9f15f4b)
- 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
![tomb_raider.png](https://www.jendrikillner.com/img/posts/graphics-programming-weekly-81/tomb_raider.png&key=38868c18d53d73f05a4d15a9673c561f0687279441b41b65b967ec1c5f053683)
- 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
![ndc.png](https://www.jendrikillner.com/img/posts/graphics-programming-weekly-81/ndc.png&key=1e01656ba4fb2fa54c496b736c7ac84250166fd26598f06d60dd1d6a654202a8)
- 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
![Clouds.png](https://www.jendrikillner.com/img/posts/graphics-programming-weekly-81/Clouds.png&key=720c4b5f0f94c534eb001f4235ce0c853e9bd637482b00019660a904de02d72d)
- Flax engine now fully supports a Vulkan backend
- better performance than the D3D12 implementation
![Post_FlaxFacts026.jpg](https://www.jendrikillner.com/img/posts/graphics-programming-weekly-81/Post_FlaxFacts026.jpg&key=992648ad0140999bc0d8ba0091d854c85ecca38f98355f33300359a248bafb55)
- D3D12 is starting to allow GPU drivers to implement shader optimization in a background thread
- provides an API to control the driver behavior
![d3d12.jpg](https://www.jendrikillner.com/img/posts/graphics-programming-weekly-81/d3d12.jpg&key=ded5b936b56d80cdc3851ee94e478a4db9b8c36bfd1bcc14957c689f7fc2a53b)
- 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
![frostpunk.jpg](https://www.jendrikillner.com/img/posts/graphics-programming-weekly-81/frostpunk.jpg&key=85877e20ec1375ba2bbce027956b294f72b78a9b28d838ca87ed8f8771a14706)
- 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
![vulkan.png](https://www.jendrikillner.com/img/posts/graphics-programming-weekly-81/vulkan.png&key=d152da3356c420cebb3d0ae192d8f00c3ce6fc95e1642a653d320d625820a795)
Thanks to Nathan Reed for support of this series.
Would you like to see your name here too? Become a Patreon of this series.