- how to use two Vulkan queues to enable optimal scheduling for compute-shader based post-processing
- discussion how fragment → compute can introduce bubbles on the hardware
- uses two software queues with semaphore synchronization to overlap early work in the frame of the following frame with the post-processing work of the previous frame
![compute.png](https://www.jendrikillner.com/img/posts/graphics-programming-weekly-43/compute.png&key=ed19a3432b749db7c138894172bcf1b8aa76bd6f206c0af3623c199ee0103ef3)
- explanation of to use Monte Carlo integration to calculate the area under a curve
- extending the system to deal with non-uniform random numbers distributions
- convergence can be faster when using a distribution that is a closer match to the signal that is being sampled
![sinx2integral.png](https://www.jendrikillner.com/img/posts/graphics-programming-weekly-43/sinx2integral.png&key=ddb53f6648527728387d973cf18dfeacbda799eb43b9e4b9f4135d0f8d312ce2)
- timing capture now visualizes fence signal and wait
- fences can be named
- shader edit and continue workflow improvements
- shader resource tracking for DXIL shader
![gpusignalunblockcpuwait.png](https://www.jendrikillner.com/img/posts/graphics-programming-weekly-43/gpusignalunblockcpuwait.png&key=c8509a11d41694cae1e0620428cd4fb76edc94455d5173b10c92f8b67b0234f1)
- shader playground added support for slang
- a shader language that extends HLSL to make it more modular and extensible
- ability to shows the control flow graph in GraphViz ‘dot’ form for SPIRV
- using lookup tables to precompute the endpoints better compression results
- different number of lookup tables allow tradeoffs in performance, quality and memory usage
![orig.png](https://www.jendrikillner.com/img/posts/graphics-programming-weekly-43/orig.png&key=a2a22b6291c74753f4dbd86d3a8ce3200baffc033d87733fd6b254ff10d55f8a)
- talks from Microsoft at GDC are online
![microsoft_gdc.png](https://www.jendrikillner.com/img/posts/graphics-programming-weekly-43/microsoft_gdc.png&key=965bb3965083a8e80bbd1a738ef51fc8a8e0fdfd9608332433da08d01b72f486)
- discusses the history and design of their in-house procedural texture generation tool
![texture-breakout-500.png](https://www.jendrikillner.com/img/posts/graphics-programming-weekly-43/texture-breakout-500.png&key=d4974cf68f3f05af0c5b4cf8562ecb516f0ad5f51af24f816ff7cdd5a4d2b4da)
- discussion of the photogrammetry workflow
- camera used to capture, tools to generate the mesh and normals
- using unity Unity’s DeLighting tool to remove shadows are even present on an overcast day
- Tree assets are created with a mix of scans, 3ds max plugins, and quixel megascans assets
- a fluid solver is used to calculate the flow map for the wind, shape exploration and VFX generation
![tree_book_of_the_dead.png](https://www.jendrikillner.com/img/posts/graphics-programming-weekly-43/tree_book_of_the_dead.png&key=727000b23de7836b56205e150f0e10671d09d9f8393a40ee661994877ca6e032)
- overview of all the post effects that can be found in PostFX v2
- code is on github
![postfx.png](https://www.jendrikillner.com/img/posts/graphics-programming-weekly-43/postfx.png&key=656430ef25d6907858756994e09503a3544eb132d07b555215e761195091587c)
- explains the basic of path tracing used in his D3D12 path tracer
![traced_result.png](https://www.jendrikillner.com/img/posts/graphics-programming-weekly-43/traced_result.png&key=9283216e93aa3fc4e31554ad19aada1577e92fc3416c8859637dda3c55347cb0)
- discusses engines, frameworks, abstraction layers that support metal
![opengl.png](https://www.jendrikillner.com/img/posts/graphics-programming-weekly-43/opengl.png&key=e0606cd84aad26bbcced2f11419019530d9b7a41ad404598955c4ba475fa2edd)