NMX Utility nodes

These nodes and operations have been added as an extension to using the NetworkMaterialCreate, NetworkMaterialEdit, NetworkMaterialSplice and Material nodes in combination with each other.

Removing non-contributing nodes from the network

The NetworkMaterialLayoutFilter can be used to remove any nodes that aren’t contributing to a material (that have been created and edited within the NetworkMaterialCreate and NetworkMaterialEdit nodes). This can improve the performance of the NetworkMaterialEdit node when editing an incoming material, since it needs to process and draw fewer shaders.

This is particularly helpful when editing a material that had been originally created in a multi-material NetworkMaterialCreate node, which may contain many nodes that are not relevant to the edited material. In this case, when these materials are edited in a downstream NetworkMaterialEdit, other shaders pertaining to other materials will also show up and appear as locked nodes.

In the example below, multiple materials have been created in a NetworkMaterialCreate. When the “costume_mat” material is edited in a downstream NetworkMaterialEdit, the nodes that aren’t affecting “costume_mat” will still be shown, in a locked state.

NetworkMaterialCreate node

NetworkMaterialEdit node

With the use of the NetworkMaterialLayoutFilter node, these unconnected nodes will no longer appear. See below:

Backdrop nodes, since they’re not elements that are connected to the material, are preserved unless they are within a group that is filtered out.

By default, these shading nodes will be pruned based off of their connection to the material’s output. However, when pruneNonContributingBranches is set to Yes in the node’s Parameters, nodes can also be pruned based on their contribution to the final material.

An example of this is when nodes are connected to either side of a VariableSwitch node and picked up in a downstream NetworkMaterialEdit. In this use case, the branch that isn’t currently being used will contain locked nodes. See example below:

Applying Material node attributes to the NetworkMaterialEdit context

Both the Material node and NetworkMaterialEdit node pick up existing Material Interface information and allow you to further modify them. However, when changes are made in a Material node, they’re not reflected in a downstream NetworkMaterialEdit node by default.

To improve the workflow between these nodes, the MaterialInterfaceResolve node enables any changes in a Material node to be reflected in a downstream NetworkMaterialEdit node:

1.   Add a MaterialInterfaceResolve node and connect it in the Node Graph downstream of a Material node that has seen changes.
2.   Specify the path of the material to target this node to.
3.   After refreshing, view that any changes made in the Material node become visible in the Material Interface parameters of the downstream NetworkMaterialEdit node.

This ensures further changes to that parameter made on the NetworkMaterialEdit node, will be reflected on the final render.

Using advanced splicing options

The NetworkMaterialMultiSplice node is an extension from the NetworkMaterialSplice node. The NetworkMaterialMultiSplice provides additional fields for reference material, allows CEL expressions to target multiple materials, and gives you the ability to connect wildcarded node names. This spliced material can then further be edited in a downstream NetworkMaterialEdit node.

  • The materialsToEdit > referenceMaterial parameter will indicate the material to appear in the node pop-up window, and the materialsToEdit > spliceMaterial parameter will allow for further materials to receive the spliced information.

  • errorOnFail: By toggling this option, if you try to make a connection to a non-existent node, Katana will show the location error as a warning message.

  • warnOnMultipleMatches: By toggling this option, Katana will display an error message if there are similarly named nodes in the target location.

  • In connections, you can create multiple connections based on wildcarded names using asterisk symbol (*).

  • In disconnections, you can disconnect wildcarded nodes in the reference material.

For example, some unspliced materials:

The network for two basic teapot materials:

Material to be connected/spliced:

Spliced materials (click to zoom into the image):

Tip:  You can view a preview of the new material network by clicking in the Parameters tab.