- review of problems with classical APIs (OpenGL) and motivations for the creation of WebGPU
- presentation about Dawn, WebGPU implementation from Google
- splits into render passes that insert resource transitions between passes automatically
- how numerical fences are implemented (Monotonically increasing values indicate a timestamp in GPU execution history)
- considerations for implementations using cross-process communication
![dawn_binding.png](https://www.jendrikillner.com/img/posts/graphics-programming-weekly-65/dawn_binding.png&key=768a658dcf1f8655e9cc8dfd6047bcf1755ef8c144e8c5c74fd31ace631a068d)
- part 2 of Vulkan raytracing series
- extends the application with multiple 3D meshes, texturing, simple shading, shadows, reflections, and ice shading model
![screen_08_opt-min.png](https://www.jendrikillner.com/img/posts/graphics-programming-weekly-65/screen_08_opt-min.png&key=f8b6d7ea32a0f4c6b09f99bc90585a2ecd3823f3e17151a524b1486ef9023ada)
- development of a new rendering framework for transmittance for participating media that enables non-exponential media types to be represented
- archived by splitting transmittance into 4 transport functions
- discussion of how to express this new model so that it is intuitive to use and still creates physically correct results
![nec.png](https://www.jendrikillner.com/img/posts/graphics-programming-weekly-65/nec.png&key=0fcf0ece52ef364dedb8109af7b4e2df249893432b57c25d9367064d1b45163a)
- walkthrough of the implementation of a rain material using the Unreal Engine 4 shader graph
![rain_window.jpg](https://www.jendrikillner.com/img/posts/graphics-programming-weekly-65/rain_window.jpg&key=35796a6f062e521867ae7a852490841039f37bc829f5375d8a17170cbf5a04be)
- a short summary of what spherical harmonics are and what they are used for
- proposes a sanity check for SH projection code, by passing a function with a constant of 1, should result in a first coefficient close to 2√π
![sh_math.png](https://www.jendrikillner.com/img/posts/graphics-programming-weekly-65/sh_math.png&key=7a11b686990439348d4af2db75289d04a3dccf619762ee19d03b59c524d631c1)
- article series about procedural routines for color generation
- talks about some techniques to generate procedural color variations
- explains HSB color space and the effect of changing each component
- convert from RYB hues to HSB hues
- generation of monochrome color schemes
- how the difference in colors influences human perception
![value-ex2.jpeg](https://www.jendrikillner.com/img/posts/graphics-programming-weekly-65/value-ex2.jpeg&key=2b507ba3b37963cae305e32e6106b90e7b9ba31d74bae34239e494d05737b9eb)
- a sample that explains how to use Metal to generate render commands on the GPU
- implements GPU culling only to issue rendering commands for visible meshes and remove empty draws
- the final command buffer submission is controlled from the CPU
![indirect_command_buffers.png](https://www.jendrikillner.com/img/posts/graphics-programming-weekly-65/indirect_command_buffers.png&key=7a2749a510d85da16a3b17394fc504dee7491c82fa8e0e79055e46e55804af71)
- explains a new model for sampling visible normals of the GGX distribution
- summarizes the properties of GGX and how sampling a 2D projection of the truncated ellipsoid is equivalent to sampling the visible normals of the GGX distribution
- the method is more precise and quicker than previous methods
- provides a GLSL implementation
![ggx_visible_normals.png](https://www.jendrikillner.com/img/posts/graphics-programming-weekly-65/ggx_visible_normals.png&key=04520ab435be1c7e1ba78ca4bf6ae7a56dd2d19f1bb662c86fa7480e1976c5a2)
- twitter thread that discusses what a BRDF is and how they are formed
- links to sources with more in-depth information
![brdf.jpg](https://www.jendrikillner.com/img/posts/graphics-programming-weekly-65/brdf.jpg&key=cd47a5aba4878d940ad9b8176f4cc866c800203a752cdbd350006be5fcb23941)
![halcyon_engine.jpg](https://www.jendrikillner.com/img/posts/graphics-programming-weekly-65/halcyon_engine.jpg&key=cbfb28028fc9ab745645135966183b420fa074c05704f18e9fdc2c87bf096495)
- the walkthrough explains how to use GLSL-reduce to simplify a GLSL shader and preserve certain conditions such as a crash or invalid output
- this is achieved with an interestingness test script
- the script expresses what is considered to be interesting, such as specific compiler crash, high memory usage, long compile time, etc
- presents the problem of bug slippage, this happens when a reduced shader generates a problem, but it’s not the same problem as in the original shader
- a tutorial explains how to implement ray traced shadows when using a signed distance field to represent the scene geometry using Unity
![2d_sdf_shadow.png](https://www.jendrikillner.com/img/posts/graphics-programming-weekly-65/2d_sdf_shadow.png&key=9731fca1f9ccff0b66b73eb018a048ab66b84d37b31261cac248f67e13aa63fa)
- interactive WebGL demo for the paper describing a technique to reduce firefly artifacts from path tracer outputs
![fireflights.png](https://www.jendrikillner.com/img/posts/graphics-programming-weekly-65/fireflights.png&key=f7d7b1de53e2b42ad9f37b53ddfe758d1df08fdc19954795604f81531dfbd12e)
If you are enjoying the series and getting value from it, please consider supporting this blog.
Support this blog