- shader tutorial aimed at beginners that teaches shader fundamentals using Panda3D and GLSL
- starting with the basics of coordinate spaces, and GLSL shaders
- shows how to implementing texturing, lighting, normal mapping
- additionally outlining, fog, bloom, screen space ambient occlusion, depth of field and several stylization techniques
![game_shaders_for_beginners.png](https://www.jendrikillner.com/img/posts/graphics-programming-weekly-85/game_shaders_for_beginners.png&key=d74e7f1afe6475c91db852f46d4ed6aaeca6de077b08f1a0e1fe2ee2c6f14da4)
- explains tone mapping terms and how the human vision perceives changes in luminance
- the viewing environment has a significant influence on the perceived dynamic range
- shows how different display technologies deal with bright pixels and what artifacts they produce
- FreeSync provides information about the HDR capabilities of a connected to monitor to the application to be able to adjust the tone mapper accordingly
![freesync2-hdr.png](https://www.jendrikillner.com/img/posts/graphics-programming-weekly-85/freesync2-hdr.png&key=3646e0f751d08b743c4779b953fbd0e6d918005c8ec044f0dc176ee9b6ddc231)
- paper on path trace denoising
- aimed at interactive scenarios with 1 sample per pixel
- using linear regression and temporal anti-aliasing combined with many problem-domain specific improvements
![bmfr-big.png](https://www.jendrikillner.com/img/posts/graphics-programming-weekly-85/bmfr-big.png&key=e2725779f0e2a8e4b75a5a35bcc8200e97cd774204478af477972cc591002d7f)
- Vertex Descriptors in Metal allow the programmer to describe the memory layout of vertices
- shader compiler inserts the necessary fetch logic to read the data correctly
- this allows decoupling of vertex memory layout from the usage in shaders
![noninterleaved-attributes.png](https://www.jendrikillner.com/img/posts/graphics-programming-weekly-85/noninterleaved-attributes.png&key=7fc42f98f798bc9bf4c6f4824c67af89ced5dcc4ab8adfa60dfe65685ff62405)
- shows how to implement Asymmetric Projection
- adjust the projection on a render-to-texture in 3D space so that it appears as if the viewer is looking through a portal into another 3D space
![PortalswithAsymmetricProjection.png](https://www.jendrikillner.com/img/posts/graphics-programming-weekly-85/PortalswithAsymmetricProjection.png&key=10798dd5336bee4a8fb7833c7d9ca71f22e0f35cfd56545d55de5adbb3ad0a67)
- the new version adds support for hardware-level tracing on an instruction level
- now shows the ISA inside of the pipeline view too
- support for user markers have been added
- a small overview of how to interpret the provided data
![rgp_user_events.png](https://www.jendrikillner.com/img/posts/graphics-programming-weekly-85/rgp_user_events.png&key=7e37b6272c6586211496249c2ac5887a2f1372b18cc0b50207bcb3470cc5be23)
- the tutorial shows how to use BGFX running on Linux
- initialize BGFX, load shaders, and models and draw a cube on screen
![bgfx_tutorial3.png](https://www.jendrikillner.com/img/posts/graphics-programming-weekly-85/bgfx_tutorial3.png&key=75a4798d40e5ddcf78986b651663ee0bdbac6878cfc9ffdfeadca2623a2b933a)
- example project for a course teaching the basics of shader development using Unity
- covers vertex, pixel, surface shaders
- additionally talks about Shader Graphs and post-processing
![unity_shader_development.png](https://www.jendrikillner.com/img/posts/graphics-programming-weekly-85/unity_shader_development.png&key=e41345ff2ef5b70d535a77029f1b82fb367e165bc747f46bd06447ff6798a11b)
- collection of VFX tweets of the week
- tutorials, demos, and showcases of great looking effects
![technically_art_18.png](https://www.jendrikillner.com/img/posts/graphics-programming-weekly-85/technically_art_18.png&key=3439df583868113922c341ac4652f89cc033837e18cc18c54ce1bf53d847e0e8)
- presents what kind of approximations are still required to be done in Physically Based Rendering
- opens the question that we should start looking at the approximations to determine where to focus on for the next generation of visuals
![pbr_rendering.jpg](https://www.jendrikillner.com/img/posts/graphics-programming-weekly-85/pbr_rendering.jpg&key=a36b55cefc4f3ced3b679f707dc75cca9f4ebd318be20545df5271fa96b914ae)
- proposal of requirements that would allow WebGPU to be used as a common cross-platform abstraction
Thanks to Deepak Surti for support of this series.
Would you like to see your name here too? Become a Patreon of this series.