Namespace Scylla.Core.Util.Noise
Classes
NoiseCurlSampler
Computes curl noise from a scalar noise potential, producing divergence-free vector fields suitable for particle flow, smoke simulation, and fluid effects.
NoiseDomainWarper
Applies domain warping to noise functions, distorting input coordinates using a secondary noise field to create organic, fluid-like patterns.
NoiseGenerator
Generates coherent noise values using configurable algorithms and fractal layering. Instance-based: holds a seed for deterministic output.
PixelNoise
Generates random per-pixel noise similar to Photoshop's "Add Noise" filter. Supports Uniform and Gaussian distributions, monochromatic and color modes. Provides both RNG-based (sequential) and hash-based (coordinate-addressable) evaluation paths.
Structs
CellularSettings
Immutable configuration struct for cellular (Worley) noise generation. Bundles the return type, distance metric, feature-point jitter, base frequency, and optional fractal layering parameters into a single value that can be passed to EvaluateCellular2D(float, float, CellularSettings), EvaluateCellular3D(float, float, float, CellularSettings), FractalCellular2D(float, float, CellularSettings), and FractalCellular3D(float, float, float, CellularSettings).
NoiseSettings
Immutable configuration struct for coherent gradient noise generation. Bundles the noise algorithm, fractal layering method, base sampling frequency, and per-octave scaling parameters into a single value that can be passed to Fractal2D(float, float, NoiseSettings), Fractal3D(float, float, float, NoiseSettings), Fill2D(float[], int, int, NoiseSettings, float, float), Fill3D(float[], int, int, int, NoiseSettings, float, float, float), and the NoiseDomainWarper warp methods.
PixelNoiseSettings
Immutable configuration struct for pixel (per-pixel random) noise generation. Bundles noise intensity, the probability distribution used to draw random offsets, and whether noise is applied identically across all colour channels or independently per channel. The parameter model intentionally mirrors Photoshop's "Add Noise" filter for familiarity.
WarpSettings
Immutable configuration struct for domain warping, defining the displacement field that distorts the input coordinates of a noise function before evaluation. Domain warping produces organic, fluid-like patterns that cannot be achieved with fractal layering alone - effects such as lava flow, river erosion, and swirling clouds.
Enums
CellularDistanceType
Specifies the distance metric used when computing distances to feature points in cellular (Worley) noise. The choice of metric fundamentally changes the visual character of the resulting Voronoi diagram.
CellularReturnType
Specifies which distance value cellular (Worley) noise returns after computing distances to the nearest and second-nearest Voronoi feature points.
FractalType
Specifies the fractal layering method used to combine multiple octaves of noise into a single richer output value. Each method sums octaves at progressively higher frequencies and lower amplitudes, but transforms each octave's contribution differently to produce a distinct visual character.
NoiseAlgorithm
Specifies the underlying coherent noise generation algorithm used by NoiseGenerator and WarpSettings. Each algorithm has distinct visual characteristics, performance trade-offs, and mathematical properties.
PixelNoiseDistribution
Specifies the probability distribution used to draw random noise offsets during pixel noise generation. The distribution determines how likely each noise magnitude is, and therefore the overall visual texture of the noise applied to an image.