mx_noise_vec3
A procedural color noise generator based on Perlin noise that outputs a three-dimensional vector (vec3) at once, ideal for directly creating colorful textures or 3D displacement fields.
Core Advantages
Efficiently generates three related noise channels in a single call, simplifying the process of creating colorful procedural textures and 3D vector fields (for vertex distortion) without manually combining multiple single-channel noises.
Common Uses
Directly generating colorful textures like nebulas or psychedelic patterns
Creating turbulence or melting effects via 3D vertex displacement
Distorting UV coordinates to simulate water or heat haze refraction
Defining 3D vector fields to drive particle movement
How to adjust
Tint the noise or control channel-specific contrast by passing a `vec3` to the `amplitude` input. In a vertex shader, add its output to the vertex position to achieve 3D distortion. Use `positionWorld` as input combined with `timer()` to create a volumetric effect of an object moving through dynamic, colorful smoke. Its .r, .g, and .b components can also be used as three separate-but-similar noise maps.
Code Examples
1// Tint the noise towards a red hue using a non-uniform amplitude
2const tintedNoise = mx_noise_vec3( uv(), vec3( 1.0, 0.3, 0.1 ), 0.5 );