噪声采样器(NoiseSampler)
另见
采样器在配置中定义,可经由给定位置与种子生成一个指定的值。
“采样”的定义为通过采样器的简单计算方法得出的值。采样的集合即称作“噪声”。
噪声采样器生成的噪声决定了每个方块或列的部分行为。
类型
不同类型的 NoiseSampler
的行为略有不同,也可能因此要求额外的参数。
类型通过 type 参数设置。如果两个附属使用了相同的名称,你可以添加 拓展名称:
前缀指定使用的类型。
可用的 NoiseSampler
类型如下:
CHANNEL
* 该类型需 library-image
拓展才可使用
从颜色采样中输出通道值。
color-sampler 颜色采样器 - 提取通道值的颜色采样器。normalize 布尔值 - 是否将通道约束在 [-1, 1] 的范围中。默认值:true
默认值:false
如果你希望像素透明度可以降低输出值,那么这个参数应当设置为 true。
DISTANCE_TRANSFORM
* 该类型需 library-image
拓展才可使用
返回图形的距离变形结果。
image 图像channel 通道默认值:GRAYSCALE
(灰度)
默认值:false
默认值:Channel
可填入:
Channel
Threshold
ThresholdEdge
ThresholdEdgeSigned
默认值:false
默认值:None
可填入:
None
Linear
SmoothPreserveZero
默认值:127
DISTANCE
* 该类型需 config-noise-function
拓展才可使用
默认值:Euclidean
(欧氏距离,即两点间直线距离)
可填入:
Euclidean
- 按勾股定理计算的距离。见维基百科对应条目了解详情。EuclideanSq
- 与上述大致相似,区别是其总是返回平方数。(包括实际距离不需要的情况,且省略了滞后的开根运算,因此比上一个方法速度略快。)Manhattan
- 曼哈顿距离,见维基百科对应条目了解详情。
默认值:false
-1
表示距离为 0
,1
则对应 radius
设置的值。任意大于 radius
的值都会返回 1
。
默认值:0
默认值:0
默认值:0
只在采样器以空间为基础时有效。
radius 浮点数决定输出 1
到小于 1
数值的点位与原点的距离。
默认值:100
只在 normalize
设置为 true
时有效。
WHITE_NOISE
* 该类型需 config-noise-function
拓展才可使用
产生白噪声。

默认值:0.02
默认值:0
POSITIVE_WHITE_NOISE
* 该类型需 config-noise-function
拓展才可使用
与白噪音相似,但只产生正值,更加便捷。
frequency 浮点数- 决定噪声的频率。默认值:0.02
默认值:0
GAUSSIAN
* 该类型需 config-noise-function
拓展才可使用
与白噪声相似,但遵循正态分布。
frequency 浮点数- 决定噪声的频率。默认值:0.02
默认值:0
PERLIN
* 该类型需 config-noise-function
拓展才可使用
产生柏林噪声。
frequency 浮点数- 决定噪声的频率。默认值:0.02
默认值:0
提示
推荐使用其他简单噪声,因为柏林噪声可能会产生不必要的定向性伪影。
SIMPLEX
* 该类型需 config-noise-function
拓展才可使用
产生简单噪声。
frequency 浮点数- 决定噪声的频率。默认值:0.02
默认值:0
OPEN_SIMPLEX_2
* 该类型需 config-noise-function
拓展才可使用
(使用 OpenSimplex2 的算法)产生简单噪声。
默认值:0.02
默认值:0
OPEN_SIMPLEX_2
* 该类型需 config-noise-function
拓展才可使用
(使用 OpenSimplex2 的算法)产生更平滑的简单噪声。
frequency 浮点数- 决定噪声的频率。默认值:0.02
默认值:0
VALUE
* 该类型需 config-noise-function
拓展才可使用
以线性插值方法生成值噪声(平面使用双线性插值,立体使用三线性插值)。
frequency 浮点数- 决定噪声的频率。默认值:0.02
默认值:0
GABOR
* 该类型需 config-noise-function
拓展才可使用
警告
GABOR 采样器相较其他噪声采样器的产生速度明显偏慢。
默认值:1.0
默认值:0.02
默认值:0.0625
默认值:64.0
默认值:true
默认值:0
CELLULAR
* 该类型需 config-noise-function
拓展才可使用
产生细胞状噪声/沃雷噪声。

图表
- 黑点 - 细胞中心。
- 红线 - 距细胞中心的随机方向随机长度,称作
jitter
(跳动)。 - 蓝点 - 细胞中心,由细胞中心的跳动决定。
- 绿点 - 被采样的坐标。
- 紫线 - 距最近细胞中心的距离。
- 橙线 - 距第二近细胞中心的距离。
- 黄线 - 距第三近细胞中心的距离。
默认值:EuclideanSq
可用距离类型
Euclidean
EuclideanSq
Manhattan
Hybrid
默认值:0.02
默认值:1
若设置为 0
,则表示细胞边缘与其中心重合,得到的图像表现为标准网格状花纹。推荐填入 -1
到 1
之间的值,超出这些范围的值可能带来意料外的效果。
distance
设置为 NoiseLookup
时使用的采样器。默认值:OPEN_SIMPLEX_2
默认值:Distance
返回类型
定义:
s
- 采样坐标。c
- 最邻近细胞边缘的坐标。d1
- 最邻近细胞边缘的距离。d2
- 第二邻近细胞边缘的距离。d3
- 第三邻近细胞边缘的距离。
类型:
NoiseLookup
- 将c
传入采样器,返回输出。CellValue
- 返回基于c
的随机值(与带有白噪声 的NoiseLookup
等价)。LocalNoiseLookup
- 将s - c
传入采样器,返回输出。Angle
- 返回s
至c
的角度。Distance
- 返回d1
。Distance2
- 返回d2
。Distance2Add
- 返回(d1 + d2) / 2
。Distance2Sub
- 返回d2 - d1
。Distance2Mul
- 返回(d1 * d2) / 2
。Distance2Div
- 返回d1 / d2
。Distance3
- 返回d3
。Distance3Add
- 返回(d1 + d3) / 2
。Distance3Sub
- 返回d3 - d1
。Distance3Mul
- 返回d3 * d1
。Distance3Div
- 返回d1 / d3
。
默认值:0
IMAGE
* 该类型需 config-noise-function
拓展才可使用
输出平铺图像的通道,将通道范围 [0-255] 重排为 [-1, 1] 的范围。
channel 字符串 - 输出图像的通道。有效通道:
GRAYSCALE
ALPHA
RED
GREEN
BLUE
通道示例
原图 | 灰度(Grayscale) | Alpha 通道* |
---|---|---|
![]() | ![]() | |
红通道 | 绿通道 | 蓝通道 |
![]() | ![]() | ![]() |
* Alpha 通道因原图不存在透明部分而表现为全白。
frequency 浮点数 图片的频率。决定图片压缩的方式。频率为 1.0
表示 1 像素 = 1 方块,2.0
则表示 2 像素 = 1 方块。
::: important
不推荐将频率设置为低于 1.0
的值,因为像素在拉伸时不会边长;根据使用方法,返回的图像可能会更像素化。
grayscale_circles.png | 频率 1.0 | 频率 2.0 |
---|---|---|
频率为 0.25
时,0.25 像素 = 1 格方块
或 1 像素 = 4 格方块
(如上网格例子所述)。
:::
image 字符串 - 相对于配置包文件夹的图片路径。(Windows 用户请以/
代替 \
)。示例路径:path/to/the/image.png
示例图像采样器
grayscale_circles.png | mountain_heightmap.png |
---|---|
![]() |
以山地高度图为基础生成地形,以左图的圆形为基础决定群系温度,则得到的世界鸟瞰图如下:

地形采样器(地形采样器类型为线性高度图)
type: LINEAR_HEIGHTMAP
base: 128
scale: 64
sampler:
type: IMAGE
image: mountain_heightmap.png
channel: GRAYSCALE
frequency: 1
温度采样器
type: IMAGE
image: grayscale_circles.png
channel: GRAYSCALE
frequency: 1
CONSTANT
* 该类型需 config-noise-function
拓展才可使用
输出常量值,与输入无关。通常用于不使用采样器功能的配置。
value 浮点数 - 输出的值。默认值:0.0
DOMAIN_WARP
* 该类型需 config-noise-function
拓展才可使用
用采样器扭曲另一个采样器。见域扭曲了解更多。
sampler 噪声采样器 - 被扭曲的采样器。warp 噪声采样器 - 参与扭曲的采样器。amplitude 浮点数 - 应用扭曲的强度。默认值:1.0
KERNEL
* 该类型需 config-noise-function
拓展才可使用
默认值:1.0
默认值:1.0
LINEAR_HEIGHTMAP
* 该类型需 config-noise-function
拓展才可使用
将平面采样器用作高度图,将其转化为立体的有符号距离函数,用于地形采样器。
base 浮点数 - 地形的基础 Y 值。sampler 噪声采样器 - 用作高度图的采样器。默认值:CONSTANT
默认值:1.0
FBM
* 该类型需 config-noise-function
拓展才可使用
默认值:0.5
默认值:2.0
默认值:3
默认值:0.0
PING_PONG
* 该类型需 config-noise-function
拓展才可使用
默认值:0.5
默认值:2.0
默认值:3
默认值:2.0
默认值:0.0
RIDGED
* 该类型需 config-noise-function
拓展才可使用
默认值:0.5
默认值:2.0
默认值:3
LINEAR
* 该类型需 config-noise-function
拓展才可使用
将 [最小值, 最大值]
重分布为 [-1, 1]
,通常用于权重池。
CUBIC_SPLINE
* 该类型需 config-noise-function
拓展才可使用
根据点与渐变集合,通过立体样条点重映射某些值。
points [列表](config-packs.config-documentation.config-objects.list.md<立体样条点位>sampler 噪声采样器EXPRESSION_NORMALIZER
* 该类型需 config-noise-function
拓展才可使用
由输入采样器提供采样,并返回计算表达式的结果
expression 表达式 - 使用in
(input
的缩写)中变量的表达式。sampler 噪声采样器functions 映射表<字符串,数学函数> - 额外的命名数学函数,可用在 expression
中。默认值:{}
expression
中。默认值:{}
这个参数可能不会很有用,因为 expression
不支持引用 x
、y
和 z
变量。这些行为有可能会在未来改变。
expression
中。默认值:{}
这实际上是一个简化版的表达式采样器,你可以翻到对应部分了解更多。
例如,如下的采样器:
type: EXPRESSION
expression: (noise(x, z) + 3) / 2
samplers:
noise:
dimensions: 2
type: WHITE_NOISE
可以被简化为:
type: EXPRESSION_NORMALIZER
expression: (in + 3) / 2
sampler:
type: WHITE_NOISE
CLAMP
* 该类型需 config-noise-function
拓展才可使用
当采样器输出大于 max
的值,则返回 max
的值,当输出小于 min
的值,则返回 min
的值,用于将采样器输出值限制在某个范围里。
NORMAL
* 该类型需 config-noise-function
拓展才可使用
将正态分布的输出重新分配为均匀分布。
mean 浮点数sampler 噪声采样器standard-deviation 浮点数groups 整数默认值:16384
PROBABLITY
* 该类型需 config-noise-function
拓展才可使用
将范围 [-1, 1]
重分布为 [0, 1]
,通常用在需要将输出限定在 0
至 1
范围的情况中,例如为噪声采样器定义百分比阈值。
SCALE
* 该类型需 config-noise-function
拓展才可使用
相当于 sampler() * amplitude
。
POSTERIZATION
* 该类型需 config-noise-function
拓展才可使用
向采样器施加步进函数,steps
参数决定了 [-1, 1]
范围内的步数。
ADD
* 该类型需 config-noise-function
拓展才可使用
相当于 left() + right()
。
SUB
* 该类型需 config-noise-function
拓展才可使用
相当于 left() - right()
。
MUL
* 该类型需 config-noise-function
拓展才可使用
相当于 left() * right()
。
DIV
* 该类型需 config-noise-function
拓展才可使用
相当于 left() / right()
。
MAX
* 该类型需 config-noise-function
拓展才可使用
相当于 max(left(), right())
。
MIN
* 该类型需 config-noise-function
拓展才可使用
相当于 min(left(), right())
。
EXPRESSION
* 该类型需 config-noise-function
拓展才可使用
返回用户定义的二元表达式,作为采样器的输出。表达式采样器额外允许使用用户定义的函数,包括其他采样器,以及采样器内定义的常量。
expression 表达式每个采样计算的表达式。使用 x
、y
(仅立体)和 z
表示采样器坐标输入。
示例表达式
expression: (x * 3) / z
默认值:{}
填入用户定义的数学函数映射表。函数可以以 <名称>(<参数 1>, <参数 2>, ...)
的方式在表达式内调用,<name>
为声明的函数名称,每个输入代表着函数内要求的参数。
示例定义函数
functions:
addThenDivide:
arguments:
- a
- b
- c
expression: (a + b) / c
默认值:{}
每个采样器都可以像这样用在表达式中:<名称>(<x>,<z>)
(平面),或 <名称>(<x>, <y>, <z>)
(立体),<名称>
是先前声明的函数名称,后面的则是传入采样器的对应坐标。
信息
在 EXPRESSION 中定义的采样器必须属于 DimensionApplicableSamplers
,具体请见“维度适用采样器”部分。
示例定义采样器
samplers:
whiteNoise:
dimensions: 2
type: WHITE_NOISE
默认值:{}
设置表达式内使用的变量名称及对应的值。可以向表达式中添加便于修改的命名常量。
示例定义变量
variables:
a: 1
b: 2
示例表达式采样器
简单加法
type: EXPRESSION
expression: 1 + 1
上述表达式返回的结果是 1
加 1
,即总是返回 2
。
使用变量
type: EXPRESSION
variables:
a: 1
b: 2
expression: a - b
上述的采样器返回 a
减去 b
的值,即 1
减 2
,总是返回 -1
。
使用函数
type: EXPRESSION
functions:
addThenDivide:
arguments:
- a
- b
- c
expression: (a + b) / c
expression: addThenDivide(3, 2, 10)
上述的采样器会将 3
、2
与 10
传入函数 addThenDivide()
。这个函数会计算 (3 + 2) / 10
,而 3 + 2 = 5
,之后 5 / 10 = 0.5
,即总是返回 0.5
。
使用坐标
type: EXPRESSION
expression: x + z
上述的采样器总会输出 x
轴与 z
轴之和。假设 Terra 采样了 x = 4
、z = 2
处的方块,则它会对这个方块返回 4 + 2
,即 6
的值。
使用采样器
type: EXPRESSION
samplers:
whiteNoise:
dimensions: 2
type: WHITE_NOISE
expression: whiteNoise(2, 5)
上述白噪声会在传入坐标 x = 2
、y = 5
时返回平面白噪声。
采样器盐值
type: EXPRESSION
samplers:
whiteNoise:
dimensions: 2
type: WHITE_NOISE
salt: 2
expression: whiteNoiseSalted(2, 5, 1)
上述白噪声会在传入坐标 x = 2
、y = 5
、salt = 3
(指定的盐值会与已配置的盐值叠加,此例子中最后结果为 2 + 1 = 3
)时返回平面白噪声。
加盐<采样器名称>
函数会在采样器最后一个传入参数为盐值时生成。同样适用于嵌套的采样器,例如联结的 EXPRESSION 与 DOMAIN_WARP 采样器。
全部结合
type: EXPRESSION
variables:
someConstant: 3
anotherConstant: 2.5
functions:
add:
arguments:
- a
- b
expression: a + b
samplers:
exampleSampler:
dimensions: 2
type: WHITE_NOISE
expression: |
exampleSampler(x * 2, z * 2) +
add(someConstant, anotherConstant)
上述的采样器定义了:
- 两个名为
someConstant
与anotherConstant
的变量,各自的值为3
与2.5
。 - 一个要求两个参数的函数
exampleFunction()
,作用是将传入的参数相加。 - 一个平面采样器
exampleSampler()
。 - 一条表达式:
- 计算
exampleSampler()
:x
坐标乘以2
作为 X 轴坐标,且z
坐标乘以2
作为 Z 轴坐标。
- 计算
add()
:3
(someConstant
的值)作为参数a
,且2
(anotherConstant
的值)作为参数b
。
- 将
add()
的结果,即5.5
,与exampleSampler()
函数的值相加。 - 返回最终结果。
- 计算
用途
有 47 个参数用到:
Stage 中的 BORDER_LIST:
sampler 噪声采样器 - 用于分布流水线群系的噪声采样器。NoiseSampler 中的 PING_PONG:
sampler 噪声采样器Stage 中的 FRACTAL_EXPAND:
sampler 噪声采样器 - 用于随机选择流水线群系。NoiseSampler 中的 ADD:
left 噪声采样器Stage 中的 REPLACE:
sampler 噪声采样器 - 用于分布流水线群系的噪声采样器。NoiseSampler 中的 CLAMP:
sampler 噪声采样器NoiseSampler 中的 CELLULAR:
lookup 噪声采样器 - 距离参数被设置为NoiseLookup
时使用的采样器。FEATURE 中的 base:
structures.distribution 噪声采样器NoiseSampler 中的 DIV:
right 噪声采样器PALETTE 中的 base:
sampler 噪声采样器NoiseSampler 中的 MUL:
left 噪声采样器Locator 中的 SAMPLER:
samplers 列表 <噪声采样器>NoiseSampler 中的 SUB:
right 噪声采样器BIOME 中的 base:
terrain.sampler-2d 噪声采样器Extrusion 中的 SET:
sampler 噪声采样器NoiseSampler 中的 RIDGED:
sampler 噪声采样器NoiseSampler 中的 DIV:
left 噪声采样器BiomeProvider 中的 PIPELINE:
blend.sampler 噪声采样器 - 模糊高分辨率产生的锯齿效果。NoiseSampler 中的 DOMAIN_WARP:
sampler 噪声采样器 - 被扭曲的采样器。Extrusion 中的 REPLACE:
sampler 噪声采样器NoiseSampler 中的 NORMAL:
sampler 噪声采样器NoiseSampler 中的 MIN:
right 噪声采样器Source 中的 SAMPLER:
sampler 噪声采样器NoiseSampler 中的 DOMAIN_WARP:
warp 噪声采样器 - 参与扭曲的采样器。NoiseSampler 中的 MAX:
right 噪声采样器NoiseSampler 中的 KERNEL:
sampler 噪声采样器Distributor 中的 SAMPLER:
sampler 噪声采样器DimensionApplicableSampler 中的 map:
. 噪声采样器NoiseSampler 中的 LINEAR:
sampler 噪声采样器NoiseSampler 中的 PROBABILITY:
sampler 噪声采样器NoiseSampler 中的 MAX:
left 噪声采样器NoiseSampler 中的 SCALE:
sampler 噪声采样器Stage 中的 BORDER:
sampler 噪声采样器 - 用于分布流水线群系的噪声采样器。base 中的 BIOME:
terrain.sampler 噪声采样器PaletteLayer 中的 map:
sampler 噪声采样器Locator 中的 SAMPLER_3D:
sampler 噪声采样器NoiseSampler 中的 MUL:
right 噪声采样器NoiseSampler 中的 SUB:
left 噪声采样器NoiseSampler 中的 LINEAR_HEIGHTMAP:
sampler 噪声采样器 - 用作高度图的采样器。NoiseSampler 中的 EXPRESSION_NORMALIZER:
sampler 噪声采样器Stage 中的 SMOOTH:
sampler 噪声采样器 - 用于随机选择流水线群系。NoiseSampler 中的 MIN:
left 噪声采样器Stage 中的 REPLACE_LIST:
sampler 噪声采样器 - 用于分布流水线群系的噪声采样器。NoiseSampler 中的 POSTERIZATION:
sampler 噪声采样器NoiseSampler 中的 CUBIC_SPLINE:
sampler 噪声采样器NoiseSampler 中的 FBM:
sampler 噪声采样器NoiseSampler 中的 ADD:
right 噪声采样器