我有一张黑白的 2D 地图,白色部分应该在海平面以上,黑色部分应该在海平面以下。我不确定如何生成适合该蒙版的地形。岛屿的轮廓是否不正确并不重要,重要的是噪声应该大致符合所描述的岛屿的轮廓。
我看过 Perlin 噪音,但我不确定如何让它适应我的场景。
我有一张黑白的 2D 地图,白色部分应该在海平面以上,黑色部分应该在海平面以下。我不确定如何生成适合该蒙版的地形。岛屿的轮廓是否不正确并不重要,重要的是噪声应该大致符合所描述的岛屿的轮廓。
我看过 Perlin 噪音,但我不确定如何让它适应我的场景。
解决方案可能如下:
发明一个函数 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))) 或类似的东西。