This series can now be supported on Patreon. Vote on the roadmap and monthly summaries for December and January are available as reward tier.
- chapter from the Ray Tracing Gems book
- describes the real-time GI preview system developed for the Frostbite engine, runs on the GPU asynchronously to the editor
- uses an irradiance cache light map approach with denoising applied
- presents performance and results of different acceleration techniques
![frostbite_gi_system.png](https://www.jendrikillner.com/img/posts/graphics-programming-weekly-73/frostbite_gi_system.png&key=323600f84e01b370f1f7d370aa40c5b94dbbc342f8745701c209e2dfc43bbbf0)
- shows the frame breakdown of Shadow Fight 3
- rendering approach designed to reduce the number of draw calls
- explains how the rendering system was designed to take advantage of the game design constraints to find very cheap solutions for lighting, shadows, and reflections
![shadow_fight_3.png](https://www.jendrikillner.com/img/posts/graphics-programming-weekly-73/shadow_fight_3.png&key=f24a94f9c914566d8aad65b8925a1603f94ad6c9f53768734bf2e22d6b252a77)
- presents performance optimizations done for the 2D rendering system
- reducing overdraw for blended objects
- discussion of texture compression formats for detailed 2D pixel art
- using YCoCg-DXT compression to split luma and chrominance
- requires two textures instead of 1 but still a performance win for the game
![fff_texture_compression.png](https://www.jendrikillner.com/img/posts/graphics-programming-weekly-73/fff_texture_compression.png&key=c0d94e51d2c4bf14c736c84bd48bd4b598e47f0c09683ce8971e523a007a6b37)
- shows how to set up full-screen quad geometry data so that attribute interpolation can be used to generate the camera rays in a vertex and pixel shader with few instructions
![perspective.png](https://www.jendrikillner.com/img/posts/graphics-programming-weekly-73/perspective.png&key=baef89e5a8141934e9ebdde388c2d31d0367201cc713a655809257a43dcdf5e3)
- card deck that introduces visual shapes and GLSL code required to create them
- combined with The Book of Shaders (by the same author) it provides a good starting point for artistic shader projects
![PixelSpirit.png](https://www.jendrikillner.com/img/posts/graphics-programming-weekly-73/PixelSpirit.png&key=c4f886f9c2b4cc3ad92d316d7b0bc7baa1947a060753910227515bc48d680e97)
- presents a brief look at the performance of emulating a custom command buffer format on top of OpenGL
- notices a 7% overhead from the command buffer parsing
![opengl_command_buffers.png](https://www.jendrikillner.com/img/posts/graphics-programming-weekly-73/opengl_command_buffers.png&key=0ee19be49844aa4283ffd5669eba45ffc35e5be9390caa8bc006ffe0691d579d)
- explains how to create a pulsating vertex effect using Unity Shader Graph and the lightweight rendering pipeline
- shows how to set up the shader node graph and control parameters it from C# scripts
![vertex_effect_unity.png](https://www.jendrikillner.com/img/posts/graphics-programming-weekly-73/vertex_effect_unity.png&key=8c52ea432927d3205542091cbcd502e43020f2bf9e3fb1d3967d1d18bd86a69d)
- shows how debug compute shaders when using BGFX
- a brief introduction into what is necessary to compile the project
- explains how to compile shaders so that debug information is available and can be used with RenderDoc and the Visual Studio Graphics Debugger
![bgfx_debugging.jpg](https://www.jendrikillner.com/img/posts/graphics-programming-weekly-73/bgfx_debugging.jpg&key=1a877682ee0ddd7ce46ae6729c84f1f19b1c4b5d1c3b5dd3c2c278554a67e3f2)
- open-source AMD Linux driver adds support to use async compute to cull primitives before the vertex shader stage
![driver_primitive_culling.jpg](https://www.jendrikillner.com/img/posts/graphics-programming-weekly-73/driver_primitive_culling.jpg&key=85ee877ef0d0496370c6ed45b15dd191a6c27b6b1e4f629fc3a50236f1821bfe)
- added support for ray and path tracing for the D3D12 backend
- low-level abstractions and high levels features have been implemented
- includes GI path-tracer to generate reference images directly in the editor
- preview for render graph API
![unreal_422.png](https://www.jendrikillner.com/img/posts/graphics-programming-weekly-73/unreal_422.png&key=df45e88061d557c9780a7b416a9edc4d23e77c155d6ea12b54a8992c949f1401)
![wood_tiling.png](https://www.jendrikillner.com/img/posts/graphics-programming-weekly-73/wood_tiling.png&key=fcf0016597cf8ed3900048e6d3130ebb32d0b8b4527a98ed738abd93866b765a)
- list of Unreal events/talks/presentations that will take place at GDC
![unreal_gdc_2019.jpg](https://www.jendrikillner.com/img/posts/graphics-programming-weekly-73/unreal_gdc_2019.jpg&key=670d51d5895f43878de13afe5c5076c357d625786f4219c210fee1092687d767)
- presents a brief history of the development of WebGL and it’s adoption
![architosh_webGL.jpg](https://www.jendrikillner.com/img/posts/graphics-programming-weekly-73/architosh_webGL.jpg&key=3e4821c31102f712c12c88989045eb805ecbe3f6b7a852ecf1264725d9c7e089)
- presents the equations necessary to express point- and directional lights when only area lights are supported
- presents a simplistic approach to tone mapping results from a renderer
Thanks to Angel Ortiz @aortizelguero for support of this series.
You would like to see your name here too? Become a Patreon of this series.