This operator can compute three types of 1D and 3D noise with the ability to compute turbulence with roughness and attenuation:
Perlin noise (string value "pnoise") Original Perlin noise (string value "onoise") Sparse Convolution noise (string value "snoise") Alligator noise (string value "anoise") Simplex noise (string value "xnoise") Zero Centered Perlin (string value "correctnoise")
Original Perlin noise is similar to Perlin noise, but marginally less efficient in computation and with different characteristics. The bounds on the noise are roughly (-1, 1) when turbulence is 0.
Perlin noise sums octaves of a noise with range about (0, 1), resulting in a non-zero centered result. Thus the zero centered perlin better matches the ranges of the other noise fields.
Sparse Convolution noise is similar to Worley noise. The noise returned is based on the weights of all of the closest points, with each point’s contribution based on a meta-ball like rolloff curve. That is, if the sample point is close to the sphere, its contribution will be greater. The bounds on the noise are roughly (-1.7, 1.7) when turbulence is 0.
Alligator noise is similar to Worley noise. It is currently not possible to simulate Alligator noise using the Worley functions, but it is possible to get a very similar 'look'. The bounds on the noise are roughly (0, 0.5) when turbulence is 0.
Simplex noise is very close to Perlin noise, except with the samples on a
simplex mesh rather than a grid. This results in less grid artifacts. It also
uses a higher order
bspline to provide better derivatives.
The relative costs for computing noise of different types is roughly:
Cost | Noise Type -----+------------------------- 1.0 | Perlin Noise (see Periodic Noise operator) 1.1 | Original Perlin Noise 1.8 | Worley Noise (see Worley Noise operator) 1.8 | Periodic Worley Noise (see Periodic Worley Noise operator) 2.1 | Sparse Convolution Noise 2.3 | Alligator Noise
Make sure at least the Position (
pos) input is connected in order to
notice any noise. The easiest way to accomplish this is to pipe the
P into the
pos input. All global variables are
accessible from the Global Variables operator.