You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The SceneInspector shows the state of a scene location as output by a particular node, which is all well and good, but there is no indication of which node was actually responsible for computing that state. It will often be that the node being viewed merely passed through an input value unchanged, and the actual value was computed further up the graph. We need to be able to show this to the user, and make it easy to select and edit the responsible node. Perhaps in addition to the source node, it would be good to show a full traceback involving all the nodes involved in computing the final value (the sources of the source).
In most cases we can implement this by tracing back up the node graph using correspondingInput(), and querying the value output by higher nodes until it changes - this is then our source node. This is complicated slightly by the nodes that change the hierarchy (Group, Parent, Duplicate etc) - for those we will need a method for mapping an output path into an input one. I think something like SceneHierarchyProcessor::inputPath( const ScenePath &outputPath, ScenePath &inputPath ) should do the trick.
We'll want to use this traceback functionality in a few different places (transform manipulators will need it to find a node to modify), so perhaps we should put it in a new SceneAlgo.h header?
The text was updated successfully, but these errors were encountered:
I was thinking I'd try and hook into this mechanism on the gl viewport side of my maya integration project. Haven't figured it out in detail yet, but if an object hasn't picked up any relevant modifications since it left the SceneInput node up the top, I can just let maya draw it how it wants. I can also identify procedurally generated geometry and draw it on top of the stuff in the maya viewport.
johnhaddon
added a commit
to johnhaddon/gaffer
that referenced
this issue
Aug 5, 2014
The SceneInspector shows the state of a scene location as output by a particular node, which is all well and good, but there is no indication of which node was actually responsible for computing that state. It will often be that the node being viewed merely passed through an input value unchanged, and the actual value was computed further up the graph. We need to be able to show this to the user, and make it easy to select and edit the responsible node. Perhaps in addition to the source node, it would be good to show a full traceback involving all the nodes involved in computing the final value (the sources of the source).
In most cases we can implement this by tracing back up the node graph using correspondingInput(), and querying the value output by higher nodes until it changes - this is then our source node. This is complicated slightly by the nodes that change the hierarchy (Group, Parent, Duplicate etc) - for those we will need a method for mapping an output path into an input one. I think something like SceneHierarchyProcessor::inputPath( const ScenePath &outputPath, ScenePath &inputPath ) should do the trick.
We'll want to use this traceback functionality in a few different places (transform manipulators will need it to find a node to modify), so perhaps we should put it in a new SceneAlgo.h header?
The text was updated successfully, but these errors were encountered: