- the complete 3rd edition of Physically Based Rendering is now online for free
- the post explains the history of the book and decisions that led to making the book available for free
- authors can be supported on https://www.patreon.com/pbrbook
![pbr_landing.jpg](https://www.jendrikillner.com/img/posts/graphics-programming-weekly-59/pbr_landing.jpg&key=7204aaf3b630aefd7695dec2d8fe0f20b4b4c76a7b35342a6e3f4659e4ab17fc)
- summarizes voxel ray tracing implementation, memory and performance optimizations
- show the different artifacts that can be encountered and their solutions
![screen_space_to_voxel.png](https://www.jendrikillner.com/img/posts/graphics-programming-weekly-59/screen_space_to_voxel.png&key=ceb5f802ebaa74991fad6a82dade4bb27537ecc962577363388ffdf08d4e6cb6)
- next part in the Metal ray tracer series that adds support for multiple bounces to simulate global illumination
- implements importance sampling for diffuse BSDF
![multiple_bounces.png](https://www.jendrikillner.com/img/posts/graphics-programming-weekly-59/multiple_bounces.png&key=4a5c49f9a135830fe720bea678432c8c7b735fc4bf14795f72c7a7fcd468ece7)
- extending the material system of the Metal raytracer so that multiple materials can be expressed and importance sampled correctly
- changes sampling heuristic to support multiple importance sampling. This enables both rough and mirror-like surfaces
![improving_material_system.png](https://www.jendrikillner.com/img/posts/graphics-programming-weekly-59/improving_material_system.png&key=e1beee8949140b67d302e98bb0ce39e8d3fa69786b7270ff2532b5e4839b0b88)
- 2-minute video summary of the “Position-Free Monte Carlo Simulation for Arbitrary Layered BSDFs” paper
![layered.jpg](https://www.jendrikillner.com/img/posts/graphics-programming-weekly-59/layered.jpg&key=83f499f83a3d0363c22a7a64a54d813ae4b6c6f7357fd1aa0beb413e2ece3774)
- overview of the strengths and weaknesses of different sampling techniques in ray tracing
- presents links to papers that present methods that are aimed at creating better-stratified sampling results
![flavors_ray_tracing.png](https://www.jendrikillner.com/img/posts/graphics-programming-weekly-59/flavors_ray_tracing.png&key=6e9c682f1bb986bd4f6f648fd98a4f500b95bd4a178dda9046595e000336c6f3)
- stream that adds support for rendering meshes using Nvidia mesh shader extensions
![meshshader_unoptimization.png](https://www.jendrikillner.com/img/posts/graphics-programming-weekly-59/meshshader_unoptimization.png&key=da2310af3907c1bf13b459310b60bf39bcd745b20b77acbc09ef387e5c562b5c)
- during the stream, the mesh shader pipeline is optimized
- performance parity with the classical rasterization pipeline is achieved without GPU culling
![meshshader_optimization.png](https://www.jendrikillner.com/img/posts/graphics-programming-weekly-59/meshshader_optimization.png&key=1d50df4b848d12db726beb39570b6d341f40ded63754279b23ec8e065db6d66c)
- shows how to implement interior mapping using the Unity reflection probe system
- explains how to set up the model and environment to generate the required probes and how to apply the reflections to the windows
![interior_mapping_probes.png](https://www.jendrikillner.com/img/posts/graphics-programming-weekly-59/interior_mapping_probes.png&key=b42d9b6034f03f135350f213ed3c11cd016dd4c3ae1371eff2b248a1c2e20c79)
- rust version of the meshoptimizer library is now available
- the post explains how to setup Rust code to be able to compile, link and use existing C code from Rust
![meshoptimizer_rust.png](https://www.jendrikillner.com/img/posts/graphics-programming-weekly-59/meshoptimizer_rust.png&key=b8ba97d0f341673dcb6987815028dbfdb8aceff98ca410a8dd88692bc1fe45df)
- the presentation explains how Global illumination has been implemented in the Godot engine
- talking about GI probe generation, deterministic light baking and the interacting with the shading pipeline
![gi_godot.png](https://www.jendrikillner.com/img/posts/graphics-programming-weekly-59/gi_godot.png&key=8bc3a02e925beb2b62a28a0ee006f889d2f6e749cf1e35003782f09ef42573c0)
- walkthrough of a Godot shader that uses particles to spawn vegetation meshes based on height map and feature (biomes) map data
![grass_shader.png](https://www.jendrikillner.com/img/posts/graphics-programming-weekly-59/grass_shader.png&key=b60f7460b0f5676b5da5ff63a790e2cf62d6dde71f9f8b940b53e2eb7a876aaa)
- a brief summary of the usage of premultiplied alpha using Vulkan
- pre-multiplication is done in the pixel shader, no texture pre-processing is used
![BlendModesSample.png](https://www.jendrikillner.com/img/posts/graphics-programming-weekly-59/BlendModesSample.png&key=9484353db17d56461a300cdeab84c30b8c282b2d0757667c2388ee30a7049e8d)
If you are enjoying the series and getting value from it, please consider supporting this blog.
Support this blog