Interplay of Light
interplayoflight.wordpress.com · Personal blog · on HN since 2015
A graphics programmer writes about GPU rendering, shaders, and real-time graphics techniques, including how engines like Unreal render a frame.
What HN saysCommenters recommend it as a collection of graphics learning material and link its Unreal frame-rendering breakdown as interesting reading.
17HN people shared it
5linked it in comments
56stories submitted
539story points
8 months agolast shared
2015people per year2026
Most-shared posts
- 1Async Compute All the Things4 people · 9 points · first shared 2025 · discussion on HN
- 2A quick introduction to DirectX workgraphs3 people · 51 points · first shared 2024 · 20 comments on HN
- 3Low-Level Thinking in High-Level Shading Languages3 people · 8 points · first shared 2023 · discussion on HN
- 4GPU Utilisation and Performance Improvements3 people · 6 points · first shared 2025 · discussion on HN
- 5How Unreal Renders a Frame2 people · 317 points · first shared 2017 · 161 comments on HN
- 6How to Read Shader Assembly2 people · 79 points · first shared 2021 · 3 comments on HN
- 7Raytraced Global Illumination Denoising2 people · 6 points · first shared 2022 · discussion on HN
- 8Experimenting with FP16 in Shaders2 people · 5 points · first shared 2022 · discussion on HN
- 9Spatial hashing for raytraced ambient occlusion2 people · 5 points · first shared 2025 · discussion on HN
- 10Meshlets and Mesh Shaders2 people · 5 points · first shared 2025 · discussion on HN
- 11GPU Architecture Resources2 people · 5 points · first shared 2020 · discussion on HN
- 12How to start learning graphics programming?2 people · 3 points · first shared 2018 · discussion on HN
- 13Readings on the State of the Art in Rendering2 people · 3 points · first shared 2018 · discussion on HN
- 14Shader Tips and Tricks2 people · 3 points · first shared 2022 · discussion on HN
- 15Adventures in Neural Rendering2 people · 2 points · first shared 2026 · discussion on HN
What HN people wrote when they linked it
corysama · 2015-07-13
Marmoset's articles are a great intro. Probably the most accessible I've found.
If anyone wants to read a lot more, here's a collection of possibly a majority of the non-academic material to be found online: https://interplayoflight.wordpress.com/2013/12/30/readings-on-physical…
dsp_person · 2024-11-11
it would be cool to see a more comprehensive comparison including methods with raytracing
they have MLAB in their performance comparison table, is that ray traced? from this blog i think it sounds like it there's a rasterized version and a way to use ray tracing https://interplayoflight.wordpress.com/2023/07/30/raytraced-order-inde…
SuboptimalEng · 2023-10-11
Here's an article[0] by Kostas Anagnostou that I found helpful. He's spent over 2 decades in the graphics industry.
His article gives a path for learning from the top of the stack and going down to the lower level stuff afterwards.
TL;DR is Shadertoy -> Unity/Unreal -> Direct3D/OpenGL
[0] https://interplayoflight.wordpress.com/2018/07/08/how-to-start-learn-g…
je42 · 2018-11-27
How Unreal renders a frame is also interesting:
https://interplayoflight.wordpress.com/2017/10/25/how-unreal-renders-a…
jms55 · 2025-03-22
> Are you arguing for a better software abstraction, a different hardware abstraction or both?
I don't speak for Raph, but imo it seems like he was arguing for both, and I agree with him.
On the hardware side, GPUs have struggled with dynamic workloads at the API level (not e.g. thread-level dynamism, that's a separate topic) for around a decade. Indirect commands gave you some of that so at least the size of your data/workload can be variable if not the workloads themselves, then mesh shaders gave you a little more access to geometry processing, and finally workgraphs and device generated commands lets you have an actually dynamically defined workload (e.g. completely skipping dispatches for shading materials that weren't used on screen this frame). However it's still very early days, and the performance issues and lack of easy portability are problematic. See https://interplayoflight.wordpress.com/2024/09/09/an-introduction-to-w… for instance.
On the software side shading languages have been garbage for far longer than hardware has been a problem. It's only in the last year or two that a proper language server for writing shaders has even existed (Slang's LSP). Much less the innumerable driver compiler bugs, lack of well defined semantics and memory model until the last few years, or the fact that we're still manually dividing work into the correct cache-aware chunks.