Erik Jansson - GPU driven Rendering with Mesh Shaders in Alan Wake 2
Digital Dragons2 HN recommenders · 2024–2025
29K views · talk · evergreen · Uploaded 2024-10-10
A Remedy engineer explains how Alan Wake 2 moved to a GPU-driven rendering pipeline built on mesh shaders, culling and rendering meshlets for dense vegetation on PS5 and Xbox Series consoles.
HN points to it as a detailed production example of mesh shaders and GPU-driven rendering, though some find it daunting.
24:26The Beauty of Bézier Curves
Freya Holmér
1:13:50The Continuity of Splines
Freya Holmér
3:36elevated by Rgba & TBC | 4k intro (FullHD 1080p demoscene demo)
Demoscene High-Quality Videos (Annikras)
1:04:04Overwatch Gameplay Architecture and Netcode
GDC Festival of Gaming
24:46Painting a Character with Maths
Inigo Quilez
45:35The Real Story Behind Wayland and X - Daniel Stone (linux.conf.au 2013)
Mladen Mijatov
42:30RustConf 2018 - Closing Keynote - Using Rust For Game Development by Catherine West
Rust Programming Language
1:10:00A Deep Dive into Nanite Virtualized Geometry
SIGGRAPH Advances in Real-Time Rendering
4 comments from Hacker News
A related talk of using Mesh shaders for Alan Wake 2 [VIDEO] And I find Apple’s intro to mesh shading to be a fairly good primer for someone unfamiliar with Mesh shading [LINK]
This is a great read, thank you for sharing! I learned a lot from reading it and I'm pretty experienced in this space! I enjoyed checking out your other work too. OPs article heavily covers Vertex Amplification. I didn't realize VisionOS used Vertex Amplification for this, but it makes sense since the hardware supports it. For those interested in Mesh Shading (a few good videos released this week [1][2][3]), Vertex Amplification is a key tech for Mesh Shading, where one writes Object/Mesh functions (names in Metal API, called Task/Mesh/Amplification shaders in other APIs). Introduced by Nvidia in 2018 and only really available en masse for the last couple years, Vertex Amplification was the first time a GPU could create vertices (or "destroy" them by not emitting anything), versus the fixed mesh inputs. It's so cool and powerful and a different way of thinking about the pipeline. This article shows the same concept, but in Vertex Shaders for multiple render targets. While you might not make a Vision app, it could be worthwhile read to further understand this architecture. I've spent a few months in Metal Mesh Shading and hadn't realized this application of it at all. [1] [LINK] [2] [LINK] [3] [VIDEO] (good explanation and demo)
For example OTOY uses CUDA renderering. [LINK] If you prefer actual code, [LINK] and "Mesh Shaders - The Future of Rendering" [LINK] "GPU driven Rendering with Mesh Shaders in Alan Wake 2" [VIDEO]
Definitely reverse engineering and shaders. Watching these kinds of talks I realize, I'm not built for this: [VIDEO]