OpenSimplexNoise
Inherits: Resource < Reference < Object
基于Open Simplex的噪声发生器。
描述
这个资源允许你配置和采样一个分形噪声空间。下面是一个简短的使用例子,它配置了一个OpenSimplexNoise,并在不同的位置和维度上得到采样。
var noise = OpenSimplexNoise.new()
# Configure
noise.seed = randi()
noise.octaves = 4
noise.period = 20.0
noise.persistence = 0.8
# Sample
print("Values:")
print(noise.get_noise_2d(1.0, 1.0))
print(noise.get_noise_3d(0.5, 3.0, 15.0))
print(noise.get_noise_4d(0.5, 1.9, 4.7, 0.0))
属性
| ||
| ||
| ||
| ||
|
方法
get_image ( int width, int height, Vector2 noise_offset=Vector2( 0, 0 ) ) const | |
get_noise_1d ( float x ) const | |
get_noise_2d ( float x, float y ) const | |
get_noise_2dv ( Vector2 pos ) const | |
get_noise_3d ( float x, float y, float z ) const | |
get_noise_3dv ( Vector3 pos ) const | |
get_noise_4d ( float x, float y, float z, float w ) const | |
get_seamless_image ( int size ) const |
属性说明
- float lacunarity
Default |
|
Setter | set_lacunarity(value) |
Getter | get_lacunarity() |
在 octaves 之间的周期差异。
- int octaves
Default |
|
Setter | set_octaves(value) |
Getter | get_octaves() |
采样得到分形噪声的OpenSimplex噪声层数。更高的值导致更详细的噪声,但需要更多的时间来生成。
备注:最大值为9。
- float period
Default |
|
Setter | set_period(value) |
Getter | get_period() |
基本八度的周期。较低的周期会导致更高频率的噪声(在相同距离上的值变化更多)。
- float persistence
Default |
|
Setter | set_persistence(value) |
Getter | get_persistence() |
不同八度音阶的贡献因子。persistence
值为1表示所有的八度有相同的贡献,值为0.5表示每个八度的贡献是前一个的一半。
- int seed
Default |
|
Setter | set_seed(value) |
Getter | get_seed() |
用于生成随机值的种子,不同的种子将生成不同的噪声图。
方法说明
根据当前的噪声参数,生成一个Image.FORMAT_L8格式的噪声图像,需要指定其width
和 height
。如果指定了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.FORMAT_L8 格式生成可平铺噪声图像。生成的无缝图像始终是方形的(size
× size
)。
注意: 与非无缝噪声相比,无缝噪声的对比度较低。。这是由于噪声使用更高维度来生成无缝噪声的方式。