The dependency graph describes the relation between all objects in a scene, providing the render engine with everything it needs to generate a frame. For 2.8, it is completely redesigned and Sergey gives an overview of the changes on Code.blender.org.
This post is all about dependency graph design for the Blender 2.8 project.
Before going too much into technical details let’s first look into some top-level design overview about what’s this project is all about, what would that all mean for users and how it’ll affect on everyone working in 2.8 branch.
- Dependency graph is owned by layer.
- Dependency graph holds both relations AND evaluation data (aka state of the scene).
- Dependency graph allows Render Engine to store its specific data in the evaluation context.
- Dependency graph evaluation data is aware of copy-on-write and data de-duplication.
- Dependency graph stays flexible to support data compression in the future.