NodeSet Pro

by Michel's add-ons & more in Scripts and Addons

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


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.



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.

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 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 convert DirectX 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).

Item Rating

This item has an average rating of 5 from 1 ratings by the community.

100%
0%
0%
0%
0%
  • virgil89 3 months ago

    I was almost willing to learn Python in order to give me some help in the boring process of uploading texture to material. I don't even know if you can actually recommend something so indispensable... is as recommending someone to eat. I haven't even look in the preference and the addon already works like a charm for my needs. What took me around 20/30 seconds for each material now is just matter of ONE CLICK... I also you use the RGB (Metal/Roughness/AO) 1 texture workflow so boom even more great.

    Support this developer and buy this addon!

    Things I would like to see in future updates:
    - As a Substance Designer user more often than not, I do materials with no UV in mind, and I can quick test them in Blender using the Texture Coordinate Node with Generated output plugged into the Image Texture Node with Projection on Box.
    I think most users will benefit for having this "Quick load material" for mesh with no UVs. There are many cases where this is enough and you dont properly need to unwarp.

    - a ColorRamp node between the roughness and the shader

    • varkenvarken 3 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!

Purchase this item to leave a review!