OpenSimplexNoise

Inherits: Resource < Reference < Object

基于Open Simplex的噪声发生器。

描述

这个资源允许你配置和采样一个分形噪声空间。下面是一个简短的使用例子,它配置了一个OpenSimplexNoise,并在不同的位置和维度上得到采样。

  1. var noise = OpenSimplexNoise.new()
  2. # Configure
  3. noise.seed = randi()
  4. noise.octaves = 4
  5. noise.period = 20.0
  6. noise.persistence = 0.8
  7. # Sample
  8. print("Values:")
  9. print(noise.get_noise_2d(1.0, 1.0))
  10. print(noise.get_noise_3d(0.5, 3.0, 15.0))
  11. print(noise.get_noise_4d(0.5, 1.9, 4.7, 0.0))

属性

float

lacunarity

2.0

int

octaves

3

float

period

64.0

float

persistence

0.5

int

seed

0

方法

Image

get_image ( int width, int height, Vector2 noise_offset=Vector2( 0, 0 ) ) const

float

get_noise_1d ( float x ) const

float

get_noise_2d ( float x, float y ) const

float

get_noise_2dv ( Vector2 pos ) const

float

get_noise_3d ( float x, float y, float z ) const

float

get_noise_3dv ( Vector3 pos ) const

float

get_noise_4d ( float x, float y, float z, float w ) const

Image

get_seamless_image ( int size ) const

属性说明

Default

2.0

Setter

set_lacunarity(value)

Getter

get_lacunarity()

octaves 之间的周期差异。


Default

3

Setter

set_octaves(value)

Getter

get_octaves()

采样得到分形噪声的OpenSimplex噪声层数。更高的值导致更详细的噪声,但需要更多的时间来生成。

备注:最大值为9。


Default

64.0

Setter

set_period(value)

Getter

get_period()

基本八度的周期。较低的周期会导致更高频率的噪声(在相同距离上的值变化更多)。


Default

0.5

Setter

set_persistence(value)

Getter

get_persistence()

不同八度音阶的贡献因子。persistence值为1表示所有的八度有相同的贡献,值为0.5表示每个八度的贡献是前一个的一半。


Default

0

Setter

set_seed(value)

Getter

get_seed()

用于生成随机值的种子,不同的种子将生成不同的噪声图。

方法说明

根据当前的噪声参数,生成一个Image.FORMAT_L8格式的噪声图像,需要指定其widthheight。如果指定了noise_offset,那么偏移值将作为生成的噪声左上角的坐标。


返回给定x坐标处的一维噪声值[-1,1]

注意:这个方法实际上返回的是固定Y坐标值为0.0的二维噪声值[-1,1]


返回给定位置的2D噪声值[-1,1]


返回给定位置的2D噪声值[-1,1]


返回在给定位置的3D噪声值[-1,1]


返回在给定位置的3D噪声值[-1,1]


返回指定位置的4D噪声值[-1,1]


  • Image get_seamless_image ( int size ) const

根据当前的噪声参数,以 Image.FORMAT_L8 格式生成可平铺噪声图像。生成的无缝图像始终是方形的(size× size)。

注意: 与非无缝噪声相比,无缝噪声的对比度较低。。这是由于噪声使用更高维度来生成无缝噪声的方式。