Nodecompiler

by Xinyu Zhu in Addons


NodeCompiler Addon Documentation (English)

This addon is supported in Blender >= 2.93.

Author by Xinyu Zhu (xzhuah77@gmail.com)

Addon Preference

Precision: When compare node trees, the addon will round all float value to n decimal places, where n is the precision that you can set. It will also affect the comparison of vector, color and other numerical attribute.

This addon will only consider valid links when processing node trees. It will ignore all invalid links (links that is not used correctly)

Function List:

3D View Port > Object Mode > Object > Node Compiler > Link Equivalent Material

3D View Port > Object Mode > Object > Link/Transfer Data >Node Compiler > Link Equivalent Material


For all selected object, check every material slots they have, link all equivalent materials.

Materials are consider to be equivalent when they are equals in settings and node trees. When comparing node trees, node compiler compares value and topology structure.

If an object has multiple material slots, this operation will also link equivalent material among these slots.

Algorithm complixity: O(nlogn) The addon uses an algorithm to encode the node trees so that it can be deduplicated with a set data structure. The encode algorithm time complixityis O(nlogn) where n is the number of nodes that a node tree has. The deduplication algorithm time complxity is also O(nlogn) where n is the number of material slots.

3D View Port > Object Mode > Object > Node Compiler > Link Equivalent Shaders Node Groups

3D View Port > Object Mode > Object > Link/Transfer Data >Node Compiler > Link Equivalent Shaders Node Groups

Check all shader node groups used by the currently selected objects, if they are equivalent, link them.


3D View Port > Object Mode > Object > Node Compiler > Batch Clean Up Material Node Tree

 

For all selected object, for all material slots they have, clean up shader node trees. See

Node Editor > Tool > Node Compiler > Clean up Node Tree for details about clean up function.


3D View Port > Object Mode > Object > Node Compiler > Link Equivalent Geometry Node Modifier

3D View Port > Object Mode > Object > Link/Transfer Data >Node Compiler > Link Equivalent Geometry Node Modifier

For all selected object, for all geometry node modifier they have, if two geometry node groups are the same in inner structure, link them.

 

Algorithm complixity: O(nlogn)

3D View Port > Object Mode > Object > Node Compiler > Link Equivalent Geometry Node Modifier

3D View Port > Object Mode > Object > Link/Transfer Data >Node Compiler > Link Equivalent Geometry Node Modifier

Check all geometry node groups used by the currently selected objects, if they are equivalent, link them.

3D View Port > Object Mode > Object > Node Compiler > Batch Clean Up Geometry Node Modifier

For all selected object, for all geometry node modifier they have, clean up the node trees. See

Node Editor > Tool > Node Compiler > Clean up Node Tree for details about clean up function.

3D View Port > Object Mode > Object > Node Compiler > Join by materials

For all selected object, link equivalent Material first and then , if any of them are equal in material slots, join them into one object. If an object A has multiple material slots, then object B can only be joined with A if B also has the same set of material slots that A has. The order of these materials slots doesnt matter.

The following functions are available in Shader Node, Geometry Node, Compositor Node and Texture Node

Node Editor > Tool > Node Compiler > Clean up Node Tree

Remove redundant node from the node tree, a node is redundant if it is not connected to the output nodes directly or indirectly.

If two equivalent nodes are connected to a mix node with the same socket, one branch and the mix node will be removed.

Node Editor > Tool > Node Compiler > Compress Node Tree

Reuse equivalent node in node tree as much as possible to minimize the number of nodes in node tree. Notices this operation is mainly to improve the readability of the node tree, make is as concise as possible, it wont improve the rendering speed.

Node Editor > Tool > Node Compiler > Link Equivalent Node Groups

Check all node groups in the current active node tree, if they are equivalent, link them

Published over 1 year ago
Blender Version 2.93, 3.0, 3.1, 3.2, 3.3, 3.4, 3.5
License GPL
Have questions before purchasing?

Contact the Creator with your questions right now.

Login to Message