Nodegraph

Overview

The nodegraph panel displays the layer graphs and the particle graphs.

Interface

image

  1. Main working area: displays the actual nodes & connections

  2. Visualization mode: Allows to change the color scheme of the graph. Hitting the P key when the nodegraph is focused will cycle through those display modes. Hitting Shift+P will cycle backwards. These default shortcuts can be changed in the editor user settings.

  3. Show color legend when using other visualization modes than normal

  4. Toggles between smooth wires (default), and hard wires

  5. Saves the current viewport as the default for this graph

  6. Clear the saved viewport and revert to 'auto-fit'

  7. Fits the view to the entire graph

  8. Opens a search dialog in the current graph

  9. (Only on Developer Mode) Force-recompile all graphs

  10. Enables the nodegraph debugger, that will capture all particles and display the node output value when available.

  11. Cycles backward the current debugged particle (the node output values)

  12. Cycles forward the current debugged particle (the node output values)

  13. Clears the soloed renderers

  14. Opens the nodal editor settings

  15. Displays the hierarchical location in the graph, when diving inside template nodes / subgraphs.

  16. Graph type indicator: Either “Event Graph” (event graph containing the layers) or “Simulation Graph” (particle / data graph, inside a layer).

  17. Separator between the graph and stats/infos panel. Drag to the left to show the stats/infos panel

Key Bindings (defaults)

Key

Description

LMB

Select nodes, dragging creates a selection rectangle

RMB

On a node: contextual menu, On empty space: creation dialog

Mousewheel-click

Pan view

Mousewheel-scroll

Zoom in/out

Enter

Open selected node, if possible (template, script, or curve)

Alt+Shift

Preview passthrough creation on wire

Alt+Shift+LMB

Create passthrough

Alt+Left / MousePrev

Jump to previous graph panel

Alt+Right / MouseNext

Jump to next graph panel

P / Shift+P

Cycle forward/backward through nodegraph display modes

X

Swap node inputs

Ctrl+F

Search graph

Esc

Hide search widget

Ctrl+G

Group selected nodes into a new template

Ctrl+Shift+G

Annotate selected nodes

Ctrl+T

Enable/Disable node (Toggle node)

Ctrl+Shift+T

Solo node (Solo the currently selected nodes, un-solo others)

Space

Show node creation dialog

Ctrl+Space

Show node insertion dialog if mouse cursor is on a wire

…​

Convert node to link

…​

Convert node to property

…​

Convert node to attribute

Creating nodes

Nodes can be created via the “node contextual menu”. To display the node contextual menu you can either:

  • Right click or hit the Space key in an empty space of the nodegraph

  • Drag a link from a node’s input/output pin, drop it in an empty space from the nodegraph

  • Hover a link and hit Ctrl+Space, or right click → Insert node

image
Node can also be created by drag&dropping them from the effect treeview or the template shelf.
They can also be copy/pasted from one graph or effect to another.

NOTE: You can still move in the nodegraph space while holding Left-click (and still holding Right-click) or by dragging your link next to a border of the nodegraph.

Cutting wires

You can cut wires by holding the ALT key and Left-click + Drag over the wire.
image

Creating Passthroughs

You can create passthrough nodes by holding the ALT+SHIFT keys to preview the passthrough insertion location & move it around, and then Left-click to create the passthrough node.
You can also create a passthrough with Right-click > Add Passthrough.
image

From a passthrough, you can create new wires going out the right side of the passthrough by holding the SHIFT key and Left-click + Drag.
You cannot create new wires going out of the left side of a passthrough, you will need to plug a wire into a passthrough to connect it on its left side.

Modifying values

You can quickly modify float and int values by holding the CTRL key and scrubbing using Left-click + Drag.
image

Contextual Menus

Nodes

Contextual menu when right-clicking on nodes.

image

  1. Open the content of the node if possible

  2. Toggle the node between active or inactive

  3. Solo renderers

  4. Expand/Collapse unplugged pins

  5. Create an annotation node

  6. Create a template from the selected nodes

  7. Separate all nodes in the selected template

  8. Create a simulation fence

  9. Select ALL left connected nodes

  10. Select ALL right connected nodes

  11. Swap node inputs (only works on some simple nodes such as add, sub, mul, lerp…​)

  12. If the node is an external template, clone it locally to allow local modifications

  13. Rename the selected nodes

  14. Copy the selected nodes

  15. Cut the selected nodes

  16. Delete the selected nodes

  17. Open the documentation of the selected nodes if possible

Wires

Contextual menu when right-clicking on links.

image

  1. Insert a node between the two nodes from either side

  2. Insert a passthrough node under the cursor

  3. Delete the link

Pins

Contextual menu when right-clicking on pins.

image

  1. Remove all links from the pin

Background

Contextual menu when right-clicking on the nodegraph background will open the node creation dialog:
image

Simulation Fences

Fences are a very basic concept but kinda complex to use. You can create fences between layers and between nodes (/!\ Not supported yet).

To create fences, it needs two or more selected nodes. The first one that you will select will be the "priority" node and will have arrows pointing towards the others nodes.
The others nodes will now wait for the complete execution of every operation of the priority node. (If between layers, it will wait until all particles have finished executing)

It is particularly useful when making complex simulations using spatial-layers or grids.

image

Using Ctrl+F or the Find button in the toolbar, a search dialog will open and allow you to search nodes and their contents
image
F3 will focus the next match, Shift+F3 will focus the previous match.

Color visualizers

The nodegraph editor provides different color schemes to view the nodes with.
These each color nodes and wires to help visualize a specific set of informations.
You can toggle between the different color schemes by using the dropdown in the nodal editor toolbar, or by using the P and Shift+P keys:
image

Color scheme: Normal

This is the default mode, which colors nodes based on their type and high-level function.
image

Color scheme: Exec rate

This mode colors the nodes based on if they are computed at spawn, evolve, or render time.
image
Blue nodes run at spawn, purple nodes run at evolve, and the orange node runs a render time.
If the color difference between the 3 colors is too hard to see, you can switch to an alternate color scheme by changing the color deficiency option in your user settings:
image

Color scheme: Sim Stage

This mode colors the nodes based on the simulation stage in which they are executed.
By default, there is a single simulation stage.
Multiple simulation stages are created when using simulation-fences.
image

Color scheme: Simulation location

With this scheme, nodes will be colored based on if they’re running on the CPU or GPU.
image
Blue nodes run on the CPU, and green nodes run on the GPU (in this layer, the spawn nodes are CPU, and evolve+render nodes are GPU)

Color scheme: Performance

In this mode, the editor will color the nodes based on the performance metrics gathered from the simulation running in the 3D viewport.
This allows to quickly spot performance hotspots in an effect, and dig to the root of what’s taking time during the simulation.
image
Here, the Physics and SmallPointAA nodes are the ones taking the most time to simulate.
NOTE: Currently this is only able to show the performance metrics for CPU simulations, we do not instrument the GPU sims yet.

Color scheme: Memory

In this mode, the editor will color the nodes based on the consumed memory.
image
Note: For more precise metric, set the editor node to "Shipping" to discard the editor debuging memory overhead.

Solo Renderers

Some of the renderers can be exclusively drawn on the viewport.
This allows to hide all other renderers, but they will still be simulated as usual.
To enable it, after selecting a group of nodes (renderers or/and templates), you can set them to be exclusively drawn by clicking on 'Solo' in the context menu.
In the nodegraph, the renderer nodes that are solo will be displayed with a surrounding highlighting.
The nodes that contain solo nodes will have the same highlighting but with a dashline border.