← 探索新知
ASTERXOR / 探索新知

不画海岸线,也能造出一座岛

几个尺度的起伏,加上海平面阈值,就能把数字变成像地方的形状。

金色等高线围住深色合成高度场中的高地。
有固定种子的数学高度场,不是真实岛屿地图。
探索新知ASTERXOR / LEON LEUNG

没有人勾边,海岸线从哪里来?

插图中的岛从高度网格开始,而非轮廓线。宽阔波形决定大形,小波形添加细节,向边缘降低的偏置让周围边框留在水下。最终表面与海平面相交的位置,就出现海岸线。它是规则的结果,不是手工描出的线。

海岸线,是表面与阈值相遇的地方。
HEIGHT FIRST

先有高度,再有边界

高度场为每个水平位置指定一个高程。网格每边有420个样本。最初,它只是几个方向、不同相位的平滑余弦波相加。这些波是数值构件,不是模拟海浪、风或地质抬升。

随机生成器用种子813选择方向和相位。相同种子配合相同计算,就能再现同一高度场。种子不会让结果在物理上更真实,只会让选择可重复。比较修改时,这很有用,因为不至于无意中把所有配料同时换掉。

固定种子的波动场、径向高度偏置及其合成地形。
FIG 01固定种子的波动场、径向高度偏置及其合成地形。
MULTIPLE SCALES

多个尺度分担工作

四组波的空间频率分别与1、2、4、8成比例,每组有六个方向不同的波。高频组使用较小幅度,因此小起伏装饰大结构,而不是把它们淹没。这与常见多尺度噪声思路相似,但这里明确使用有限个余弦波的和。

最宽的波决定大山丘和凹地的位置,细波让表面与边缘更丰富。如果全是小尺度项,结果会繁杂却缺乏整体形态;如果只保留宽波,地形和海岸就更平滑。两种极端没有谁必然错误,它们服务于不同视觉目标。

同一地形上−0.1、0和0.1三个海平面的等高线。
FIG 02同一地形上−0.1、0和0.1三个海平面的等高线。
THE ISLAND BIAS

让中央占一点优势

单靠无偏置起伏,不一定产生被水包围的岛。我们加入径向项:在归一化坐标中,用0.48减去中心距离平方的0.9倍。它抬高中部、压低周边。波动场先乘以0.58,再加上这个项。

接着用零海平面比较表面:正值格点是陆地,负值在水下。脚本检查当前种子下每个边界样本都低于海平面。这是对本次生成结果的验证,并不证明任意系数或任意种子都会产生同样类型的岛。

中央剖面把两个成分与总和分开显示。
FIG 03中央剖面把两个成分与总和分开显示。
THE WATERLINE

换个水位,重画海岸

等高线图保持地形不变,画出海平面为−0.1、0和0.1时的边界。轮廓移动,是因为选中了不同高度,而不是重新生成陆地。低矮鞍部可能在一个阈值下连接区域,在另一个阈值下让它们分开。

这有助于理解等高线地图,但这里单位是任意的。相差0.1不代表0.1米,也不是海岸洪水预测。把玩具高度场变成真实灾害模型,需要实测高程、垂直基准、水文和不确定性信息,插图中没有这些内容。

MISSING GEOLOGY

像地图,不代表有地质过程

真实地形留下侵蚀、沉积、构造运动、岩石强度和水流的历史。平滑随机场不会仅因为颜色像景观,就自动重现这些机制。河网和尖锐山脊,尤其能暴露简单高度配方与合理地质形态之间的差异。

对游戏或插画,这种限制可能完全可以接受。设计者也许更需要好看的轮廓、可通行坡面或鲜明地标,而非地球科学模拟。下一步应明确测试这些目标。一张漂亮高度图,不能证明角色走得过去,也不能证明雨水会按预期排走。

A CREATIVE RECIPE

可重复,让视觉探索更清楚

剖面图把一条水平线上的波动贡献、径向偏置和最终高度分开,展示彩色地形图融合在一起的配料。保留种子、只改一个系数,更容易把海岸变化归因于某个具体选择。

这是一种不限于景观的创作方法:定义连续场,结合几个可理解的影响,再选出边界。结果可以丰富,却不必神秘。海岸看似被发现,是因为它间接浮现;但每个弯折,依然来自可以检查和修改的规则。

留一个想法带走

岛并不是藏在随机数里,而是由围绕随机数作出的选择塑成。