FastNoiseLite

继承: Noise < Resource < RefCounted < Object

Generates noise using the FastNoiseLite library.

描述

This class generates noise using the FastNoiseLite library, which is a collection of several noise algorithms including Cellular, Perlin, Value, and more.

Most generated noise values are in the range of [-1, 1], but not always. Some of the cellular noise algorithms return results above 1.

属性


枚举

enum NoiseType:

NoiseType TYPE_VALUE = 5

A lattice of points are assigned random values then interpolated based on neighboring values.

NoiseType TYPE_VALUE_CUBIC = 4

Similar to Value noise, but slower. Has more variance in peaks and valleys.

Cubic noise can be used to avoid certain artifacts when using value noise to create a bumpmap. In general, you should always use this mode if the value noise is being used for a heightmap or bumpmap.

NoiseType TYPE_PERLIN = 3

A lattice of random gradients. Their dot products are interpolated to obtain values in between the lattices.

NoiseType TYPE_CELLULAR = 2

Cellular includes both Worley noise and Voronoi diagrams which creates various regions of the same value.

NoiseType TYPE_SIMPLEX = 0

As opposed to TYPE_PERLIN, gradients exist in a simplex lattice rather than a grid lattice, avoiding directional artifacts. Internally uses FastNoiseLite's OpenSimplex2 noise type.

NoiseType TYPE_SIMPLEX_SMOOTH = 1

Modified, higher quality version of TYPE_SIMPLEX, but slower. Internally uses FastNoiseLite's OpenSimplex2S noise type.


enum FractalType:

FractalType FRACTAL_NONE = 0

No fractal noise.

FractalType FRACTAL_FBM = 1

Method using Fractional Brownian Motion to combine octaves into a fractal.

FractalType FRACTAL_RIDGED = 2

Method of combining octaves into a fractal resulting in a "ridged" look.

FractalType FRACTAL_PING_PONG = 3

Method of combining octaves into a fractal with a ping pong effect.


enum CellularDistanceFunction:

CellularDistanceFunction DISTANCE_EUCLIDEAN = 0

Euclidean distance to the nearest point.

CellularDistanceFunction DISTANCE_EUCLIDEAN_SQUARED = 1

Squared Euclidean distance to the nearest point.

CellularDistanceFunction DISTANCE_MANHATTAN = 2

Manhattan distance (taxicab metric) to the nearest point.

CellularDistanceFunction DISTANCE_HYBRID = 3

Blend of DISTANCE_EUCLIDEAN and DISTANCE_MANHATTAN to give curved cell boundaries


enum CellularReturnType:

CellularReturnType RETURN_CELL_VALUE = 0

The cellular distance function will return the same value for all points within a cell.

CellularReturnType RETURN_DISTANCE = 1

The cellular distance function will return a value determined by the distance to the nearest point.

CellularReturnType RETURN_DISTANCE2 = 2

The cellular distance function returns the distance to the second-nearest point.

CellularReturnType RETURN_DISTANCE2_ADD = 3

The distance to the nearest point is added to the distance to the second-nearest point.

CellularReturnType RETURN_DISTANCE2_SUB = 4

The distance to the nearest point is subtracted from the distance to the second-nearest point.

CellularReturnType RETURN_DISTANCE2_MUL = 5

The distance to the nearest point is multiplied with the distance to the second-nearest point.

CellularReturnType RETURN_DISTANCE2_DIV = 6

The distance to the nearest point is divided by the distance to the second-nearest point.


enum DomainWarpType:

DomainWarpType DOMAIN_WARP_SIMPLEX = 0

The domain is warped using the simplex noise algorithm.

DomainWarpType DOMAIN_WARP_SIMPLEX_REDUCED = 1

The domain is warped using a simplified version of the simplex noise algorithm.

DomainWarpType DOMAIN_WARP_BASIC_GRID = 2

The domain is warped using a simple noise grid (not as smooth as the other methods, but more performant).


enum DomainWarpFractalType:

DomainWarpFractalType DOMAIN_WARP_FRACTAL_NONE = 0

No fractal noise for warping the space.

DomainWarpFractalType DOMAIN_WARP_FRACTAL_PROGRESSIVE = 1

Warping the space progressively, octave for octave, resulting in a more "liquified" distortion.

DomainWarpFractalType DOMAIN_WARP_FRACTAL_INDEPENDENT = 2

Warping the space independently for each octave, resulting in a more chaotic distortion.


属性说明

CellularDistanceFunction cellular_distance_function = 0

Determines how the distance to the nearest/second-nearest point is computed. See CellularDistanceFunction for options.


float cellular_jitter = 1.0

  • void set_cellular_jitter ( value: float )
  • float get_cellular_jitter ( )

Maximum distance a point can move off of its grid position. Set to 0 for an even grid.


CellularReturnType cellular_return_type = 1

Return type from cellular noise calculations. See CellularReturnType.


float domain_warp_amplitude = 30.0

  • void set_domain_warp_amplitude ( value: float )
  • float get_domain_warp_amplitude ( )

Sets the maximum warp distance from the origin.


bool domain_warp_enabled = false

  • void set_domain_warp_enabled ( value: bool )
  • bool is_domain_warp_enabled ( )

If enabled, another FastNoiseLite instance is used to warp the space, resulting in a distortion of the noise.


float domain_warp_fractal_gain = 0.5

  • void set_domain_warp_fractal_gain ( value: float )
  • float get_domain_warp_fractal_gain ( )

Determines the strength of each subsequent layer of the noise which is used to warp the space.

A low value places more emphasis on the lower frequency base layers, while a high value puts more emphasis on the higher frequency layers.


float domain_warp_fractal_lacunarity = 6.0

  • void set_domain_warp_fractal_lacunarity ( value: float )
  • float get_domain_warp_fractal_lacunarity ( )

Octave lacunarity of the fractal noise which warps the space. Increasing this value results in higher octaves producing noise with finer details and a rougher appearance.


int domain_warp_fractal_octaves = 5

  • void set_domain_warp_fractal_octaves ( value: int )
  • int get_domain_warp_fractal_octaves ( )

The number of noise layers that are sampled to get the final value for the fractal noise which warps the space.


DomainWarpFractalType domain_warp_fractal_type = 1

The method for combining octaves into a fractal which is used to warp the space. See DomainWarpFractalType.


float domain_warp_frequency = 0.05

  • void set_domain_warp_frequency ( value: float )
  • float get_domain_warp_frequency ( )

Frequency of the noise which warps the space. Low frequency results in smooth noise while high frequency results in rougher, more granular noise.


DomainWarpType domain_warp_type = 0

Sets the warp algorithm. See DomainWarpType.


float fractal_gain = 0.5

  • void set_fractal_gain ( value: float )
  • float get_fractal_gain ( )

Determines the strength of each subsequent layer of noise in fractal noise.

A low value places more emphasis on the lower frequency base layers, while a high value puts more emphasis on the higher frequency layers.


float fractal_lacunarity = 2.0

  • void set_fractal_lacunarity ( value: float )
  • float get_fractal_lacunarity ( )

Frequency multiplier between subsequent octaves. Increasing this value results in higher octaves producing noise with finer details and a rougher appearance.


int fractal_octaves = 5

  • void set_fractal_octaves ( value: int )
  • int get_fractal_octaves ( )

The number of noise layers that are sampled to get the final value for fractal noise types.


float fractal_ping_pong_strength = 2.0

  • void set_fractal_ping_pong_strength ( value: float )
  • float get_fractal_ping_pong_strength ( )

Sets the strength of the fractal ping pong type.


FractalType fractal_type = 1

The method for combining octaves into a fractal. See FractalType.


float fractal_weighted_strength = 0.0

  • void set_fractal_weighted_strength ( value: float )
  • float get_fractal_weighted_strength ( )

Higher weighting means higher octaves have less impact if lower octaves have a large impact.


float frequency = 0.01

  • void set_frequency ( value: float )
  • float get_frequency ( )

The frequency for all noise types. Low frequency results in smooth noise while high frequency results in rougher, more granular noise.


NoiseType noise_type = 1

The noise algorithm used. See NoiseType.


Vector3 offset = Vector3(0, 0, 0)

Translate the noise input coordinates by the given Vector3.


int seed = 0

  • void set_seed ( value: int )
  • int get_seed ( )

The random number seed for all noise types.

1

本方法通常需要用户覆盖才能生效。

2

本方法无副作用,不会修改该实例的任何成员变量。

3

本方法除了能接受在此处描述的参数外,还能够继续接受任意数量的参数。

4

本方法用于构造某个类型。

5

调用本方法无需实例,可直接使用类名进行调用。

6

本方法描述的是使用本类型作为左操作数的有效运算符。

7

这个值是由下列位标志构成位掩码的整数。

8

无返回值。