- using ideas from imperfect shadow map point-cloud rendering to implement reflections
- generates a point cloud around the track
- screen space pixels that are close to points of the point cloud transfer their color onto the points
- the point cloud is then projected onto a sphere around the car and used as an environment map to add reflections on the cars
![env_maps.jpg](https://www.jendrikillner.com/img/posts/graphics-programming-weekly-51/env_maps.jpg&key=5fab1c381531ee344523d44edd12fb075b8b66a18d7829098341a171b59b25d7)
- breaks down the engine into two separate related concepts, Resource and Command management
- discusses how to interact with resources
- introduces the idea of state scopes to prevent state leaking
- commands are recorded into engine specific command buffers that are later converted into the API specific format
![Record-stage-commit-model-1.png](https://www.jendrikillner.com/img/posts/graphics-programming-weekly-51/Record-stage-commit-model-1.png&key=fae2a15c3e437f5d0930700d153f23f103482383195f18f951ba4ca3b4faaec6)
- slides for most of the talks have already been published
![vancouver_hpg.jpg](https://www.jendrikillner.com/img/posts/graphics-programming-weekly-51/vancouver_hpg.jpg&key=257cc8280a9afc8820080bbd4526825ed088c8d0bfdff5cc8a19bdcfefe4feed)
- Nvidia tutorial on how to integrate DirectX raytracing and rasterization so that both rendering paths can be used within the same application
- how to initialize the API, create DXR acceleration structures
- how the ray tracing pipeline works, manage shaders, resources, and shader binding tables
- implementation of the required raytracing shaders to produce identical results with the rasterization pipeline
![rt1.jpg](https://www.jendrikillner.com/img/posts/graphics-programming-weekly-51/rt1.jpg&key=eba55c3596dc00869f6f97ddf131ad66e18bdebaac7ea620f1a747edaea108a6)
. short description of the different aspects of the Disney BSDF, including source code
![disney_bsdf.png](https://www.jendrikillner.com/img/posts/graphics-programming-weekly-51/disney_bsdf.png&key=5e63ade79485162e456ffe66a198f9073ae577874fd2db81d75f41b63f96a583)
- a technique to render screen space water using unity
- water particles write information into offscreen buffers to accumulate water information
- these buffers are then resolved to form a continues water surface instead of individual blobs
![screenspace_water.png](https://www.jendrikillner.com/img/posts/graphics-programming-weekly-51/screenspace_water.png&key=66f210c48e3b263e79a4ec7013e3035a6802011524cfba45966205e5aeb0c9b5)
- improves upon the multiple scattering approximation from the previous part of the series
- the result is a model that only requires a 2D LUT to be pre-calculated
![spi_vs_heitz_r1.png](https://www.jendrikillner.com/img/posts/graphics-programming-weekly-51/spi_vs_heitz_r1.png&key=292496448bba1327215c1e5bc54d52aa61f74e80ffc470cbf1158558de3fdbcd)
- walkthrough of two vegetation shaders created with the visual shader editor that was added in Unity 2018.1
![graph_unity.png](https://www.jendrikillner.com/img/posts/graphics-programming-weekly-51/graph_unity.png&key=40bd31928ecb67a7764259f69a0fb9f70e3edec82999613072874f9219ef05f3)
- how to improve the generation of uniform points in a sphere, disk, and a spherically capped cone
![disc.png](https://www.jendrikillner.com/img/posts/graphics-programming-weekly-51/disc.png&key=22bd3ef08349dd6818f90e407fae0b65eb2f6c89eab1ee0fed09e3c912306612)
- a tutorial that shows how to clip a mesh in a pixel shader against a plane using unity
![mesh_clip.png](https://www.jendrikillner.com/img/posts/graphics-programming-weekly-51/mesh_clip.png&key=5a92c7dfe328b2f241a571c98016c9309e1ebc52d4026ed0787e666fd8987baa)
- a web tool that allows the conversion from HLSL Shaders to HLSL 6.2, GLSL 4.5 and Metal 2.1
![conffx_logo_shadow.png](https://www.jendrikillner.com/img/posts/graphics-programming-weekly-51/conffx_logo_shadow.png&key=83c3838faf41416b5d42b0c44f86ce1b7983301bc70b8839e23e9715ffbd3e94)
- choosing a different algorithm to optimize triangle-ray intersection tests and vectorizing the calculations
![triangle_plane.png](https://www.jendrikillner.com/img/posts/graphics-programming-weekly-51/triangle_plane.png&key=44fcea121354e3660a6a3eab8b193e1cce5fc78a58e1f03ae2ed201b905d0b45)
- a quick overview of blue noise tiled with various tile sizes from 16x16 to 256x256
![obluenoise256.png](https://www.jendrikillner.com/img/posts/graphics-programming-weekly-51/obluenoise256.png&key=6a4d3a35cfec0389e789763533770c2a56bb14335bbacf707704cf20b3fa0c11)
- explores source to source optimizations techniques using the LunarGlass framework with GLSL shaders
- comparison of different optimization techniques and the effects on runtime performance
- results vary significantly between different shaders and target platforms
![shader_optimization.png](https://www.jendrikillner.com/img/posts/graphics-programming-weekly-51/shader_optimization.png&key=1c1ae686c4c08c51adfa8e314751ca89f3ef76b30522a0572b64047154ae30d6)
- overview of libraries available to write GPGPU applications using the Rust programming language
- description of the “unlit” light system being used
- it allows lights to modify tint, brightness and contrast to enable the 2D characters to match the environment better
![unlit_lights.png](https://www.jendrikillner.com/img/posts/graphics-programming-weekly-51/unlit_lights.png&key=e275dfafdd01321390381fad11e65b545f22e646bd594b94d135aaca6b65a9cb)
- a short explanation and Metal shader code for different blend modes as described in the PDF specification
![blending.jpg](https://www.jendrikillner.com/img/posts/graphics-programming-weekly-51/blending.jpg&key=acb857405faf8042a4f50949bfe6a24f3ed071b2de421a1864c119b07ef303bf)
- overview of different fire effects that are based around animated noise textures
![fire.png](https://www.jendrikillner.com/img/posts/graphics-programming-weekly-51/fire.png&key=9d85e3a19f49cd66f03c1be9ae875f77ff5698970b423351142b131ef11a2b08)
- overview of different rain effects with links to more in-depth articles discussing the showcased effects
![rain.jpg](https://www.jendrikillner.com/img/posts/graphics-programming-weekly-51/rain.jpg&key=3c34689ee9ba3b66c6734fe6422bb578a53a50cb681bb61e41473b650e3d40b4)