• 欢迎来到Minecraft插件百科!
  • 对百科编辑一脸懵逼?帮助:快速入门带您快速熟悉百科编辑!
  • 因近日遭受攻击,百科现已限制编辑,有意编辑请加入插件百科企鹅群:223812289

Terra/噪声方程:修订间差异

来自Minecraft插件百科
跳转到导航 跳转到搜索
无编辑摘要
无编辑摘要
 
第20行: 第20行:
<pre class="">noise-equation: &quot;(-y/64)+1&quot;</pre>
<pre class="">noise-equation: &quot;(-y/64)+1&quot;</pre>
这只是一个简单的线性方程,不涉及任何噪声。它给出的结果是很无聊——一个完全平坦的世界。 <br>
这只是一个简单的线性方程,不涉及任何噪声。它给出的结果是很无聊——一个完全平坦的世界。 <br>
[[File:terra1.pnd|450px]]<br>
[[File:terra1.png|650px]]<br>
  请注意,地面高度位于Y=64。因为当把一个小于64的值传入Y的方程中时,结果为正,从而导致Y=63及以下的所有方块都是实心方块。如果你把方程画成图,你可以清楚地看到这种关系:<br>
  请注意,地面高度位于Y=64。因为当把一个小于64的值传入Y的方程中时,结果为正,从而导致Y=63及以下的所有方块都是实心方块。如果你把方程画成图,你可以清楚地看到这种关系:<br>
[[File:terra2.png|450px]]
[[File:terra2.png|700px]]


=== 这太无聊了。怎么才能造出真正的地形? ===
=== 这太无聊了。怎么才能造出真正的地形? ===
第28行: 第28行:
加上噪声就行了!<br />
加上噪声就行了!<br />
Terra包含2种你可以用到方程里的自定义函数 :<code>noise2(x, z)</code>和<code>noise3(x, y, z)</code>.。这些函数的存在正如其名,给你的地形提供噪声。它们提供来自[https://en.wikipedia.org/wiki/Simplex_noise 单纯形]八度生成器的噪声,在Terra的世界配置中定义的世界种子、八度和频率。下面是一个单纯形噪声的例子。如你所见,噪声产生了一个梯度。<br />
Terra包含2种你可以用到方程里的自定义函数 :<code>noise2(x, z)</code>和<code>noise3(x, y, z)</code>.。这些函数的存在正如其名,给你的地形提供噪声。它们提供来自[https://en.wikipedia.org/wiki/Simplex_noise 单纯形]八度生成器的噪声,在Terra的世界配置中定义的世界种子、八度和频率。下面是一个单纯形噪声的例子。如你所见,噪声产生了一个梯度。<br />
[[File:terra3.png|550px]]<br />
[[File:terra3.png|700px]]<br />
这在地形生成时很有用,因为它可以给地形添加不同的变化。让我们从一个简单的二维单纯形高度图开始吧!
这在地形生成时很有用,因为它可以给地形添加不同的变化。让我们从一个简单的二维单纯形高度图开始吧!


<pre class="">noise-equation: &quot;(-y/64)+1 + noise2(x, z)&quot;</pre>
<pre class="">noise-equation: &quot;(-y/64)+1 + noise2(x, z)&quot;</pre>
这个方程将从X和Z坐标获取的二维单纯形噪声添加到我们之前定义的线性方程中。现在,我们的世界是这样的:<br />
这个方程将从X和Z坐标获取的二维单纯形噪声添加到我们之前定义的线性方程中。现在,我们的世界是这样的:<br />
[[File:terra4.png|550px]]
[[File:terra4.png|700px]]


=== 等等,这里到底发生了什么? ===
=== 等等,这里到底发生了什么? ===
第54行: 第54行:
<pre class="">noise-equation: &quot;-((y / 64)^2) + 1&quot;</pre>
<pre class="">noise-equation: &quot;-((y / 64)^2) + 1&quot;</pre>


[[File:terra6.png|550px]]<br>
[[File:terra6.png|700px]]<br>
上面的方程得出了与线性方程类似的结果,不过该方程在Y值较高时“下降”得更快。这是该方程生成的地形:
上面的方程得出了与线性方程类似的结果,不过该方程在Y值较高时“下降”得更快。这是该方程生成的地形:


<pre class="">noise-equation: &quot;-((y / 64)^2) + 1 + noise2(x, z) / 2&quot;</pre>
<pre class="">noise-equation: &quot;-((y / 64)^2) + 1 + noise2(x, z) / 2&quot;</pre>


[[File:terra7.png|550px]]
[[File:terra7.png|700px]]


添加植被和树木后,我们就造出一个不错的平原地形了!
添加植被和树木后,我们就造出一个不错的平原地形了!

2020年11月17日 (二) 10:03的最新版本

群系噪声方程

Terra地形生成的核心就是在所有群系配置内都可以找到的noise-equation键。

举个例子:

noise-equation: "((-(y / 62)^2) + 1) + ((noise2(x, z)+0.5) / 3)"  

这一页面会向你演示如何创建可生成你所需地形的等式。

这是啥?我不懂数学!

噪声方程的原理非常简单。该方程使用3个变量:xyz,并将其转换为输出。当Terra在生成区块基础时(基础生成是地形生成的第一阶段,这个阶段定义了地形的形状),当前的坐标会被代入到这个方程内。如果结果为正,则该位置为实体。如果结果为负数,则该位置为空气。

示例

让我们从一个非常简单的噪声方程开始:

noise-equation: "(-y/64)+1"

这只是一个简单的线性方程,不涉及任何噪声。它给出的结果是很无聊——一个完全平坦的世界。

请注意,地面高度位于Y=64。因为当把一个小于64的值传入Y的方程中时,结果为正,从而导致Y=63及以下的所有方块都是实心方块。如果你把方程画成图,你可以清楚地看到这种关系:

这太无聊了。怎么才能造出真正的地形?

加上噪声就行了!
Terra包含2种你可以用到方程里的自定义函数 :noise2(x, z)noise3(x, y, z).。这些函数的存在正如其名,给你的地形提供噪声。它们提供来自单纯形八度生成器的噪声,在Terra的世界配置中定义的世界种子、八度和频率。下面是一个单纯形噪声的例子。如你所见,噪声产生了一个梯度。

这在地形生成时很有用,因为它可以给地形添加不同的变化。让我们从一个简单的二维单纯形高度图开始吧!

noise-equation: "(-y/64)+1 + noise2(x, z)"

这个方程将从X和Z坐标获取的二维单纯形噪声添加到我们之前定义的线性方程中。现在,我们的世界是这样的:

等等,这里到底发生了什么?

基本上,由于我们将单纯形噪声的结果(范围从-1.0到1.0,遵循高斯分布)添加到原始方程中,我们“偏移”了地形的基本高度(Y=63)且无视单纯形操作的结果。这让我们创造出了漂亮的山丘/山脉并赋予我们许多配置的可能性!

高山太多了。怎么创建平坦点的地形?

只需用一个数除噪声值。以下示例等式将噪声除以2:

noise-equation: "(-y/64)+1 + noise2(x, z)/2"

现在我们的地形看起来就会变成这样:

改良基础方程

我发现在大多数情况下,线性基础方程得出的结果并不理想。对于我的创建大多数群系,我使用二次方程作为基础方程。具体来说,我使用的是:

noise-equation: "-((y / 64)^2) + 1"


上面的方程得出了与线性方程类似的结果,不过该方程在Y值较高时“下降”得更快。这是该方程生成的地形:

noise-equation: "-((y / 64)^2) + 1 + noise2(x, z) / 2"

添加植被和树木后,我们就造出一个不错的平原地形了!

noise-equation: "-((y / 64)^2) + 1 + noise2(x, z) / 2"
id: "PLAINS"

palette:
  - GRASSY: 255
vanilla: PLAINS

erodible: true

flora:
  chance: 60
  attempts: 1
  items:
    TALL_GRASS:
      weight: 160
      y:
        min: 62
        max: 84
    GRASS:
      weight: 100
      y:
        min: 62
        max: 84
    POPPY:
      weight: 8
      y:
        min: 62
        max: 84

trees:
  density: 20
  items:
    OAK:
      weight: 1
      y:
        min: 58
        max: 72

更多信息请查看进阶噪声等式页面。