Unity中的程序化地形冒险(第1部分)

发布: (2026年1月13日 GMT+8 01:56)
4 min read
原文: Dev.to

Source: Dev.to

请提供您希望翻译的正文内容(除代码块和链接外),我将为您翻译成简体中文并保持原有的 Markdown 格式。

噪声

噪声是一种看似随机但仍保持平滑连续的数值模式。在生成地形时,我们需要一种方法来确定景观上每一点的高度。为此,我们可以将噪声生成视为对海拔值的模拟。现有许多不同的噪声算法,但这里我们只使用 Perlin 噪声——最流行、最广泛使用的方法之一。

Perlin 噪声的图像

在这张图中,亮度对应高度。黑色表示高度 0.0,白色表示高度 1.0。

为了让我们的高度图在视觉上更具吸引力和真实感,我们可以引入 八度(octaves)。

Source:

八度

八度是不同尺度的噪声层的多重叠加。每一层逐步加入更细的细节,使高度图拥有更丰富的复杂性和真实感。

从 1 到 8 八度的 Perlin 噪声动图

请注意,每增加一个八度就会引入更细的细节。仅使用一个八度时,地形看起来平滑且简单。使用八个八度时,我们得到一个更自然、复杂的景观,具备多尺度的细节。大约在五个八度后出现递减收益,额外的八度几乎不增加可见细节,但仍会影响性能。

持久性和稀疏度

八度的行为主要受两个重要参数控制:持久性(persistence)和稀疏度(lacunarity)。

持久性

持久性决定每个后续八度对最终噪声的贡献程度。

  • 高持久性 – 后续八度仍然保持强度,产生细节丰富、粗糙、混沌的地形。
  • 低持久性 – 后续八度的贡献较小,得到更平滑、柔和的地形。

低持久性与高持久性对比(稀疏度 = 2):

持久性为 0.3、稀疏度为 2 的噪声

持久性为 0.3、稀疏度为 2 的噪声

持久性为 0.7、稀疏度为 2 的噪声

持久性为 0.7、稀疏度为 2 的噪声

稀疏度

稀疏度控制每个八度之间频率(噪声的“放大倍数”)的提升幅度。

  • 稀疏度为 2.0 表示每个八度的频率加倍。
  • 更高的稀疏度会在八度之间产生更大的细节尺寸跳跃。
  • 更低的稀疏度则使各八度的特征尺寸更为相似。

持久性为 0.5、稀疏度从 1 增加到 4 的噪声

持久性为 0.5、稀疏度从 1 增加到 4 的噪声

我们现在已经拥有了创建自己地形的良好基准!

Back to Blog

相关文章

阅读更多 »

如何制作 Roblox UI

步骤1:制作 UI - 打开 Roblox Studio。 - 在 Explorer 中,前往 StarterGui。 - 插入一个 ScreenGui 并将其重命名为 MainMenuGui。 - 在 MainMenuGui 内,插入……