Marble Noise*

Spot Noise Preview

Marble Noise synthesizes natural stone textures using a multi-octave fBm (fractional Brownian motion) structure. Unlike simple noise, it simulates the stratified layers of real sedimentary rock. Layered absolute and signed noise functions shape flowing veins, which are then modulated by tunable diffusion and color bands. A secondary isotropic 3D cellular spot generator adds subtle mineral inclusions, creating a rich, heterogeneous material look.

Performance Cost 🟡 Medium
Space 2D/3D - UV/World/Object
Implementation Native Compiled C++
Devices (Cycles) CPU / GPU (1:1)

Usage & Behavior

Default values
High contrast veins close-up
High complexity high ratio values
Also good for stains, rough maps etc. (absolute mode)

This noise operates by calculating a "height field" representing the rock's strata. The integer part of this height determines the layer, while the fractional part drives the vein gradients. This analytic approach allows for infinite resolution veins that never pixelate, with built-in controls for how much the colors bleed (Diffusion) and how sharp the layers are (Absolute).

Best Used For: Architectural marble (Carrara, Calacatta), polished granite, sedimentary rock walls, agate slices, and alien planetary surfaces.
It is really a general purpose finely tweakable noise. We use it here even for clouds, stains and roughness maps.

Key Features

  • Stratified Veins: Simulates geological layering rather than random noise.
  • Diffusion Control: Adjustable bleed between vein and filler colors.
  • Mineral Inclusions: Integrated cellular spot generator for added realism.

Parameters

Absolute (bool, default: false)
Determines the noise calculation method.
  • False (Default): Standard signed noise. Produces smooth, rolling transitions suitable for soft marble.
  • True: Uses absolute values abs(noise). This creates sharp creases and folded strata, looking more like agate or highly compressed rock.
Coords Vector
The input texture coordinates.
Scale Vector (default: 2.0, 2.0, 2.0)
Global scaling factor. Controls the frequency of the strata lines.

Vein Settings

Filler Color Color
The base color of the stone (the space between the veins).
Vein Color 1 / 2 Color
The primary and secondary colors of the veins. The noise alternates between these two colors based on the layer index, creating variation in the striping.
Vein Width (default: 0.2)
Controls the thickness of the colored bands relative to the filler.
Diffusion (default: 0.32)
Controls the sharpness of the vein edges.
- Low values: Sharp, hard lines.
- High values: Soft, blurry transitions where the color bleeds into the filler.

Fractal Settings

Amplitude (default: 1.5)
The strength of the distortion applied to the strata. Higher values make the veins more turbulent and wavy.
Ratio (default: 0.7)
Controls the persistence of the fractal detail. Higher ratios add more high-frequency noise to the vein edges.
Complexity (default: 10.0)
The number of noise octaves. Higher complexity adds finer details and "grit" to the vein paths.

Spot Settings (Inclusions)

Spot Color Color
The color of the mineral inclusions (e.g., black flecks in granite).
Spot Density (default: 0.32)
Controls the probability and sharpness of the spots.
Spot Scale (default: 1.0)
Controls the size of the spots relative to the global scale. Note: The spot position is also influenced by the Fractal Complexity, so changing complexity may shift spots.
Spot Bias (default: 0.2)
Adjusts the falloff/contrast of the spot edges.

Quick Recipes

Use these presets for classic stone materials.

Classic Carrara

Absolute: False
Vein Width: 0.15
Diffusion: 0.6
Spot Density: 0.0
Soft diffusion and thin grey veins on white create the classic Italian marble look.

Red Travertine

Absolute: True
Vein Width: 0.4
Amplitude: 2.5
Diffusion: 0.1
Absolute mode creates sharp, folded strata layers. Low diffusion keeps the bands distinct.

Polished Granite

Spot Scale: 0.8
Spot Density: 0.7
Complexity: 12
Vein Width: 0.0
High spot density with zero vein width creates a purely granular, speckled surface.
Technical Note: The shader calculates a height field h based on summed octaves. The integer part floor(h) determines the layer index (for alternating colors), while the fractional part fract(h) drives the gradient. Diffusion is calculated using exponential decay exp(-h / diffusion) from the vein edges.
↑ Back to Top

Leave a Reply