Free Wave Filter Node Pack - Documentation

General / 18 February 2019

Hey everyone.

If you read my recent blog post you'll know that I'm currently spending a lot of my time learning UE4 and attempting to make my first real-time environment. This isn't leaving me much time to make Substance Designer materials (except the ones used in the environment which you'll get to see later), hence the drought lately. As a way of saying thank you to you all for following me and continuing to take an interest in my work, I'm releasing a free node pack containing some potentially very useful wave filters:

  • Sine Wave
  • Sawtooth
  • Plateaus
  • Wave Filters

Wave Filters basically just allows for quick selection of the main waveforms: sine, square, triangle and sawtooth. Triangle is just sawtooth with it's peak set to 0.5, and square is just a clamped triangle. The pack is available to download from my Gumroad.

This post is intended to act as the documentation for the nodes, so I've put together some examples of what the different filters and their various settings do.

The following examples show the effects of the different filters on simple gradient inputs:

Now what about on some peril noise:

And finally let's see it on something more complex, like fractal noise:

And now for the parameters:

Sine Wave:

Applies a sine wave filter to the grayscale input.

Wave Count (float):    Sets the number of waves.

Wave Offset (float):    Offsets the wave phase.


Sawtooth filter with controls for changing the offset and peak position. Peak position can also be varied using a custom mask input.

Tooth Count (float):    Sets the number of teeth (same as wave count above).

Phase Offset (float):    Offsets the sawtooth phase (same as wave offset above).

Peak Position (float):    Sets the position of the sawtooth's peak.

Use Custom Peak Input? (boolean):    When set to true, peak position is overridden by a custom mask input. This allows for setting the peak position on a per pixel basis.

Custom Peak Range (float2):    Only available when 'Use Custom Peak Input?' is true. 'Peak Position at Min' is the peak position represented by black on the mask input and 'Peak Position at Max' is the position represented by white.


Plateaus filter with controls for changing the offset and slope depth. Slope depth can also be varied using a custom mask input.

Plateau Count (float):    Sets the number of plateaus (flat levels).

Offset (float):    Offsets the plateau phase.

Slope Depth (float):    Sets the depth of the slopes between plateaus. At a value of 0 the slopes are vertical, at 1 the slopes completely replace the plateaus and the output matches the input.

Use Custom Slope Input? (boolean):    When set to true, slope depth is overridden by a custom slope input. This allows for setting the slope depth on a per pixel basis.

Custom Slope Range (float2):    Only available when 'Use Custom Slope Input?' is true. 'Slope at Min' is the slope depth represented by black on the mask input and 'Slope at Max' is the depth represented by white.

Plateaus also outputs some pretty useful masks:

  • Plateaus:    The flat areas.
  • Slopes:    The slopes with parameters for tweaking the selection.
  • Steepness:    Black at horizontal parts, white at vertical parts. Has parameters for changing the intensity and for inverting.
  • Height Difference:    Basically the input ran through a sawtooth filter.

You should be able to easily extrapolate whatever masks you want from the ones provided, but I've also included some parameters for tweaking them. The parameters are all pretty self explanatory. 

Wave Filters:

A collection of wave filters based on the main waveforms: sine; square; triangle; sawtooth.

As mentioned before this node is basically a sine wave and modified sawtooth nodes. The parameter names are more standardised and it doesn't include the custom mask input functionality. The majority of parameters are the same as above, except for 'Square Wave Slopes'.

Square Wave Slopes (float):    Sets the slope depth between the black and white values. At a value of 0 the slopes are totally vertical, at 1 the wave profile matches that of a triangle wave.

And that covers it. They're fairly simple filters but I'm sure you'll agree there's a lot of potential with them. One idea is to combine them with curve nodes (I know, right!). Here's my attempt at using the Plateaus to create a Colorado/Arizona like terrain material. I hope that they come in handy to some of you. Have fun creating, and please let me know what you think. Perhaps give me a shoutout if you use them in your material studies.