Hi @bentraje, as you know, Nodes have been present in Cinema for a few versions.
There was an early version of this API that allowed some renderer developers to access the Nodes.
This way they could implement them, but more importantly, we could also get feedback on their needs.
Since S24 aims to not break API compatibility and some external renderers depends on this NodeMaterial, this class is still present.
However, the scope of the NodeMaterial is to retrieve the graph belonging to a NimbusRef for a given BaseMaterial.
But this is also the purpose of BaseList2D::GetNimbusRef()->GetGraph() but with the advantage of working for any BaseList2D and not just Material.
In addition, there are still some features that are not available in BaseList2D, for example, BaseList2D::PrivateGetOrCreateNimbusRef does not act like NodeMaterial::AddGraph since Bl2D::PrivateGetOrCreateNimbusRef does not call the Creation function to set the initial state of a Graph.
In the future, BaseList2D will have all the functionality of NodeMaterial, which is why it is temporary.
If you build your pipeline around this NodeMaterial, you will have to rewrite this part.
But honestly, NodeMaterial is just the street to get to the building (the graph), if we remove that street, you'll just get another one (BaseList2D::GetNimbusRef).
Cheers,
Maxime.