Exemplo n.º 1
0
    void SetRidgeNoiseSettings(PRNG prng, bool randomizeValues)
    {
        const string ridgeSuffix  = "_ridge";
        const string detailSuffix = "_ridge2";

        if (randomizeValues)
        {
            // Randomize ridge mask
            var randomizedMaskNoise = new SimpleNoiseSettings()
            {
                numLayers = 4, lacunarity = 2, persistence = 0.6f, elevation = 1
            };
            randomizedMaskNoise.scale = prng.Range(0.5f, 2f);

            // Randomize ridge noise
            var chance = new Chance(prng);
            var randomizedRidgeNoise = new RidgeNoiseSettings()
            {
                numLayers = 4, power = 3, gain = 1, peakSmoothing = 2
            };

            randomizedRidgeNoise.elevation   = Mathf.Lerp(1, 7, prng.ValueBiasLower(0.3f));
            randomizedRidgeNoise.scale       = prng.Range(1f, 3f);
            randomizedRidgeNoise.lacunarity  = prng.Range(1f, 5f);
            randomizedRidgeNoise.persistence = 0.42f;
            randomizedRidgeNoise.power       = prng.Range(1.5f, 3.5f);

            randomizedRidgeNoise.SetComputeValues(heightMapCompute, prng, ridgeSuffix);
            randomizedMaskNoise.SetComputeValues(heightMapCompute, prng, detailSuffix);
        }
        else
        {
            ridgeNoise.SetComputeValues(heightMapCompute, prng, ridgeSuffix);
            ridgeNoise2.SetComputeValues(heightMapCompute, prng, detailSuffix);
        }
    }