-
-
Notifications
You must be signed in to change notification settings - Fork 14
struct CellNoise2D
A type of two-dimensional cellular noise (sometimes called Worley noise, or Voronoi noise), suitable for texturing two-dimensional planes.
Unlike many other cell noise implementations, Noise-Swift’s implementation samples all relevant generating-points, preventing artifacts or discontinuities from ever appearing in the noise. Accordingly, Noise-Swift’s implementation is heavily optimized to prevent the additional edge cases from impacting the performance of the cell noise.
init
(amplitude:Double, frequency:Double, seed:Int = 0)
Creates an instance with the given
amplitude
,frequency
, and randomseed
values. Creating an instance generates a new pseudo-random permutation table for that instance, and a new instance does not need to be regenerated to sample the same procedural noise field.
The given amplitude is adjusted internally to produce output exactly within the range of
0 ... amplitude
. However, in practice the cell noise rarely reaches the maximum threshold, as it is often useful to inflate the amplitude to get the desired appearance.
func
evaluate
(_ x:Double, _ y:Double) -> Double
Evaluates the cell noise field at the given coordinates.
func
evaluate
(_ x:Double, _ y:Double, _:Double) -> Double
Evaluates the cell noise field at the given coordinates. The third coordinate is ignored.
func
evaluate
(_ x:Double, _ y:Double, _:Double, _:Double) -> Double
Evaluates the cell noise field at the given coordinates. The third and fourth coordinates are ignored.
func
sample_area
(width:Int, height:Int) -> [(Double, Double, Double)]
Evaluates the noise field over the given area, starting from the origin, and extending over the first quadrant, taking unit steps in both directions. Although the
x
andy
coordinates are returned, the output vector is guaranteed to be in row-major order.
func
sample_area_saturated_to_u8
(width:Int, height:Int, offset:Double = 0.5) -> [UInt8]
Evaluates the noise field over the given area, starting from the origin, and extending over the first quadrant, storing the values in a row-major array of samples. The samples are clamped, but not scaled, to the range
0 ... 255
.