我一直在研究Perlin噪声地形生成器已有一段时间。我曾尝试实现多个杂点函数以在地图上创建不同的要素,但是遇到了麻烦。不同的Perlin噪声功能之间的边缘异常粗糙。着色取决于噪声的值,我正在尝试尝试使边界上的值平滑以创建更逼真的外观。我可以找到有问题的边境地区,但我不知道从那里去哪里。我将如何进行平滑处理?
如果有帮助,我可以通过以下if语句确定要使用的perlin噪声函数:
if(perlin[i][j] < .22){
finalHeightMap[i][j] = seaPerlin[i][j];
}
else if(perlin[i][j] > .22 && perlin[i][j] < .28){
finalHeightMap[i][j] = plainsPerlin[i][j];
}
else{
finalHeightMap[i][j] = mountainousPerlin[i][j];
}
这是严酷的边界:
任何帮助将不胜感激!
最佳答案
我将假设您知道如何在代码中找到边界,因为上面已经突出显示了边界。我建议对边缘周围的每个像素应用高斯模糊。您可以使用此here。要演示它们的外观,请在该页面中向下滚动。
基本上,只需创建每个边缘的像素坐标数组,然后遍历该数组即可对每个边缘应用模糊处理。
伪:
foreach (Location in Boundary)
blur(location, radius)
end
关于java - 使用多个Perlin函数的地形如何平滑,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43528971/