The development team needs to make a decision regarding how we handle the backward compatibility of 2.93 files in Blender 3.0. It will help to know people’s expectations before a final decision is made.
As part of the initial Fields implementation, Geometry Nodes is avoiding hard-coded attribute names in the node-tree. That will change most of the existing nodes which will now leverage inputting and outputting attributes directly as fields.
To better benefit from the new system, artists may want to recreate their node-trees manually. That will bring the best readability to their files, and result in better shareable nodegroups.
Keep in mind that some nodes will no longer be accessible (most of the attribute nodes) and should be replaced by the equivalent function node. While other nodes are mostly updated (e.g., Point Distribute) and can still be used as before with some tweaks.
The old geometry nodes node groups will be readable by Blender without loss, so the files can be rendered just as before. Values exposed to the modifier can also be tweaked.
However the legacy nodes will no longer be in the Add menu, and the node-tree containing them will have a warning showing in the UI, urging users to update their files.
The old nodes will be gone in Blender 4.0.
A more radical approach would be to make the node-trees that have legacy nodes read-only. In that case if you want to edit those pre-3.0 node group you won’t be able to. Instead you need to create the new node-tree with the fields nodes. To see the node group nodes the users may have to open the file in an older Blender version or use the Python API to access them.
There are some ideas as to how to convert the files in a smart way. A simple algorithm can be designed to cover most of the use cases. Roughly:
- Ungroup all the node groups.
- Add all the “user” inputs used by nodes to Group Input.
- Add all the outputs generated by nodes to Group Output.
- Add all the required “get built-in attribute nodes”.
- Add all the required “set built-in attribute nodes”.
- Index the attributes, create a lookup table, walk the tree making connections.
The resulting tree will look ugly. But at least will preserve the old functionality while using the new nodes.
This conversion is not one of the initial targets for the core development team. Instead we would like to see if the community can address that. This can be available in the Help menu or near the old legacy modifiers for a quick conversion.
If there is a good script to do the conversion we can get rid of the old nodes before 4.0 even.
Asking around the Sprite Fright team, it seems that the production files will be manually converted anyways. It should take around 2-4 days to convert all the files there. I wonder how representative this is of the wider audience. If you can help answering that, pick the options that better fit your point of view:
- I don’t care either way - I’m using 2.93 LTS for existing projects and will use 3.0 for new ones with new nodes.
- I don’t mind manually converting my files since they are simple and/or I want to learn the new system anyways.
- I will manually convert my files anyways to leverage the new system and get readability.
- Please convert things automatically since it would take me a lot of time to convert all my files (e.g., more than 4 hours for a single nodegroup).
Thanks for your time,