噪声采样器(NoiseSampler)
另见
采样器在配置中定义,可经由给定位置与种子生成一个指定的值。
“采样”的定义为通过采样器的简单计算方法得出的值。采样的集合即称作“噪声”。
噪声采样器生成的噪声决定了每个方块或列的部分行为。
类型
不同类型的 NoiseSampler 的行为略有不同,也可能因此要求额外的参数。
类型通过 type 参数设置。如果两个附属使用了相同的名称,你可以添加 拓展名称: 前缀指定使用的类型。
可用的 NoiseSampler 类型如下:
CHANNEL
* 该类型需 library-image 拓展才可使用
从颜色采样中输出通道值。
color-sampler 颜色采样器 - 提取通道值的颜色采样器。normalize 布尔值 - 是否将通道约束在 [-1, 1] 的范围中。默认值:true
默认值:false
如果你希望像素透明度可以降低输出值,那么这个参数应当设置为 true。
DISTANCE_TRANSFORM
* 该类型需 library-image 拓展才可使用
返回图形的距离变形结果。
image 图像channel 通道默认值:GRAYSCALE(灰度)
默认值:false
默认值:Channel
可填入:
ChannelThresholdThresholdEdgeThresholdEdgeSigned
默认值:false
默认值:None
可填入:
NoneLinearSmoothPreserveZero
默认值: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
可用距离类型
EuclideanEuclideanSqManhattanHybrid
默认值: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 字符串 - 输出图像的通道。有效通道:
GRAYSCALEALPHAREDGREENBLUE
通道示例
| 原图 | 灰度(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: 1CONSTANT
* 该类型需 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_NOISECLAMP
* 该类型需 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 噪声采样器






SnowCutieOwO