This is a shader that evaluates a coherent noise function (potentially summed over several octaves, giving fractal noise, sometimes known as a turbulence function). The output is between 0 to 1 (actually [0,1)), which can be used as input to several other shader nodes to produce various effects. This is useful for creating many real-world patterns (marble, granite, leather, etc.)

A tutorial that covers different noise patterns can be found here.

This shader outputs a float value and therefore may prove unpredictable when connecting it to something like a gobo filter which requires color values. A workaround is to build an RGB color from the output of the Noise texture using the float_to_rgb shader.


The number of octaves over which the noise function is calculated (the fractal noise function is repeated at multiple frequencies, known as octaves; normally each octave is at about twice the frequency, i.e., half the size, of the previous one, but you can alter this with the lacunarity control).


Defines a degree of random displacement applied to each point as part of the noise calculation, giving a different aesthetic feel.


Controls the average size of gaps in the texture pattern produced. Lacunarity means the change in scale between each octave - in musical scales this would be 2.0, meaning each octave is at twice the frequency/half the scale of the previous one, but for our purposes numbers that are near 2.0, but not actually 2.0 are best. In most cases, we recommend using the default value of 1.92.


Controls the amplitude, or range, of the output. Normally the output has values between 0 and 1; the amplitude control multiplies this.


Defines the noise function to use (scalar or vector fractal noise). In scalar mode, the output color is computed by blending between color1 and color2, and in vector mode, a separate noise signal is generated per color channel.

Color 1, 2

The output color of the noise shader in scalar mode (interpolation between the two color values by the noise function).




Specifies the coordinate space to use. These include World, Object, Pref and UV space coordinates. Pref is short for 'vertex in reference pose'. The plugin can pass these vertices to Arnold (in addition to the regular, deformed vertices) which can, in turn, be queried by the noise shader so that the noise 'sticks' to the reference pose and does not swim as the mesh deforms.

  • Object space, where points are expressed relative to the local origin (center) of the object.
  • World space, where points are relative to the global origin of the scene.
  • Pref, which isn’t really a space, but rather a reference to a bind pose (note Pref does not work with NURBS surfaces).
  • UV, for texturing using the object’s local UV coordinates. Note that this calls the faster 2D noise API, not the 3D noise like all other coordinate spaces.


Ensure that you have an Arnold Tag with Export reference points enabled when using Pref coordinate space.

Pref Name

Specify the name of the reference position user-data array. Previously, the name was hard-coded as "Pref", which is still the default. The array type can be RGB/RGBA as well as VECTOR.


 Controls the scale of the noise function in x, y, and z directions.

Scaling the noise in one direction only can produce interesting results.

Scale X:1, Y:0.1, Z:0.1


 Offset the noise in x, y, or z directions.


Input coordinates of the 4D fractal noise function. The surface point is used when not defined (0).


Input time coordinate of the 4D fractal noise function.



Noise -> Arnold Displacement. Scene file here.

  • No labels