Node Editor

The Node Editor has different modes, depending on which Node type is used. For example, if you enable the Scene Manager, the Scene mode (see also Scene Nodes Introduction) will be used; if you enable a Node Material, the Material mode will be used. In the following you will find references to the fact that a particular function will only work in a particular mode.

General

Material mode.

The following applies to the Node Editor (Material mode):

The Node Editor is where everything takes place when creating and editing Material Nodes (in the following referred to as Nodes). Everything you see in the Node Editor has to be linked with a Node Material (please note this tip), i.e., to create and edit Nodes, a Node Material must be selected. The Node Editor always displays the currently selected Node Material.

Please note that Nodes are quite complex and to use them effectively you need to have a higher level of knowledge about how shading and rendering works in general. However, several functions are very simple when a pre-defined material is used such as the Uber Material, which is almost as easy to use as a normal material (and can still be used in conjunction with an image node in various material channels)._

The general flow of data is always from left to right. At the far right, everything must always culminate in a Material Node (no Material Node means no working material; only 1 Material Node per material).

The Node Editor can be opened as follows:

The following applies to the Scene Node Editor:

The Node Edtor’s content is not assigned to a specific element (such as the Material Node Editor to a Node Material) but is itself displayed in the scene. Therefore, the last output Node must always be connected to the scene output via its Op Output output, otherwise no geometry will be generated.

Note that the Scene Node Editor is designed for advanced users and a higher 3D skillset and technical knowledge is needed. See Szenen Nodes Introduction for a brief introduction.

The Scene Node Editor is opened via the Scene Node Editor command in the main menu (Window / Scene Node Editor).

The Editor also offers several special functions that are described farther down.

As with the Node Materials when they were introduced, the Scene Editor comes with a range of additional Nodes for specific uses. Many Nodes (such as the Math Node) work in both the Material Node Editor as in the Scene Node Editor. A description of most Nodes can be found under Individual Assets. The new Scene Nodes can primarily be found in the categories Geometry, Array, Effectors, Fields, Flow Control, Operators and Distribution.

Several special Viewport settings for displaying geometry generated by the Scene Node Editor are available in the Project Preferences menu (see Nodes).

Note:Note also the Node Layout (at the top right of the main interface in the Layouts drop-down menu), which offers an interface designed for working with Nodes.

Node Editor

Navigation:

As with other Managers; the following hotkeys can be used to navigate in the Node Editor (see also commands in the View menu):

Creating Nodes

Nodes can, for example, be created in the following ways.

Note that not all output ports can be connected with all input ports. Many file types will be converted automatically but there are limits to this (e.g., a ShadingContext cannot be connected with a BooleDatatype in the Material Node Editor). Cinema 4D will show you if a connection is possible: if you hover over the port to which you want to connect, the potential connection will be either bright (possible) or dark (not possible).

Moving Nodes

Nodes can be moved at any time by clicking and dragging them. Multiple selections will be moved as a whole. If you move your selection to the edge of the Node Editor view, the view will start to scroll correspondingly.

Connecting Nodes

Node can be created in the following ways (drag & drop, double-click, etc.):

In order to let data flow from one Node to another they must be connected: For this, Node outputs (right Node side) of one Node can be connected with the inputs of another Node (left Node side). To do so:

The following applies:

Selecting Nodes

Nodes can be selected dragging a rectangle around them (simply click on an empty area of the Node Editor view and drag) or by clicking on them. As always, the Shift and Ctrl/Cmd keys cam be used in conjunction with making selections. In the Edit menu you will find several additional selection commands (such as Select Connected). The selected Nodes’ settings are displayed in the Attribute Manager.

Deleting Nodes

Selected Nodes can be deleted by pressing the Backspace- and Del- keys.

Node Editor Title

At the very top of the Node Editor you will find the following elements (from left to right):

Navigator

The Navigator is located at the bottom right of the Node Editor view - it’s a small depiction of the entire Node constellation and serves for better orientation and quicker navigation, especially for complex Node setups. The light gray triangle shows the visible part of the Node Editor view. You can move this section by clicking and dragging in the view.

The following Nodes have a special display:

Input and Output Group Areas

On each side of the Node you will see a dark edge (if output ports were already created). Connections/ports can be output with these areas by dropping a new connection into an empty region of the area. This makes little sense for individual Nodes but if you combine different groups with one another, you can use this method to create a port that is shown as a group port (as in the image below). This means that even in a group within a group a specific Node port at the very bottom can be connected from the outside (or as an output to the outside).

Node ports in groups can be led outside.

When a connection is released in an empty area, a small menu will open (see image bottom left) with the following options:

Parts of the described functionality (creating inputs) can also be done via the port context menu commands.

General information about Nodes

A Node setup and display example (it’s also possible to only display connected ports).

The core component of the Node System is - logically - the Node. A Node has inputs into which data from other Nodes is entered, which is then processed by the Node and the result is passed to its outputs. Inputs and outputs have ports through which the connection to other Nodes can be made. Basically, an input port can only have a single connection and output can have any number of connections.

Nodes can be grabbed on the left or right edge and made wider or narrower.

A Node has an upper area and a lower area:

Upper area

The Node’s name is displayed over the respective Node. If you rename the Node in the Basic tab, its new name as well as the original name will be displayed. The latter so you always know which type of Node you’re working with. This is also the name used in the Help. The name in white text can also be modified by double-clicking on it.

The upper Node area contains the Node preview - for Nodes wherever it makes sense. If the settings of the connected input Nodes change, the preview will change accordingly. You can show or hide the preview using the small icon (2nd from the left) (a command can also be used - see above).

In the Preview you will find the Solo Mode option on the left (see Solo) if the Node Preview is supported, which is, for example, not the case for Nodes for the Scene Node. Next to it on the right is the Preview icon.

You can click on the third icon (only visible for Group Nodes) to display the group content in the Node View (double-clicking on the Node will do the same).

The Display Mode icon at the far right can be used to switch between port display modes, as can be done using the three port commands machen.

Below the row of icons you will see a color bar whose color is defined using the Color setting in the Basic tab. This can make it easier to find certain Nodes. By default, some Bode types are already colored but can be recolored at any time.

Lower area

The lower area contains the input ports on the left with their respective names and the output ports on the right with their respective names. Ports can be hidden, and their order can be changed by moving them. Note that not all input ports will necessarily be listed in the Node itself. These can be displayed using the context menu.

Certain Nodes (such as the Layer Node, for example) even have drop-down port groups for each layer.

Depending on the data type being processed, ports will be assigned a certain color (see next data types).

Ports can be selected (using the Shift or Ctrl/Cmd keys to add or remove selections) so they can be affected by certain commands (see Node menu or context menu).

Data types and colors

Inputs and outputs are colored accordingly. Fitting data types for input and outputs will be displayed using colors. The most important types are:

As in XPresso, atypical input and outputs can be connected with one another. As a rule, a constructive conversion of the data types will take place. For example, a texture can also be connected to an input for a float comma value. The texture’s RGB values will then automatically be converted to brightness values. Using this method, color textures can also be used to, for example, control the Roughness of a BSDF layer. This type of conversion of data types is denoted at the receiving Node by an additional point at the respective input.

Context menu

If you right-click on a Node/port, a comprehensive context menu will open, which contains commands mostly from the Node Editor menu. These are described here, except for the following:

Add Input

Not all inputs listed in the Attribute Manager have to be displayed by the Node as a port. Sometimes only the most important are shown. Use the Add Port command to show all hidden ports. If one is selected, it will be displayed again (if All is selected, all input ports will be made visible).

This menu point is not available if all input ports are displayed.

Add Output

Normally, all outputs are displayed. If not, (e.g., if Remove Unused Ports was applied) these can be displayed by selecting one of the output ports from the list.

Propagate Port

A list will be displayed from which a Node to which you can link can be selected. If multiple output ports come into question per Node, click on the small black arrow and the output ports that can be selected will be displayed. In addition to the complete Asset list, the first entries will be existing Nodes where Nodes are listed that are contained in the current Node Editor view. There is also the Add Group Input option with which a port can be drawn from a group (see also Input and Output Group Areas).

Note that this list is created dynamically, and only fitting Nodes will be suggested.

Replace Node

For the current, connected input port, the "feeding" Node will be replaced by one from the list. Note that the complete Node chain will be deleted at the Node to be deleted. This only applies to the Nodes being fed: Nodes that are connected to other output ports remain unaffected.

Textures

All loaded textures are listed here. Select a texture from the list to feed it into the input port.

Load Texture

Selecting this option will open a context window from which you can select a bitmap or video, which will then be fed to the input port using an Image Node.

Remove Port Instance

Several Nodes such as the Layer Node or the Gradient make this command available. With it you can delete elements such as Layers or Knots.

Hide Port

Selecting this command will hide the selected ports. This only works with ports that are not connected. The hidden port will then appear in the previously described list under Add Input (and can be made visible there).

Note also the Show All Ports command and the next two commands described there. This is a different functionality from the hiding or displaying of ports.

Port Inspector/ Data Inspector

The Port Inspector can display the values of simple data types.

Details about these two Debugging tools can be found there.

Reset to Default Value

Most settings have a default value, which is defined when the Node is created. Using this command, modified values will be reset to their default values. This only affects Nodes that are not connected.

Propagate Port

Calling up this command (only of use when the Node Editor view shows a group’s contents) creates a connection to the outside or to the parent hierarchy. See also Input and Output Group Areas.

Copy Value

Paste Value

Here you can copy values/types of individual ports to the cache (for a port with an integer value of 4 it would, for example, look like this: int64:4). These values/types can be pasted to other selected ports using the Paste Value command. The data types will be converted, if possible.

Copy Type

A data type can be copied using this command (fora port with an inter value of 4 it would, for example, look like this: int64). Since it’s possible to create very complex data types (e.g., with a Switch Node) you can use this command to save time by simply copying the data type and paste it at the desired location. For example, for a Compose Container Node, for which you can also define data types, click on the button at the far right of Data Type and select Edit Data Type and paste the data type there.

Solo Port (only output)

A Solo functionality can be enabled for Nodes. If this Node has multiple outputs, one of them must be defined as a Solo Port, which is what this option does.

Set as View Port (only output)

In the upper area of a Node you will find the Node’s preview. If a Node has multiple outputs, this option can be used to define which output should be displayed in the preview.

Connections

Proceed as follows to connect a Node port with another port:

Connections can also be selected, whereby you can almost always do so in conjunction with the Shift and Ctrl/Cmd keys to add or remove selections (clicking and dragging a box can also be used to make a selection). So what can be done with selected connections? They can, for example, be deleted or modified per context menu commands described below (only those commands not described elsewhere are described below).

Add Converter

If ports are already connected, this command can be called up. It places a Converter Node in the connection, i.e., its input and output are already properly connected.

Remove Connection

Deletes selected connection.

Muted connections will be displayed with a dashed line. Values will not be accepted from the previously connected Node but from the Attribute Manager instead. This lets you temporarily disable connections for test purposes, for example.

Other Node Editor components

The icons at the top right

At the top right of the Node Editor you will find the following 5 icons, from left to right:

Connectors

The most major change compared to the previous Attribute Manager are the linked fields that have been replaced by Connectors. Node inputs can either be fed with values by simply entering values for given settings or - and this is new - by connecting Node inputs with node outputs of other Nodes, i.e., make a connection (which is what Nodes are all about).

Click on the icon at the right of the setting name (the "connector") and select a Node from the Connect Node list to connect with the input that you select (you can, of course, simply connect ports in the Node Editor view). The selected Node will be created and linked:

Bitmaps can at any time be dragged from outside of Cinema 4D onto a complete parameter line *incl. parameter name, connecting icon and GUI element) to link a given setting using an Image Node.

As soon as a parameter is connected with another Node, the following applies:

The connector icon can have one of the following 3 states:

Clicking on a connector icon will make the following commands available, from which most should already be familiar from the port context menu. The connector icon makes a similar functionality available, which makes it possible to access a port in the Node Editor per right-click.

In the following, only the Connector’s commands are described.

Add Layer

This command can, for example, be found in the Layer Node. The selected Node will be linked with a new layer.

Copy

Copies the connected output port to the cache.

Paste (Link)

The cached output port can then be linked with a different input port. This way, multiple inputs can be connected with the same output port.

Paste (Duplicate)

This command connects the output port in the cache with the input on which you click. Contrary to the previously described command, a duplicate of the entire feeding Node is created.

Remove

Removes the connection from the input port.

Mute Port

The connection is maintained but no data will be passed. Instead, the value defined in the Attribute Manager will be used for the input. Call up the command again to allow data to be passed again.

Show Subchannels

Several Nodes such as the Layer Node or Grading Node offer this mode. Enable this mode, for example, to display the layer settings as animatable or adjustable settings. In addition, the input settings of the feeding Node can be displayed by activating one of the layers. In the following example, the inputs would be those of the Circle Node.

Multiple port selections are also possible in order to compare values.

Info area

At the bottom left you will find the Info area in which you will find information pertaining to Nodes, connections and ports.

For Nodes:

Additional information for connections:

Additional information for ports:

Opens the group (or double-click on the Node).

If an asset is encrypted, this command will be grayed out.

Save New Version...

When editing existing Assets, modifications made should be saved using this command. A dialog window will open that you should be familiar with from the Save Asset command (see above). Since the old Asset state is also saved, versioning will be implemented.

Save as New Asset (Copy)...

When editing existing Assets, a new Asset can be saved without the aforementioned versioning. A dialog window will open that you should be familiar with from the Save Asset command (see above).

Material Node example scene

The following material was created using Nodes only. Not bitmap or texture was used!

Load the following scene:

Here you can get an idea of what is possible using Nodes. Right-click on the material and select Node Editor to see what the Node setup looks like. Note the Plaid Group Node in which additional Node networks are nested.

Special informaiton about the Scene Node Editor

Aside from the descriptions above, the Scene Node Editor has several special features:

These connections are a conglomerate of different values.

Click on the small arrow at the Op Output port to open them and display the value type. To create geometrty that is visible in the scene, a Op Output port must always be connected with the Scene port.