Unity中的程序化地形冒险(第1部分)
Source: Dev.to
请提供您希望翻译的正文内容(除代码块和链接外),我将为您翻译成简体中文并保持原有的 Markdown 格式。
噪声
噪声是一种看似随机但仍保持平滑连续的数值模式。在生成地形时,我们需要一种方法来确定景观上每一点的高度。为此,我们可以将噪声生成视为对海拔值的模拟。现有许多不同的噪声算法,但这里我们只使用 Perlin 噪声——最流行、最广泛使用的方法之一。
在这张图中,亮度对应高度。黑色表示高度 0.0,白色表示高度 1.0。
为了让我们的高度图在视觉上更具吸引力和真实感,我们可以引入 八度(octaves)。
Source: …
八度
八度是不同尺度的噪声层的多重叠加。每一层逐步加入更细的细节,使高度图拥有更丰富的复杂性和真实感。
请注意,每增加一个八度就会引入更细的细节。仅使用一个八度时,地形看起来平滑且简单。使用八个八度时,我们得到一个更自然、复杂的景观,具备多尺度的细节。大约在五个八度后出现递减收益,额外的八度几乎不增加可见细节,但仍会影响性能。
持久性和稀疏度
八度的行为主要受两个重要参数控制:持久性(persistence)和稀疏度(lacunarity)。
持久性
持久性决定每个后续八度对最终噪声的贡献程度。
- 高持久性 – 后续八度仍然保持强度,产生细节丰富、粗糙、混沌的地形。
- 低持久性 – 后续八度的贡献较小,得到更平滑、柔和的地形。
低持久性与高持久性对比(稀疏度 = 2):
持久性为 0.3、稀疏度为 2 的噪声
持久性为 0.7、稀疏度为 2 的噪声
稀疏度
稀疏度控制每个八度之间频率(噪声的“放大倍数”)的提升幅度。
- 稀疏度为 2.0 表示每个八度的频率加倍。
- 更高的稀疏度会在八度之间产生更大的细节尺寸跳跃。
- 更低的稀疏度则使各八度的特征尺寸更为相似。
持久性为 0.5、稀疏度从 1 增加到 4 的噪声
我们现在已经拥有了创建自己地形的良好基准!




