我想编程一个地形发生器在联合,并已经有一些工作代码的Perlin噪声地形发生器。我目前使用的是统一(使用c#),我不知道如何划分地形深度(Z)(我想用Sqrt函数计算的山谷的高度/深度)的生成取决于x和地形深度依赖y。我的问题是,当我试图将浮子转换成ints时,我必须把它们围起来,否则它们就不能工作,但是我想要平滑地计算terrain,有方法可以将这两个高度组合成1而不使地形变得粗糙吗?
float CalculateHeights(int x, int y)
{
float xCoord = x;
private int xz = float xCoord;
float yCoord = (float)y / height;
private int yz =float yCoord;
int z = (xz + yz) / 2;
return Mathf.Sqrt(z);
}
发布于 2022-07-05 19:29:16
如果你想在联合中使用Perlin噪音,你可以使用内置的生成器。
例如:
float height = Mathf.PerlinNoise(X,Y);
但是警告:如果在这个函数中不对X和Y使用浮点值,那么总是获得相同的值会有问题。
希望这能有所帮助。
Docs - https://docs.unity3d.com/ScriptReference/Mathf.PerlinNoise.html
https://stackoverflow.com/questions/72874209
复制相似问题