noise

Class

Shader

Output

float

Synopsis


This is a shader which 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.)

 

 


 

octaves

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).

distortion

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

lacunarity
Controls the average size of gaps in the texture pattern produced. Lacunarity actually 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.
amplitude

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

scale

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

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


 

coord_space

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. In addition, an arbitrary coordinate space can be specified manually by linking another shader into the new P parameter. 

This is useful for all sorts of things such as being able to animate patterns flowing through objects, having patterns move along with objects etc.

For example a coordinate system that you're animating to move the noise field through an object (common technique for doing water running over a surface) or a coordinate system that is defined relative to a larger object (e.g. think of a spaceship that's comprised of many smaller objects and you want to paint noise over the whole surface).

 


Specifies the coordinate space to use. These include World, Object and Pref space co-ordinates. 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).

Below are animations that show Pref space coordinates in use with a deforming object. Note how the texture sticks to the object when using Pref space coordinates, compared to Object/World space coordinates where the texture swims.

 

Using World/Object Space - Texture Swims

 

Using Pref Space - Fixes Texture Swimming

 

 

  • No labels