Nodecompiler
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 doesn’t 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 won’t 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