- explains an O(n) algorithm that calculates 2D distance fields by operating on rows and treating samples as overlapping quadratic parabolas
- shows ideas to visualize distance fields, generate tiling noise and some use-cases of distance field functions
![distance_fields.png](https://www.jendrikillner.com/img/posts/graphics-programming-weekly-58/distance_fields.png&key=ac3f191b8f0d2e83407eabd1edc44ce5cc59b303b3fd00d219fad9ec32ed7928)
- slides from XDC (X.Org Developer’s Conference)
- Vulkan timeline semaphores
- allow increasing a 64-bit value on signal and wait on “greater than” a target value
- unified system for CPU and GPU waits
- look at how to implement them in the drivers
- many more talks about OS-level graphic topics
![khronos.png](https://www.jendrikillner.com/img/posts/graphics-programming-weekly-58/khronos.png&key=f1552a6f821a1b53899cfb8d9d7b7e194d9fec2468845504e53678db65fcdef7)
- compute shader based adaptive GPU tessellation technique using Mesh Shaders on Turing
- up to ~25% rendering time reduction at high tesselation rates
![mesh_shader_tesselation.png](https://www.jendrikillner.com/img/posts/graphics-programming-weekly-58/mesh_shader_tesselation.png&key=f6c211bdfc3c102f657928e8a3c13c9dda08e17a41255b58591b2e1703deec41)
- explains the Vulkan ray-tracing extension
- contains an overview of the ray tracing pipeline, the new shader types and how to interact with the API
- shows how to generate the acceleration structure, update and compact it as required
![ray_shaders.png](https://www.jendrikillner.com/img/posts/graphics-programming-weekly-58/ray_shaders.png&key=d79f30de5a8583234a17a251367a84c9b6756cf9cdbcb587d7321a12b856495e)
- explains the mathematical foundation behind deep composition that allows compositing of volumetric effects such as fog
![reproj_spot.png](https://www.jendrikillner.com/img/posts/graphics-programming-weekly-58/reproj_spot.png&key=20350d71e6b43aa03453aaf6c8ba0d41882a71b300c3de59aa6f763267de8326)
- walkthrough of the steps required to render the Moana scene in the authors custom path tracer
- uses a binning scheme on rays combined with on-demand geometry loading to be able to render the scene on a 32 GB RAM machine
![SelasBeachCam.png](https://www.jendrikillner.com/img/posts/graphics-programming-weekly-58/SelasBeachCam.png&key=ef226e658ed657910f9fd830aca9208ca9fd64d29d7959f3b07f394291d5b2bd)
- discusses a change to the SDL render back-end that will batch CPU rendering commands to reduce the number of draw calls required
- this will improve performance significantly
![sdl_batching.png](https://www.jendrikillner.com/img/posts/graphics-programming-weekly-58/sdl_batching.png&key=aa4cad4bd0f77f000cb34e6481785a1f7b2af8ac7ea3e93b8c3bec6b2f3230ce)
- next part of the series on gfx-hal usage (low-level graphics API for Rust)
- adds support for loading and using vertex buffers
![gfx_hal_part02_00.png](https://www.jendrikillner.com/img/posts/graphics-programming-weekly-58/gfx_hal_part02_00.png&key=60af8ac36c2e8acadf6b2d28d87176941e1c2c18004ac7be51c9a0ce2dad6061)
- explains a water ripple system implementation that uses a top-down projection of ripples onto the water surface in a separate rendering pass
![RippleTex.jpg](https://www.jendrikillner.com/img/posts/graphics-programming-weekly-58/RippleTex.jpg&key=10c308bece5f20a09fb79b7d5b20773e26850c14a123945c0fb559c84920e3c8)
- updated SDF function for a capped cone, round cone, and an ellipsoid
![gfx26.png](https://www.jendrikillner.com/img/posts/graphics-programming-weekly-58/gfx26.png&key=62982c8f8698d69fb5f50f222fd4f0967fe5e8815aa671aba11fef338c7096ff)
If you are enjoying the series and getting value from it, please consider supporting this blog.
Support this blog