Я использую функцию Mathf.PerlinNoise () Unity для создания шума Перлина. Результат функции всегда находится между значениями 0,45f и 0,55f, даже если функция perlin должна выводить значения от 0 до 1.
Вы можете подумать, что это потому, что я ввожу аналогичные значения, но это не тот случай. Я изменил ввод, например, сдвинул масштаб, изменил смещение и, конечно же, установил другие x и y, но все они, похоже, дают одинаковые значения-i sh.
public static float terrainNoise(int x, int y, int seed, float scale, int offset)
{
System.Random prng = new System.Random(seed);
float seedOffsetX = prng.Next(-100000, 100000);
float seedOffsetY = prng.Next(-100000, 100000);
float sampleX = ((x / LookUpData.chunkWidth) * scale) + 0.01f;
float sampleY = ((y / LookUpData.chunkHeight) * scale) + 0.01f;
float value = Mathf.PerlinNoise(sampleX + offset + seedOffsetX, sampleY + offset + seedOffsetY);
Mathf.Clamp(value, 0, 1);
return value;
}