Skip to content

地形表达式列表

下文是一些你可以放进世界生成中的示例地形表达式。

如果你还没有准备好,请先阅读“从零编写地形”和“从零编写地形包”章节。

如下的地形表达式可以在 Terra 内置的默认地形包中找到,也可以在 Github 中浏览。

平原

eq_plain.yml
YAML
# 基础的平坦地形。

vars: &variables
  base: 64
  height: 10

terrain:
  sampler:
    type: EXPRESSION
    dimensions: 3
    variables: *variables
    expression: -y + base

  sampler-2d:
    dimensions: 2
    type: EXPRESSION
    variables: *variables
    expression: (simplex(x, z)+1)/2 * height
    samplers:
      simplex:
        dimensions: 2
        type: FBM
        octaves: 4
        sampler:
          type: OPEN_SIMPLEX_2
          frequency: 0.0075

沙漠

eq_desert.yml
YAML
# 平坦的低海拔沙漠地形


vars: &variables
  base: 64 # 基础地形 Y 轴
  groundHeight: 5 # 基础噪声的方块高度

  duneHeight: 10 # 沙丘的高度
  duneSpacing: 20 # 数字越大 = 沙丘之间间隔越大
  duneFrequency: 0.7 # 平均沙丘频率
  duneRotationRange: pi/3 # 沙丘单元随机旋转的数量, 0 = 各向异性, pi = 各向同性

terrain:
  sampler:
    dimensions: 3
    type: EXPRESSION
    variables: *variables
    expression: -y + base

  sampler-2d:
    dimensions: 2
    type: EXPRESSION
    variables: *variables
    expression: |
      duneHeight * dunes(x*duneFrequency, z*duneFrequency) * ((duneHeightVariation(x,z)/4)+0.75)
      + groundHeight * (ground(x, z)+1)/2
    samplers:
      duneHeightVariation:
        dimensions: 2
        type: FBM
        octaves: 2
        sampler:
          type: OPEN_SIMPLEX_2
          frequency: 0.02
      dunes: # 沙丘高度表 [0, 1]
        dimensions: 2
        type: DOMAIN_WARP
        amplitude: 5
        warp:
          type: OPEN_SIMPLEX_2
          frequency: 0.04
        sampler:
          type: DOMAIN_WARP
          amplitude: 15
          warp:
            type: OPEN_SIMPLEX_2
            frequency: 0.02
            salt: 1
          sampler: # 绝对正弦波域通过 CELL_VALUE 旋转, 单位边缘通过 DISTANCE_2_DIV 隐藏。 
            type: EXPRESSION
            variables: *variables
            expression: |
              -mask(x, z) * (-|sin((
                 x*sin(rotation(x,z)*duneRotationRange)
                +z*cos(rotation(x,z)*duneRotationRange))/duneSpacing)|+1)
            samplers:
              height: &cell
                dimensions: 2
                type: CELLULAR
                frequency: 0.01
              rotation:
                <<: *cell
                return: CellValue
              mask:
                <<: *cell
                return: Distance2Div

      ground:
        dimensions: 2
        type: FBM
        sampler:
          type: OPEN_SIMPLEX_2
          frequency: 0.005

山脉

eq_mountains.yml
YAML
# 基础的尖峭山峰.

vars: &variables
  base: 80
  height: 150

terrain:
  sampler:
    dimensions: 3
    type: EXPRESSION
    variables: *variables
    expression: -y + base
    samplers:
  sampler-2d:
    dimensions: 2
    type: EXPRESSION
    expression: (noise(x, z)+1)/2 * height
    variables: *variables
    samplers:
      noise:
        dimensions: 2
        type: DOMAIN_WARP
        amplitude: 5
        warp:
          type: OPEN_SIMPLEX_2
          frequency: 0.03
        sampler:
          type: FBM
          octaves: 4
          sampler:
            type: LINEAR
            min: -1
            max: 0.2
            sampler:
              type: CELLULAR
              frequency: 0.008

悬崖

eq_overhangs.yml
YAML
# 破碎的山丘

vars: &variables
  base: 80
  height: 35
  shatterHeight: 78

terrain:
  sampler:
    dimensions: 3
    type: EXPRESSION
    variables: *variables
    expression: -y + base + (simplex(x, z)+1)/2 * height + |shatter(x/3, y, z/3)*shatterHeight|
    samplers:
      shatter:
        type: CLAMP
        min: -1
        max: 1
        dimensions: 3
        sampler:
          type: FBM
          dimensions: 3
          octaves: 4
          sampler:
            type: OPEN_SIMPLEX_2
            frequency: 0.025
      simplex:
        dimensions: 2
        type: FBM
        octaves: 4
        sampler:
          type: OPEN_SIMPLEX_2
          frequency: 0.0075

提示

你可以在默认主世界地形包中找到更多的地形采样器,这些文件同样可以在 Github 中浏览。

贡献者

页面历史