Kernel Noise*

Kernel Noise Preview

Kernel Noise (Local Spot Noise) introduces a completely new noise family to the toolkit. Distinct from gradient noise (Perlin) or cellular noise (Worley), Kernel Noise operates on the principle of Gaussian Splatting.

It synthesizes procedurally distributed Gaussian-shaped impulses across a lattice. Each impulse contributes a localized elliptical kernel, which can be analytically rotated, scaled, and distributed. This approach allows for the creation of structured, geometric patterns (like weaves and chainmail) or highly controlled stochastic textures (like sprayed paint), all with mathematically perfect anti-aliasing.

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

Usage & Behavior

Using a spherical gradient to ctrl the distribution component
Using a ramp and a NoiseCyclic
Covariance filtering with 1 global sample
High density (high impulses) denim-like appearance
Zig-zag lines
Crossed lines
As bump map with shading
Both albedo and normal maps
Low caos value (z-ctrlmap)
High caos value (z-ctrlmap)
With one impulse
With four impulses

Kernel Noise excels at "blobby" or "woven" structures. By adjusting the Length and Thickness, you define the shape of the spot (round vs. elliptical). The unique Alternating Rotation feature allows neighboring cells to rotate in opposite directions, instantly creating woven fabric patterns or interlocking chainmail looks.

Best Used For: Carbon fiber, woven fabrics, chainmail, sprayed concrete, splatter patterns, and biological cells.

Key Features

  • Gaussian Impulse Basis: Uses analytic elliptical kernels rather than interpolated gradients.
  • Covariance Filtering: Matrix-based anti-aliasing for perfect sampling at any distance.
  • Precise Control: Dedicated vector map for Orientation, Distribution, and Chaos.
Matrix-Based Covariance Filtering

Like Scratches Noise, Kernel Noise implements a custom high-end filtering engine.
However, this implementation is even more advanced: it uses Covariance Matrices.

The code calculates a mathematical ellipse representing the "footprint" of the screen pixel (Sp) and combines it with the ellipse of the noise kernel (S). By convolving these two matrices (Σp + Σ), the shader analytically calculates exactly how blurred a spot should be. This prevents "fireflies" (sparkling artifacts) when tiny high-frequency spots are viewed from a distance, ensuring a stable image even with 1 sample per pixel.

Control Map Schematic

The Ctrlmap input is a packed vector that controls three distinct properties of the noise distribution. Use a Combine XYZ node to drive these independently.

X : Orientation Base rotation angle (0.0 to 1.0 maps to 0 to 2Ï€). Controls the alignment of the ellipses.
Y : Distribution Jitter amount. Determines how far impulses can stray from the cell center. 0.0 is a perfect grid.
Z : Chaos Random rotation variance. Adds random noise to the orientation of each individual kernel.


Parameters

Coords Vector
Input 2D texture coordinates.
Scale Vector (default: 24.0, 24.0, 0.1)
X / Y: Controls the density of the spatial lattice (grid size).
Z: Controls the Filtering Strength. Set Z to 0.0 to disable filtering (sharper but aliased). Higher Z values create softer, more stable kernels.
Rotation (default: 90.0)
Rotational offset (in degrees). Crucially, this rotation alternates by cell (checkerboard pattern) if the Control Map is static, creating automatic weaving patterns.
Length (default: 0.6)
The major axis of the elliptical kernel. Controls how "long" the spot is.
Thickness (default: 0.08)
The minor axis of the elliptical kernel. Controls the width or fatness of the spot.
Hardness (default: 1.0)
The amplitude of the Gaussian impulse. Higher values make the core of the spot brighter and the edge gradient tighter (higher contrast).
Impulses (default: 1)
The number of Gaussian kernels generated per grid cell. Increasing this creates dense, overlapping clusters, useful for dust or spray effects.
Ctrlmap Vector (default: 0, 0, 0)
See the Control Map Schematic above. Drives Orientation (X), Distribution/Jitter (Y), and Random Chaos (Z).

Quick Recipes

Use these presets for geometric and stochastic patterns.

Carbon Fiber Weave

Rotation: 90.0
Length: 0.9
Thickness: 0.2
Ctrlmap: (0, 0, 0)
Default alternating rotation + elongated kernels creates a perfect 2x2 weave.

Splatter / Dust

Impulses: 8
Ctrlmap: (0, 0.4, 1.0)
Length: 0.3
Thickness: 0.3
High impulses with Y (Jitter) and Z (Chaos) creates random circular splats.

Chainmail

Rotation: 45.0
Length: 0.7
Thickness: 0.1
Hardness: 2.0
45-degree rotation aligns the alternating kernels into interlocking metallic rings.
Technical Note: The kernel evaluation uses the matrix equation K * exp(-0.5 * (X-M)^T * Σ^(-1) * (X-M)). The covariance matrix Σ determines the shape and rotation of the Gaussian. For anti-aliasing, the pixel footprint Σp is added to the kernel covariance, effectively widening the Gaussian as the object moves further away from the camera.
↑ Back to Top

Leave a Reply