Shader Trees: a texture creation aid

Over the last year or so I had been working on creating some nodes that I thought would be helpful for texture creation in blender. Most of these node groups are nodes I couldn’t find online. Some of them do simple things like open the vector mapping inputs to use with other nodes, as well as some nodes that add new shapes for textures, like curve shapes and polygons.

Here’s a material I made with them:


It’s a plane with material mapped onto it.

The material file you can get here:
https://mega.nz/#!h2QzRY6B

Here is the complete list of nodes:
Bisected Polygons:
A polygon which have angles bisected or are constant along those angles. An upper limit of 16 sided polygons.

Even Polygons:
A polygon which doubles the sides when input is odd and keeps the number of sides when an even input is given. Similar shape to Bisected.

Polygonizer:
The Gradient of the polygon turns into a Circle as you ramp up the blacks with color Ramp in this one giving rounded edges. A high input slowly turns the polygon dark, though if the output is multiplied the polygon turns visible.

Curve Shapes:
Creates a Shape in Curve Pattern, with an input for controlling how the curve spreads and a RGB curve input for controlling how the curve shape’s edges are. Turn this node group into its own data block when making multiple shapes. Also just the curve can be expressed with a color ramp through it.

Circle Spread:
Turns the input vector around a circle. the vector must then be passed into a texture node to repeat that texture around the circle. The first input controls the scale of the shape per repeat outwards. The second “Radial scale” controls the scale per radial repeat. The total scale controls the scale both radial and outwards(from the circle’s center). The factorial is for controlling the shape to spread inversely or not ie along sphere. Radial Repeat controls the number of repetitions around the circle. The Outward Repeat controls the number of repetitions away from the circle.

Gaussify:
Turn the shape into which the vector output is passed into a more rounded shape.

Grad:
Turns a Gradient input into a Repeating function.

Grad RE:
uses the Grad for repeating a texture coordinate vector on all axis. Since the vector is repeated from 0 the output will probably have to be translated a bit in accordance with the size of a texture and number of repeats from this node.

Mirror:
Mirrors and scale the vector input along either along the the Y axis, X-Y axis or the X- axis. Conversely can also be used to just scale the vector input.

Normal Mapping Mirrored:
Used for mapping the textured made on a plane onto a sphere, cube or a cylinder. The reason its mirrored is to remove seams also its better to start from one of the shapes instead of having to tweak them later.
This and the next node require some tweaking and understanding to use.

normal Mapping:
Same as the last one instead it may provide seams. Useful for non repeating textures.

Pipe Shapes:
A preset of Curve Shapes that can be used for making Pipes on different inputs and color ramping the gradient.

Radial Mirror:
Mirrors the vector on all for side of the Z axis. Older version of Normal Mapping, pertains to different uses too.

Rotate/Translate:
Rotate a vector the translates it. Only along the Z-axis.

Rotatory-Z:
Only rotates the vector along the Z-axis.

Rotatory:
Can specify Which axis to rotate along. The const axis is the axis to rotate around and the secondary and tertiary axis’ are the one to rotate.

Scale-X:
Scale along the X-axis.

Scale-Y:
Scale along the Y-axis.

Scale-Z:
Scale along the Z-axis.

Scale/Transform:
Scales then transform the input vector. The transformation is done later for greater fidelity after the scale has been increased by a greater factor.

Shape Spread:
Similar to Circle Spread but repeats it along a Shape which the node has a input for. This node was meant to be used where the shape should be a polygon.

Simple mirror:
Mirror along all the axis.

Stretch-X:
Pulls the texture away from the zero of the X-axis along its positive side, making all point in between the extent and the zero, constant as 0.

Stretch-Y:
Similar to Stretch-X, but for the Y-axis.

Translatory:
Translates the vector input along any of the X/Y/Z axis.

Translate/Rotate:
Translates than rotates the vector around the Z-axis.

The node groups can be used for 2.79 as well as 2.8, although I myself work with the 2.8 beta itself.

You can pick up the files on my gumroad(https://gumroad.com/l/fOtU).

1 Like

I hope that you will now try to get these tools included in a future official product release! :smiley: