【发布时间】:2011-07-28 08:28:20
【问题描述】:
我有一张黑白的 2D 地图,其中白色部分应高于海平面,黑色部分应低于海平面。我不确定如何生成适合该蒙版的地形。岛屿的轮廓是否不正确并不重要,重要的是噪声应该大致符合所描述的岛屿的轮廓。
我看过 Perlin 噪音,但我不确定如何使其适应我的场景。
【问题讨论】:
标签: noise perlin-noise
我有一张黑白的 2D 地图,其中白色部分应高于海平面,黑色部分应低于海平面。我不确定如何生成适合该蒙版的地形。岛屿的轮廓是否不正确并不重要,重要的是噪声应该大致符合所描述的岛屿的轮廓。
我看过 Perlin 噪音,但我不确定如何使其适应我的场景。
【问题讨论】:
标签: noise perlin-noise
解决方案可能如下:
发明一个函数 dist(x,y) 返回到离 (x,y) 最近的海岸点的距离。 然后生成一个标准的 perlin-noise 高度场,但将每个高度乘以 dist(x,y)。 如果您在水上, dist(x,y) 实际上应该是负距离,如果您在陆地上,则应该是正距离。这样,高度场会根据您离海岸的距离被推低或拉高,但地形仍然相当连续。 如果结果看起来很奇怪,您可能需要稍微扭曲 dist(x,y),例如通过使用 sqrt(dist(x,y)) 或 sgn(dist(x,y))*log(1+abs(dist(x,y))) 或类似的东西。
【讨论】: