WTP - Will Timmins' Perlin Noise Iray Shaders

These shaders use Perlin noise functions to generate patterns for certain texture parameters instead of typical maps.
Perlin noise is the effect Photoshop and other image editors typically use to generate cloud patterns.

With a bit of creativity, you can use this noise to create a wide variety of effects.

In Base Shaders the specific types of noise shaders are listed. So if you want to add craggy bump details to an object that otherwise has a surface you like, copy the surface, apply WTP Base Bump, and then paste; all the regular details of the original surface are copied over, and you can tweak the bump noise to your liking.


Procedural shaders can look good at close and distant ranges. They don't suffer some of the tiling effects that regular map-based shaders do.

Since they don't use image maps, they also require much less memory; this can be vital at getting a scene to process on a GPU rather than falling back to CPU rendering (which is typically much slower).

Finally, procedural effects often just look really neat.


In most cases, control of the noise function is as follows:
The original channel is unchanged, like Base Color.
A secondary channel is added, like Secondary Base Color.

  • Note that the original channel still has the option to take a texture map, allowing for interesting mixes. For instance, a skin texture will be kept in Base Color, but then random green splotches are generated on it.

Bump is a special case; Bump noise only has a Bump Strength characteristic, it does not have primary/secondary channels. Bump Strength can be positive or negative.
For shaders that also have top coat noise, top coat bump is linked to bump, but has it's own Top Coat Bump strength.

There are then thresholds, which serve to shift the transition between one value and the other. This is prefixed with the type of channel affected.

So, for example, Base Color Upper threshold sets a point at which the noise shows the primary channel value. By default this is 1. If you lower this value, more of the surface will be covered with the primary channel.
Base Color Lower threshold sets a point at which the noise shows the secondary channel value. By default this is 0. If you raise this value, more of the surface will be covered with the secondary channel.

  • If you set these two thresholds close together, the transition between primary and secondary is very abrupt (such as on the Pattern/Camo Base Layer shader)

Billowing appearance is a simple toggle. When this is on, the noise tends to 'clump' in a way reminiscent of grouped clouds, veins, or other structures. When off, the noise is more dispersed.

Levels governs how complex the noise function is. Level 6, the usual default, is about as complex as you will ever need. The only time you might need more is if you have a surface that runs very close to the camera off into the distance.
Lower levels can create interesting and more smooth designs.

Tiling determines the scale of the pattern, and is arranged XYZ. Lower values makes a given detail appear bigger on an object.
If these values differ from one another, the pattern will stretch in the direction of the smaller values. Many of the shaders with scored lines have tiling like '500 1 500' or similar.
You may have to play with the tiling a bit, particularly if you are applying shaders to very different objects; the scale that works well on a sphere primitive may not work well on a person.

Rotation rotates the pattern around xyz. This can be handy if you wish two noise patterns to be slightly rotated from one another.

Offset is used in one shader, moving the pattern a little. This might be useful for things like freckles, where you really want to have a particular mole moved over an inch.

Use Object Space is available in roughly half the shaders. Where it isn't listed, it is on by default.
When it is on, the pattern generated is absolute, based on it's position in the world space. It doesn't matter what the object is shaped like or how big or how it moves or poses; in a sense, the object's surface 'reveals' the shape of the noise function in space.
The advantage of this is that it ignores UV maps, geografts, or even sticking objects together; if you have camo spots on a sphere and put a person sticking out of it, the spots will seem to merge naturally from sphere to skin.
The disadvantage is that the patterns will shift as the objects move through space; if someone has a freckle on their nose and they turn their head, the freckle will slide and possibly vanish across the face.

When Object Space is off, the pattern is connected to the surface, and the UV map. This will leave visible seams between surfaces, though with wood and metal this can be desirable. However, it will also flow along the UV map, which is a particular advantage with clothing. As the figure or shapes move and pose, the noise patterns will be consistent.


Several shaders are ideal for placing on Iray decals or geometry shells, adding an effect on top of some other surface; dirt smudges, snow cover, water droplets, and so on.

Iray decals are added to an object in Daz Studio by selecting the object, then Create / New Iray Decal Node
Once made, the decal has a certain zone of influence. This can be moved or scaled in its parameters. Note that you can only see the effect in a final render or NVIDIA display.
You will want to change Parameters / Decal / Face Mode to 'Front and Back', and probably expand it to 300% scale or so. (For human figures, 400%, maybe; I've expanded it to 20000% for terrain)

A decal is effectively 'spray painted' on the object's surface. It's opacity determines how much of it shows. So it's a good way to, say, add a tattoo to someone.
Decals have a projection type. By default, they are planar, being projected (like in a movie projector) from one direction (which you can change). This is a great simple way to do an elevation effect; put a gradient from black to white in the cutout opacity, and you get a decal that goes from invisible, at the bottom, to full, at the top.
You can also change the projection to Cube and a few other options.
Finally, if you want the decal to follow the actual UV map, there is a Texture Coordinate System parameter that can be changed from Object -> UVW.

Where WTP shaders come in handy is… they ignore this projection. So this can be an easy way to add various grunge layers onto a surface quickly.

There is, however, one large drawback to Iray decals: there is no way to only apply them to a specific surface. So if you are trying to add a decal of blue spots to a person, you can't prevent the decal from covering eyelashes, eyes, tongue, etc.

Geometry shells, on the other hand, have a lot of flagging options for determining what bits are visible.
A geometry shell is essentially a linked copy of an object, that can be given a different surface texture. It has many of the same properties as the original object, which can be altered independently. For example, a geometry shell can be scaled differently, moved off from the original, and so on.
Geometry shells have a mesh offset that defaults to .1. This is identical to the push modifier that can be added to objects; the mesh is 'ballooned' away by .1 units. This value can be adjusted up or down, but Iray doesn't behave well if two surfaces are at the same place. (So you don't want offset to be 0, or have multiple geometry shells with the same offset)
Offset can be negative, so you could have glowing bits underneath or whatever.