Frame Graph was an experimental feature in Babylon.js v8.0, and has now officially reached v1.0 in v9.0!
What is a Frame Graph?
The Frame Graph system is a powerful tool for creating and configuring the different rendering passes used during the course of a frame.
It is a modular system, which allows you to create autonomous and efficient rendering modules, which improves extensibility thanks to decoupled and composable modules.
Frame graphs simplify and optimize resource management: by reusing textures, you can potentially save tons of GPU memory, depending on the complexity of your graph!
Frame graphs also allow you to do things that were not previously possible with our fixed rendering loop.
Thanks to the new visual editor Node Render Graph Editor (NRGE), it is very easy for anyone to visually create the layout of a frame, without any programming!
Frame Graph documentation
All documentation is available at the following address:
The documentation describes in detail how the frame graph framework works, all major classes involved, as well the the different building blocks (tasks) you can use, both programmatically and through a node render graph.
An introduction to the use of frame graphs is available here: Babylon.js docs
There are also some simple and more advanced examples available here: Babylon.js docs
New with Frame Graphs
There’s a new volumetric lighting post-process effect, only available with frame graphs:
PG: https://playground.babylonjs.com/?webgpu=&inspectorv2=true#WLGEJB#7
You can find this example and many more in the Frame Graph Task List page.
As mentioned above, you can also perform operations that are not possible with our existing static pipeline, such as using the glow layer in multiple render target textures:
PG: https://playground.babylonjs.com/?inspectorv2=true#IG8NRC#91
Or generate geometry textures with VAT support:
Documentation and PG: Babylon.js docs
Your turn!
We encourage you to test this new feature as much as you like and see if it can be useful to you.
Please also feel free to post your comments and report any problems you may encounter or any features you think are missing.
We are very excited about this new feature!

