Skip to content

struct CellNoise2D

Kelvin edited this page Jun 11, 2017 · 7 revisions
Structure

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.


Symbols

Initializers

init(amplitude:Double, frequency:Double, seed:Int = 0)

Creates an instance with the given amplitude, frequency, and random seed 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.

Instance methods

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 and y 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.

API reference

1.0.0

Clone this wiki locally