带倍频的柏林噪声函数

/// 
    /// 创建一个含倍频的柏林噪声
    /// 
    /// x坐标
    /// y坐标
    /// 倍频
    /// 振幅系数
    /// 噪声选取范围
    /// 
    public static float CreatOctavePerlin(int x,int y, int octaves, float persistence, float scale)
    {
        float sumOctaves = 0;    //用于计算每次倍频的噪声和
        float frequency = 1;    //频率
        float amplitude = 1;    //振幅
        for (int i = 0; i < octaves; i++)
        {
            sumOctaves += Mathf.PerlinNoise(x * frequency * scale / 100f, y * frequency * scale / 100f) * amplitude;
            amplitude *= persistence;
            frequency *= 2;
        }

        return sumOctaves;
    }

你可能感兴趣的:(带倍频的柏林噪声函数)