Managing Your 3D Scene With the Scene Graph
For Nuke 14.0, as part of the 3D system update, we’ve introduced a new performant scene graph to allow you to view the contents of your 3D scene.
The Scene graph offers an overview of the scene, and is a tool to view, navigate and manage large 3D scenes, allowing artists to work with more flexibility. Essentially, the Scene Graph is a list of everything within the 3D stage at the point where the Viewer is connected. Selecting entries in the Scene Graph highlights the associated objects in the Viewer.
Accessing the Scene Graph
In the menu select Workspace > 3D to access the scene graph panel.
Once in the 3D workspace, the scene graph panel is on the left-hand side, designed to stay on by default, providing a constant view of the 3D scene contents.
Alternatively, the scene graph can be accessed through a new tab in the node properties panel.
Scene Graph Features
Hierarchical Structure
The scene graph uses a hierarchical representation of the USD stage, in contrast to Nuke’s classic flat structure. This hierarchy covers prims such as geometry, lights, cameras, and materials, each with a unique ID or path, promoting a well-organized structure.
Geometry Highlight and Selection Synchronization
Synchronization between the scene graph and the viewer enables easy selection and navigation. Selecting an item in the scene graph highlights the respective item in the viewer and vice versa.
Searching and Filtering in the Scene Graph
A search bar at the top of the scene graph lets you swiftly locate items in the scene, highlighting the search results in bold. Cycle through the results by repeatedly pressing the Enter key, or pressing Shift + Enter to cycle back
Matches highlight in bold. The number of the selected results and the total number of search results are shown to the right of the search bar.
You can also filter by Path, Type, Kind and Purpose.
Filter Syntax
The filters work by using simple syntax in the scene graph search bar. For example, for filtering by Type for Cameras, the syntax would be:
Filter:“Type:Camera”
You can filter items in your scene using the Path, Type, Kind and Purpose attributes. For example, a basic filter expression to show items with a Path attribute containing "cube" is:
filter:"path:cube"
Case rules:
-
Path attribute matching is case insensitive and will match any part of the path.
-
Type, Kind and Purpose attributes are case sensitive and required to be an exact match.
Note: When filtering, parents of filtered results are shown to give hierarchical context but greyed out to increase focus on the filtered results.
Boolean Operators and Empty Values
Filter expressions support logical NOT, AND and OR allowing you to write more complex expressions. For example:
-
filter:"!path:cube" to show items that don't contain "cube" in their Path.
-
filter:"path:cube AND type:Mesh" to show items that contain "cube" in their Path and are of Type "Mesh".
-
filter:"path:cube OR type:Mesh AND !kind:component" to show items that either have "cube" in their Path, or are of Type "Mesh" but not Kind "component".
A filter expression can also contain an empty value for the attribute. For example
-
filter:"kind:" will only show items that have no Kind.
-
filter:"!kind:" will only show items that have a Kind.
Search terms can also be used after the filter expression to search the filtered results.
Columns in the Scene Graph
The scene graph panel contains various columns representing different data facets. These include:
-
Path: Displays the hierarchical structure of objects.
-
P (Payload): A USD specific concept to control memory usage by deciding the parts of a scene to load.
-
A (Active): Allows the activation and deactivation of specific prims.
-
V (Visibility): Offers control over the visibility of 3D objects in the viewer.
-
Type: The data category of an element. For example, mesh represents meshes, and a float attribute stores numerical values.
-
Kind: The organizational role of an element in the hierarchy. It is categorized as values like component for individual objects or assembly for a collection of components.
-
Purpose: Categorizes components or primitives based on their role in different stages of the production pipeline. For example, An object with a render purpose would be included in the final rendering pass .A default purpose generally means that it is a primary element of the scene. It should be taken into account in various processes, such as rendering, simulation, and interaction within the viewport.
Payload Management
Payloads let you choose which parts of a scene are loaded into memory. This helps you save on memory and speed up load times, which can be particularly useful for complex scenes with high levels of detail.
You can choose to load payloads either for a single item or the whole scene.
For Individual scene items: If you’re using payloads, you can load individual items by clicking on the dot icon corresponding to each item in the payload column. The dot will switch to a icon when the payload has been loaded.
For the entire scene: At the top-right of the scene graph is the Global Payloads Toggle.
When toggled on (orange) all the payloads are automatically loaded when opening the USD stage.
Prim Visibility and Active Status
You can turn prims off (deactivate them) in the scene graph or simply not show them in the viewer. Changing a prim’s Visibility or Active overrides in the scene graph will only affect those states for the Viewer, not for any upstream nodes, e.g. Scanline Render nodes or Write nodes.
An ‘on’ icon in the Active (A) column indicates that the prim is active. You can toggle between the ‘on’ icon and a dot to choose if the prim is active or deactivated. When deactivated, whilst the slot for the prim is still technically in the scene graph, the prim is effectively removed from the stage. Children of a deactivated prim will not be shown in the scene graph.
An eye icon in the Visibility (V) column indicates that the prim is visible in the viewer. Toggle the eye to show/hide the prim. Unlike deactivation, the scene graph is not affected, only the viewer.
Right-click on a prim and use the context menu to Show or Hide the visibility of the prim.
Tree Operations
Expand and Collapse: Use the plus and minus icons next to the prim name to expand or collapse the scene structure. Hold Shift when expanding to also expand all nested elements within a parent.
Multi-Selection: Select multiple items using Shift to select a range or Control to multi-select individual prims.
You can also use the right-click context menu on a prim to choose Collapse all or Expand all.
Overrides: Indicators and Management
A small yellow dot on a visibility or active icon indicates that this control for the prim has been overridden, in other words it has changed from the state it was in when imported.
If you no longer require the overrides and their indicators, you can use the right-click context menu and select Clear overrides. All yellow dots then disappear to indicate that these are no longer overridden.
The Clear overrides option is not context specific and always applies to the whole scene graph.
Using Masks and Paths to Position Items in the Scene Graph
Path and Mask knobs on certain 3D nodes can be used to place items in the Scene Graph hierarchy.
Path knobs are located on creation nodes like GeoCard, allowing you to specify the desired position in the scene's hierarchy.
Modifier nodes such as GeoTransform have a Mask knob, to define the prims in the scene that you want the node to affect.
Note: For more information see Using Paths and Masks to Control the Scene.
The Scene Graph button next to the Mask knob opens a pop-up scene graph, showing the hierarchical scene at that point in the node graph. This is another way to select which prims are input into the Mask knob.
You can also set Mask or Path knobs in one of three ways:
-
Drag and drop from the scene graph onto the knob.
-
Select prims in the Viewer using the eyedropper tool to the right of the knob.
-
Type into the path(s) directly.
The scene graph button enables you to pick mask items from the scene graph .
Making Selections
Make your selections using the check box in the left Pick column, or double-click on a prim to check the box automatically. Press OK to confirm the selection.
The selection(s) are input into the mask knob. You can select individual or multiple prims using common multi-select hotkey modifiers such as Shift+click.
Some nodes only need a single selection, such as in the import prim path knob on Camera nodes. In this case, the pop-up scene graph will offer a single-selection only. Double click the chosen camera, to select it as input to the mask knob, which closes the pop-up scene graph automatically.
Search/ Filter bar
The pop-up scene graph uses the same search feature and filtering system as the main scene graph. Filters are automatically applied on certain nodes. For example, when choosing a Prim Path for a Camera node, only Cameras will be filtered, and only a single selection is available.