Node tree workflow optimization. Freezing functionality?
Created by: Durman
Problem statement
There is no sense to evaluate nodes if their work can't be detected by user. For example on the next picture evaluation of first group of nodes can be skipped because it effects nothing. The second group, on contrary, should be evaluated because they are connected to output
node.
This example looks artificial because nobody will create net of nodes without
output
node on the end. Therefore there is second part of the proposal.
There is another special part of nodes which should be always evaluated because they change data outside of a tree. They can be called output
nodes. They can be detected by extra button on their interface responsible for their activity state.
So when such button is disable the node can be considered as frozen. There is no sense update normal
nodes before frozen output
node. If output
node has output sockets they should keep it's last state so next could use it for their work I think.
Use case of this feature is when you have some basic shape which you modify to add extra details it's possible to dissable the branch responsible for adding details to this shape and modify it's basic properties witout performance penalty. In the picture below it will be possible to change Box node properties and only temporal viewer will be reevaluated. Switching on Mesh viewer should re-update all previous nodes.