- how the stylized vfx in Rime was implemented
- short overview of fire and smoke effect
- in-depth overview of the water rendering implementation
![thumbnail_youtube_01_forward.png](https://www.jendrikillner.com/img/posts/graphics-programming-weekly-37/thumbnail_youtube_01_forward.png&key=160c4f55506a9b0eb59d635f620c7f488d14c1809c7db06f2c3f2c2ed609bbc5)
- explanation how to query reflection information from SPIR-V shader
- brief overview of the the SPIR-V type system
- explanation of the implementation of Pixel Projected Reflections using vulkan
- supports approximation of normal maps and roughness
- comparison against brute force ray tracing implementation (image quality and performance)
![ppssr.png](https://www.jendrikillner.com/img/posts/graphics-programming-weekly-37/ppssr.png&key=54c3ad9e1b1f0765bb3dc6b5954c7f2b005fa66c07aa97a18a613b6b32dd4fd0)
- how to implement a ray tracer using a compute shader in unity
- features supported: sky box, ground plane, spheres, reflections, directional light with hard shadows and a basic material system
- simple temporal anti-aliasing solution
![gpu-rt-result-close.png](https://www.jendrikillner.com/img/posts/graphics-programming-weekly-37/gpu-rt-result-close.png&key=2295b5f377294552f8fd552cf8b19e62f76ca3a7996a460df0579dfe3fd67617)
- shows the steps leading up the final implementation
- uses a fixed weight for all contributing samples. If sample doesn’t contribute, blend in the current average color instead
- clamping sample size when sample is further away then the center sample. This makes sure out of focus background do not blur into in-focus foreground objects
![depth_of_field.png](https://www.jendrikillner.com/img/posts/graphics-programming-weekly-37/depth_of_field.png&key=3ea3444acf61e7c31ec58c0f58e6e69f6dafd2fac5ddfcf56db4543a62a9f0fa)
- texture compression library in just 500 lines of C code + Zstd
- zpng compressing is quicker, takes 6% of the time and output size of the image is 66% compared to the png reference
- presentations from the Vulkan Montreal dev day
- including updates about HLSL in Vulkan and descriptor indexing
![2018-vulkan-developer-day-banner.jpg](https://www.jendrikillner.com/img/posts/graphics-programming-weekly-37/2018-vulkan-developer-day-banner.jpg&key=860407f27f4c2dc2f6e33e607dcc496c93c695f45a91b51e18591775a1d56621)
- comparison of Draco and mesh optimizer output in regards to size and decoding time
- Draco size compression is mesh dependent, can be larger. Always a lot slower to decode
- most of the AMD presentations from GDC have now been uploaded
![gdc_header.png](https://www.jendrikillner.com/img/posts/graphics-programming-weekly-37/gdc_header.png&key=1966e06ec351d5c926d8ce98d7da54945ebbd09e8ef3cde07b9598a95236ab18)
- examples for arguments buffer have been published
- allow the grouping of resources and constants into a single object that can be bound as a single unit
![argument_buffer.png](https://www.jendrikillner.com/img/posts/graphics-programming-weekly-37/argument_buffer.png&key=c46cd286e92a40a79d2a40671d071a403ec90d03662edcd5328ba750e9c55ebd)
- tool that allows simplifications for static VR environments
- takes RGB + depth as input images
- generates simplified geometry that textures will be mapped onto to represent the scene
- prebuild version can be found here: https://github.com/ddiakopoulos/seurat/releases
![seurat.png](https://www.jendrikillner.com/img/posts/graphics-programming-weekly-37/seurat.png&key=44c7840a7d167338f0b9f58dc02640d38957d094961a7d0d9b284cbe2244c1f8)
- build upon the ideas of moment shadow mapping
-
transparent geometry is rendered twice
- determine transmittance function per pixel
- composite all transparent surfaces
taking advantage of the fact that the logarithm of the transmittance can be accumulated additively
![mboit.png](https://www.jendrikillner.com/img/posts/graphics-programming-weekly-37/mboit.png&key=a77d16a94f9bb157fe3cc1edb73184323b04b1732762564696dc7ddbb0a809ec)
- overview of the new rendering API
- build around method chaining for the initialization of descriptors