NodeSet Pro is an add-on that greatly simplifies the process of importing sets of textures to create a node based material.
It allows you import a set of related texture maps by simply pointing to one of them, takes care of setting the color data attribute correctly, adds bump nodes and normal map nodes where needed and wires up everything to the principled shader or a shader node group you have defined, all with a few simple clicks.
Instead of importing textures like basecolor, normalmap, roughness, etc. one by one, with NodeSet Pro you will only need to select a single texture and textures with the same base name will be loaded as well. NodeSet Pro will also apply non-color data options to texture maps that need this, create normal map and bump nodes and wire everything up to a shader.
Besides individual texture sets NodeSet Pro also offers panels that let you manage collections of textures sets in a straight forward manner.
NodeSet Pro works out of the box with substance painter textures but every aspect of it can be configured in the preferences to seamlessly adapt to your workflow and these preferences can be saved as presets.
[Note that this add-on is also included as a .pdf in the product (with a clickable table of contents)]
NodeSet Pro is an add-on that greatly simplifies the process of importing sets of textures to create a node based material.
Instead of importing textures like basecolor, normalmap, roughness, etc. one by one, with NodeSet Pro you will only need to select a single texture and textures with the same base name will be loaded as well. NodeSet Pro will also apply non-color data options to texture maps that need this, create normal map and bump nodes and wire everything up to a shader.
Out of the box NodeSet Pro is configured to work with texture sets produced in the PBR Metallic Roughness workflow of Substance Painter* and connect them to Blender’s principled shader. However, because almost every aspect of NodeSet Pro can be configured in its preferences, using texture sets from other workflows, like Specular Roughness or from other software is just as easy.
NodeSet Pro is not limited to single purpose maps like roughness, metallic or height, but it can be configured to work with textures that have different kinds of information mapped in their individual color channels.
NodeSet Pro can also work with custom node groups instead of the principled shader, allowing for one-click operation even if you use a completely different kind of shader.
Using NodeSet Pro is as simple as selecting ‘Add Texture Set’ or ‘Add Texture Set + Shader’ from the ‘Add’ menu in the node editor and then selecting a single texture from a set of textures. A simple tutorial is provided in the first part of the video:
https://www.youtube.com/watch?v=VYSAei0u1Qg
The second part of the video highlights the versatility of the NodeSet Pro configuration options by providing a step by step walkthrough on configuring NodeSet Pro to work with custom texture maps and a custom shader.
*) NodeSet Pro can be configured to work with texture sets generated by many other software packages as well. All product names, trademarks and registered trademarks are property of their respective owners. All company, product and service names used in this manual are for identification purposes only. Use of these names, trademarks and brands does not imply endorsement either way.
Table of contents
Changelog
Installation
First time installation
Installing a newer version of NodeSet Pro
Workflow
Individual materials
Collections of materials
Add-on Preferences: Adapt NodeSet Pro to your workflow
Texture map options
Metallic/roughness workflow
Specular/glossiness workflow
Common workflow
Additional textures
Custom texture maps
General options
Files
Case Sensitive
Link Existing Tex Files
File extensions
File filter
Wildcard (Keyword)
Shader
Remove nodes
Object Space in Normal Map
Texture coordinates
Use normal maps nodes
Use roughness ramp
Projection
Normal strength
Bump strength
Use principled shader
Alternative shader
Layout
Texture Frame Color
Shader Frame Color
Zoom out
Panel location
Presets
Frequently Asked Questi6ons
Changelog
NodeSet Pro is based on my original free NodeSet add-on published in 2017 but was completely rewritten to ease maintenance. The configuration options and functionality where also greatly enhanced, notably with possibilities to work with custom, packed maps, connect to arbitrary nodegroups instead of just the principled shader, add UVMap nodes and Flip Normal nodes and more.
Version | Date | Comments |
201804131634 | 2018-Apr-15 | Initial BlenderMarket release |
201805051347 | 2018-May-06 | Add texture set panel, roughness ramp, alternative texture input coordinates and preference presets + small bug fixes |
201812021749 | 2018-Dec-02 | Initial Blender 2.80 release |
Installation
First time installation
Installing NodeSet for the first time is simple:
Unpack the .zip file
you probably already have done that as it contains this document (NodeSetUsermanual.pdf) and the add-on itself (a Python file, nodeset.py)
Select File → User Preferences ... → Add-ons from the menu
Click ‘Install from file …’ (at the bottom of the screen) and select the file nodeset.py
Click ‘Install from file ...’ (at the top right of the screen)
Check the enable check box to the left of the add-on you just installed
The add-on menu options will now be available from the Add → Texture menu in the Node editor. The materials management panel will be available as a ‘Textures’ tab in the tools region of the Node editor (if the tools are not visible press ctrl-T).
Installing a newer version of NodeSet Pro
If you want to replace a previous version of NodeSet Pro you have to remove the old version first. To do this, go to File → User preferences … → Add-ons and either search for NodeSet Pro or go to the ‘Node’ category where it will be located. Click on the add-on and then on the ‘Remove’ button. After removing the old version follow the instructions above to install the new version.
Workflow
With NodeSet Pro you can work with individual materials or with collections of materials. The first option is available from the Add menu in the node editor, the second as a panel in the Tools area of the node editor.
Individual materials
NodeSet Pro adds three menu entries to the Add → Texture menu of the node editor:
The menu offers to insert just a collection of texture nodes or add a shader with a complete node setup as well, possibly connecting any height map to the (experimental) displacement socket of the material output node.
Each menu entry starts with opening a file selector that lets you browse through your folders. By default only image files that have the word ‘Color’ in their name are shown to decrease clutter:
If you click the ‘Import Texture set’ button, the selected texture will be loaded along with any other textures in the set that share the same basename. With the menu ‘Image Texture Set’ chosen the result would look like this (for a typical set of five textures produced by Substance Painter’s metallic/roughness export):
Note that by default some extra nodes are added for convenience: a UV Map node, so that you can select the UV map for the object in case you have more than one, plus a Normal Map node and a Bump node to compute a combined normal. The addition of extra nodes can be controlled in the add-on preferences.
Would you have chosen ‘Add Texture Set + Shader’ from the menu instead, the result would have looked different:
A correctly wired up Principled shader is now present as well. (You are not limited to the Principled shader, in the add-on preferences you can select any NodeGroup to be used instead and NodeSet Pro will try to connect all the nodes in a suitable manner).
You can even use the experimental micro displacement option of Blender with the ‘Add Texture Set + Shader (Displacement)’ menu. If a Material Output node is present it will create a slightly different node setup:
As you can see additional nodes have been added between the Height map and the displacement output. Because heightmaps often range between [0,1] is convenient to center this around zero and offer a scaling option when we use it directly as a displacement instead of a bump map input.
Collections of materials
In the Texture set tab in Tools area of both the node editor and the 3d view (press ‘T’ if it is not visible) NodeSet Pro provides a Nodeset materials panel.
If you select a folder by clicking on the icon, all available texture sets in that folder and its subfolders will be presented in a list.
Initially only texture sets for which a material with a matching name already exists in your .blend file will be marked enabled. If you enable any of the disabled materials a new material will be created in the .blend file with a complete shader setup as determined by any preferences you have set. The material is also marked as having a ‘fake user’ so if you would save your .blend file, the material would be saved as well, even if no object is referring to it yet.
Disabling a texture set will remove the ‘fake user’. The material will not be deleted but if you would save your file and no object is referring to it, it would not be saved.
Enabling a previously disabled material will replace its node setup.
A small checkbox is provided to disable or enable all texture sets. This lets you quickly create materials from all available texture sets. This may take a while if your directory contains lots of files and subdirectories.
If you change or refresh a directory, materials already present will not be deleted (unless the have the same name, in which case their contents will be overwritten) so it is possible to load texture sets from multiple locations by selecting a directory, checking ‘Enable all’, and then repeating this for another directory.
Add-on Preferences: Adapt NodeSet Pro to your workflow
Almost every aspect of NodeSet Pro’s behavior can be configured, from the way it recognizes texture map filenames to the names of the input sockets on the shader it connects to and everything in between.
To make it as simple as possible to adapt NodeSet Pro to your chosen workflow the configuration options are grouped in distinct groups, each documented in the following sections. It is also possible to save preferences as presets, allowing you to quickly switch between settings relevant to different workflows. See presets.
All types of texture map feature a suffix option. Based on this suffix a filename will be recognized as a texture map of a given type. The suffix is the last part of the filename before the file extension, the prefix or base name is the rest of the filename before the suffix. For example in the filename MyMesh_MyMaterial_Normal.png you could consider _Normal the suffix in which case MyMesh_MyMaterial would be the base name.
When selecting a file, NodeSet Pro will try to match the filename against any of the defined suffixes and if found, treat the file as a texture of a certain kind. It will also try to find other file names in the same directory with the same base name but different suffixes. This way when you select a file that ends in ‘_BaseColor’, for example ‘SampleMaterial_BaseColor.png’, all other image files in the same directory that start with ‘SampleMaterial’ will be loaded as well.
The other texture map options may seem bewildering at first because there are a great number of them, but all follow the same pattern. As indicated each map has options for
Texture map suffix
this specifies the last part of the filename that will determine the type of the texture
Color data
With this checkbox you can indicate whether this texture contains data that is not linear, that is, contains data that should be color corrected. It is checked by default for all color maps (Base Color, Diffuse and Emission)
Invert
If checked a math node will be added to the Color output socket of the texture node that will invert the value, that is, map a range [0,1] to [1,0]. This is convenient for example if you want to connect a glossiness map to a roughness input of a shader. For normal maps a special Flip Normal node will be inserted that allows for conversion between DirectX and OpenGL normals.
Alpha
Adds an inverting math node to the Alpha output socket of the texture. This option is only present for color textures
Shader input socket
The name of the shader input socket to which to connect the Color output of the texture node
Alpha
The name of the shader input socket to which to connect the Alpha output of the texture node. This option is only present for color textures
If the socket names of a shader to connect to do not exist, no connection will be made.
Texture map options
All possible textures maps are grouped according to their common workflow. In the sections below screenshots are shown for the default configurations that are present when you install NodeSet Pro
Metallic/roughness workflow
Note that the names of the suffixes are the defaults as generated when exporting maps from Substance Painter in the Metallic/Roughness workflow and that the input socket names are the appropriate names to connect to a Blender Principled shader.
Specular/glossiness workflow
Note that the names of the suffixes are the defaults as generated when exporting maps from Substance Painter in the Specular/Glossiness workflow. The input socket names are names present on a Blender Principled shader but this is almost certainly not what you want because the Principled shader is not targeted at the Specular/Glossiness workflow. So most likely you will want to specify socket names of an alternative shader, a shader that you can specify with the Alternative shader option.
Common workflow
Note that if the Invert option is checked for the Normal texture map a special Normal flip node will be inserted that will invert just the green channel. This makes it possible to convert between DirectX and OpenGL normals (and vice versa).
Additional textures
An emission map contains color data and is by default treated that way. It may have an alpha channel as well but whether this will contain useful data depends on the software. We do provide an option to connect the alpha channel to a shader socket just in case.
Custom texture maps
NodeSet Pro allows you to configure two custom maps. Custom maps can be defined in software like Substance Painter to pack different kinds of data into the color and alpha channels of a single text map, thereby reducing the number of different texture maps you need to move around.
Out of the box the first map contains defaults that might be useful for a texture that combines the height, roughness and metallic information in the red, green and blue channels respectively:
We have indicated that the texture should be treated as individual channels (by checking ‘Split’) and we have specified the role of the red channel to be ‘Height’. This will cause this channel to be connected to a Bump node first before being connected to the shader socket (in this case configured to be the Normal socket). Each channel can be individually connected to a math node that will invert the data.
A custom map does not have to contain different kinds of information, it could be another type of color map (like for example Specular Color) or some sort of vector map (a flow map perhaps). Custom map 2 is by default configured not to be split and all other options have been left empty:
General options
Files
The preferences listed under the Files section control the way NodeSet Pro tries to find texture files.
Case Sensitive
If checked file matching will be case sensitive: mytexture_basecolor.png will be considered different than Mytexture_BaseColor.png.
Link Existing Tex Files
If checked will not load a new copy of the image if the image is already present. Instead it will link the Texture node to this existing image.
File extensions
The list of filename extensions that will be considered as texture files.
File filter
If checked will filter the list of files using a wildcard (see next option)
Wildcard (Keyword)
The default of Color will restrict the list of files to show to just those containing the word Color in their name. Textures with the same base name will still be loaded of course. Unchecking the File filter option or specifying a different keyword might be useful if your workflow creates textures sets that do not contain a file with Color in its name (for example Albedo).
Shader
The Shader preferences control how the other nodes beside the texture nodes that may be created by NodeSet Pro are configured.
Remove nodes
If checked will remove any nodes already present in your material before inserting new ones. It will only do this for the ‘Add Texture set + Shader’ and ‘Add Texture set + Shader (Displacement)’ menu entries (not for the ‘Add Texture set’ entry) and it will not remove any Material Output node or Group input/output node.
Object Space in Normal Map
If a Normal Map node is inserted in the node setup, this option determines if it will be configured to use Object Space mapping or Tangent Space mapping.
Texture coordinates
If UV is chosen an extra UVMap node is inserted before the group of texture nodes and connected to their Vector input socket. This allows for the use of a different UVMap than the default map. Any other choice except None will insert a texture coordinate node for with the chosen coordinate will be used.
Use normal maps nodes
If checked will add a Normal Map node to a normal map texture.
Use roughness ramp
If checked will insert a color ramp node into a link that connects a roughness map to a shader, allowing for detailed control of the roughness.
Projection
Offers a choice of projection modes to use for all input textures. ‘Flat’ is the default. If ‘Box’ (blended box mapping) is chosen an additional option is shown for the default blend strength.
Normal strength
The default strength of any Normal Map node added (Blender’s default of 1.0 is often too strong so for convenience this is set to 0.3)
Bump strength
The default strength of any Bump node added (Blender’s default of 1.0 is often too strong so for convenience this is set to 0.3)
Use principled shader
If checked will use Blender’s Principled shader, if not will use an alternative NodeGroup (see next option)
Alternative shader
The NodeGroup to use as a shader instead of Blender’s Principled shader. Note that this NodeGroup must already be present in the .blend file in order to be selectable, so normally you would include such a custom shader NodeGroup in your startup file.
Layout
The layout preferences influence minor points of the look-and-feel of the generated nodes.
Texture Frame Color
The texture nodes that are created are grouped inside a frame with a descriptive name. This option controls the color of this frame.
Shader Frame Color
All nodes added to the material, including any shader and the frame with the texture nodes is placed inside a frame. This option controls the color of this frame.
Zoom out
If checked will try to make all nodes visible in the node editor.
Panel location
By default the texture set panel will be available in both the tools area of the 3d view and that of the node editor. With this option you can restrict the appearance of the panel to just one of those regions.
Presets
It is possible to save preferences as presets. Preference options that relate to how texture sets are recognized and interpreted are saved separately from options that influence behavior.
NodeSet comes bundled with presets that recognize typical Substance Designer texture sets (the default) as well as presets to handle sets from Poliigon and Textures.com.
Frequently Asked Questions
How do I convert DirectX/OpenGL normals?
In the add-on preferences, check the ‘Invert’option of the normal map. This will insert a special conversion node that will flip the green channel of the normal map only, thereby converting from DirectX format to OpenGL format (or vice versa).
I have more than one UVMap on my object, how do I specify which one to use?
In the Shader section of the add-on preferences, make sure that the Add a UVMap node is checked. This will add a UVMap node in front of any texture node present. This UVMap node will offer a dropdown of the available uv-maps on this object. You can leave it blank to use the default map.
How do I use a shader group I have instead of the Principled shader?
In the Shader section of the add-on preferences, uncheck the Use principled shader option. This will reveal a dropdown box called ‘Alternative shader’:
This will show a list of available node groups. To have anything to choose from here, you must make sure any node group you wish to use as a shader is already included in your .blend when you configure the NodeSet Pro add-on. The most convenient way to do so is by including this node group as part of your Blender startup file.
If you are configuring NodeSet Pro with a .blend file open that does not (yet) contain the node group you want to use you have to add the group with File → Append before you can select it.
Note that if you create a new startup file, existing .blend files that you open later will NOT read this startup file so the preferences might indicate this condition in red:
If so, just add the node group to the existing .blend
I have a suggestion for an enhancement/feature, how do I contact you?
I am open to any good suggestion and you can either contact me by clicking the Contact Creator button on my BlenderMarket shop or by filling out the contact form on my Small Blender Things blog.
Yes, it should be, but you have to download the correct version from your BlenderMarket account. Be aware that Blender 2.80 is still in beta so you might encounter difficulties!
I am open to any good suggestion and you can either contact me by clicking the Contact Creator button on my BlenderMarket shop or by filling out the contact form on my Small Blender Things blog.
In the Shader section of the add-on preferences, uncheck the Use principled shader option. This will reveal a dropdown box called ‘Alternative shader’:
This will show a list of available node groups. To have anything to choose from here, you must make sure any node group you wish to use as a shader is already included in your .blend when you configure the NodeSet Pro add-on. The most convenient way to do so is by including this node group as part of your Blender startup file.
If you are configuring NodeSet Pro with a .blend file open that does not (yet) contain the node group you want to use you have to add the group with File → Append before you can select it.
Note that if you create a new startup file, existing .blend files that you open later will NOT read this startup file so the preferences might indicate this condition in red. If so, just add the node group to the existing .blend
In the Shader section of the add-on preferences, make sure that the Add a UVMap node is checked. This will add a UVMap node in front of any texture node present. This UVMap node will offer a dropdown of the available uv-maps on this object. You can leave it blank to use the default map.
In the add-on preferences, check the ‘Invert’option of the normal map. This will insert a special conversion node that will flip the green channel of the normal map only, thereby converting from DirectX format to OpenGL format (or vice versa).
Purchase this item to leave a review!
varkenvarken 10 months ago
Thanks for the feedback. I am already working on a new release (which will be free for existing NodeSet Pro customers of course) and I will certainly consider your suggestions for inclusion!