Up to date

This page is up to date for Godot 4.2. If you still find outdated information, please open an issue.

FastNoiseLite

继承: Noise < Resource < RefCounted < Object

使用 FastNoiseLite 库生成噪声。

描述

该类使用 FastNoiseLite 库生成噪声,该库是多种噪声算法的集合,包括 Cellular、Perlin、Value 等。

大多数生成的噪声值都在 [-1, 1] 范围内,但并非总是如此。一些蜂窝噪声算法返回高于 1 的结果。

属性

CellularDistanceFunction

cellular_distance_function

0

float

cellular_jitter

1.0

CellularReturnType

cellular_return_type

1

float

domain_warp_amplitude

30.0

bool

domain_warp_enabled

false

float

domain_warp_fractal_gain

0.5

float

domain_warp_fractal_lacunarity

6.0

int

domain_warp_fractal_octaves

5

DomainWarpFractalType

domain_warp_fractal_type

1

float

domain_warp_frequency

0.05

DomainWarpType

domain_warp_type

0

float

fractal_gain

0.5

float

fractal_lacunarity

2.0

int

fractal_octaves

5

float

fractal_ping_pong_strength

2.0

FractalType

fractal_type

1

float

fractal_weighted_strength

0.0

float

frequency

0.01

NoiseType

noise_type

1

Vector3

offset

Vector3(0, 0, 0)

int

seed

0


枚举

enum NoiseType:

NoiseType TYPE_VALUE = 5

点阵被分配随机值,然后根据相邻值进行插值。

NoiseType TYPE_VALUE_CUBIC = 4

类似于 Value 噪声,但速度较慢。波峰和波谷的变化更大。

在使用值噪声创建凹凸贴图时,可以使用三次噪声来避免某些伪影。一般来说,如果值噪声用于高度图或凹凸贴图,则应始终使用此模式。

NoiseType TYPE_PERLIN = 3

随机渐变的一种格子。对它们的点积进行插值,以获得格子之间的值。

NoiseType TYPE_CELLULAR = 2

蜂窝包括 Worley 噪声图和 Voronoi 图,它们创建了相同值的不同区域。

NoiseType TYPE_SIMPLEX = 0

TYPE_PERLIN 不同,渐变存在于单纯形点阵中,而不是网格点阵中,从而避免了定向伪影。

NoiseType TYPE_SIMPLEX_SMOOTH = 1

TYPE_SIMPLEX 修改后得到的更高质量版本,但速度较慢。


enum FractalType:

FractalType FRACTAL_NONE = 0

无分形噪声。

FractalType FRACTAL_FBM = 1

使用分形布朗运动将八度音阶组合成分形的方法。

FractalType FRACTAL_RIDGED = 2

将八度音阶组合成分形的方法,从而产生一种“脊状”外观。

FractalType FRACTAL_PING_PONG = 3

将八度音阶组合成具有乒乓效果的分形的方法。


enum CellularDistanceFunction:

CellularDistanceFunction DISTANCE_EUCLIDEAN = 0

到最近点的欧几里得距离。

CellularDistanceFunction DISTANCE_EUCLIDEAN_SQUARED = 1

到最近点的欧几里得距离的平方。

CellularDistanceFunction DISTANCE_MANHATTAN = 2

到最近点的曼哈顿距离(出租车度量法)。

CellularDistanceFunction DISTANCE_HYBRID = 3

DISTANCE_EUCLIDEANDISTANCE_MANHATTAN 的混合,以给出弯曲的单元格边界


enum CellularReturnType:

CellularReturnType RETURN_CELL_VALUE = 0

蜂窝单元格距离函数,将为单元格内的所有点返回相同的值。

CellularReturnType RETURN_DISTANCE = 1

蜂窝单元格距离函数,将返回一个由到最近点的距离确定的值。

CellularReturnType RETURN_DISTANCE2 = 2

蜂窝单元格距离函数,将返回到第二最近点的距离。

CellularReturnType RETURN_DISTANCE2_ADD = 3

将最近点的距离与次近点的距离相加。

CellularReturnType RETURN_DISTANCE2_SUB = 4

将最近点的距离与次近点的距离相减。

CellularReturnType RETURN_DISTANCE2_MUL = 5

将最近点的距离与次近点的距离相乘。

CellularReturnType RETURN_DISTANCE2_DIV = 6

将最近点的距离与次近点的距离相除。


enum DomainWarpType:

DomainWarpType DOMAIN_WARP_SIMPLEX = 0

使用单纯形噪声算法,对域进行扭曲。

DomainWarpType DOMAIN_WARP_SIMPLEX_REDUCED = 1

使用简化版的单纯形噪声算法,对域进行扭曲。

DomainWarpType DOMAIN_WARP_BASIC_GRID = 2

使用简单的噪声栅格(不像其他方法那样平滑,但性能更高),对域进行扭曲。


enum DomainWarpFractalType:

DomainWarpFractalType DOMAIN_WARP_FRACTAL_NONE = 0

没有用于扭曲空间的分形噪声。

DomainWarpFractalType DOMAIN_WARP_FRACTAL_PROGRESSIVE = 1

逐渐扭曲空间,一个八度一个八度,导致更“液化”的失真。

DomainWarpFractalType DOMAIN_WARP_FRACTAL_INDEPENDENT = 2

为每个八度音阶独立地扭曲空间,从而导致更混乱的失真。


属性说明

CellularDistanceFunction cellular_distance_function = 0

确定如何计算到最近/第二最近点的距离。有关选项,请参阅 CellularDistanceFunction


float cellular_jitter = 1.0

  • void set_cellular_jitter ( float value )

  • float get_cellular_jitter ( )

一个点可以离开其栅格位置的最大距离。对于偶数栅格,设置为 0


CellularReturnType cellular_return_type = 1

蜂窝噪声计算的返回类型。请参阅 CellularReturnType


float domain_warp_amplitude = 30.0

  • void set_domain_warp_amplitude ( float value )

  • float get_domain_warp_amplitude ( )

设置距原点的最大扭曲距离。


bool domain_warp_enabled = false

  • void set_domain_warp_enabled ( bool value )

  • bool is_domain_warp_enabled ( )

如果启用,则另一个 FastNoiseLite 实例将被用于扭曲空间,从而导致噪声失真。


float domain_warp_fractal_gain = 0.5

  • void set_domain_warp_fractal_gain ( float value )

  • float get_domain_warp_fractal_gain ( )

确定用于扭曲空间的噪声的每个后续层的强度。

较低的值更强调较低频率的基础层,而较高的值则更强调较高频率的层。


float domain_warp_fractal_lacunarity = 6.0

  • void set_domain_warp_fractal_lacunarity ( float value )

  • float get_domain_warp_fractal_lacunarity ( )

扭曲空间的分形噪声的八度音阶空隙。增加此值,会导致更高的八度音阶,从而产生细节更精细、外观更粗糙的噪声。


int domain_warp_fractal_octaves = 5

  • void set_domain_warp_fractal_octaves ( int value )

  • int get_domain_warp_fractal_octaves ( )

为获得扭曲空间的分形噪声的最终值而采样的噪声层数。


DomainWarpFractalType domain_warp_fractal_type = 1

将八度音阶组合成用于扭曲空间的分形的方法。请参阅 DomainWarpFractalType


float domain_warp_frequency = 0.05

  • void set_domain_warp_frequency ( float value )

  • float get_domain_warp_frequency ( )

扭曲空间的噪音频率。低频产生平滑的噪声,而高频产生更粗糙、颗粒状更明显的噪声。


DomainWarpType domain_warp_type = 0

设置扭曲算法。请参阅 DomainWarpType


float fractal_gain = 0.5

  • void set_fractal_gain ( float value )

  • float get_fractal_gain ( )

确定分形噪声中噪声的每个后续层的强度。

较低的值更强调较低频率的基础层,而较高的值则更强调较高频率的层。


float fractal_lacunarity = 2.0

  • void set_fractal_lacunarity ( float value )

  • float get_fractal_lacunarity ( )

后续八度音阶之间的倍频器。增加该值,会产生更高的八度音阶,从而产生细节更精细、外观更粗糙的噪声。


int fractal_octaves = 5

  • void set_fractal_octaves ( int value )

  • int get_fractal_octaves ( )

为获得分形噪声类型的最终值而采样的噪声层数。


float fractal_ping_pong_strength = 2.0

  • void set_fractal_ping_pong_strength ( float value )

  • float get_fractal_ping_pong_strength ( )

设置分形乒乓类型的强度。


FractalType fractal_type = 1

将八度音阶组合成分形的方法。请参阅 FractalType


float fractal_weighted_strength = 0.0

  • void set_fractal_weighted_strength ( float value )

  • float get_fractal_weighted_strength ( )

较高的权重意味着如果较低的八度具有较大的影响,则较高的八度具有较小的影响。


float frequency = 0.01

  • void set_frequency ( float value )

  • float get_frequency ( )

所有噪声类型的频率。低频产生平滑的噪声,而高频产生更粗糙、颗粒状更明显的噪声。


NoiseType noise_type = 1

所使用的噪声算法。见 NoiseType


Vector3 offset = Vector3(0, 0, 0)

使用给定的 Vector3 对噪声输入坐标进行平移。


int seed = 0

  • void set_seed ( int value )

  • int get_seed ( )

所有噪声类型的随机数种子。