示例#1
0
        public BrokenLands(
            AnimationCurve animationCurve
            )
        {
            TerrainGenerator ridgeNoise = new RidgeNoise(seed: 23, frequency: 1 / 3000f, octaveCount: 11) * 10;
            TerrainGenerator cliffs     = new Curve(new Gain(new PinkNoise(seed: 11, frequency: 1 / 800f, octaveCount: 5), .35f), animationCurve) * 3f;
            TerrainGenerator cliffs2    = new Curve(new PinkNoise(seed: 13, frequency: 1 / 1000f, octaveCount: 6), animationCurve) * 1.5f;
            TerrainGenerator terrain    = (ridgeNoise + cliffs + cliffs2) * 25f;

            _generator = terrain.GetGenerator();
        }
    private Generator GetTestGenerator()
    {
        RidgeNoise rn = new RidgeNoise(1337);

        rn.Frequency = 2;
        PinkNoise n = new PinkNoise(234);

        Add added = new Add(rn, n);

        BillowNoise bn = new BillowNoise(534);

        return(bn - added);
    }
        public override Generator GetGenerator()
        {
            RidgeNoise noise = new RidgeNoise(TerraSettings.GenerationSeed);

            noise.Frequency   = Frequency;
            noise.Lacunarity  = Lacunarity;
            noise.OctaveCount = OctaveCount;

            noise.Exponent = Exponent;
            noise.Offset   = Offset;
            noise.Gain     = Gain;

            return(noise);
        }
示例#4
0
    void RidgeFillMap()
    {
        if (useRandomSeed)
        {
            seed = Time.time.ToString() + transform.position.ToString();
        }

        System.Random pseudoRandom = new System.Random(seed.GetHashCode());
        RidgeNoise    ridge        = new RidgeNoise(pseudoRandom.Next(0, 100));

        for (int x = 0; x < width; x++)
        {
            for (int y = 0; y < height; y++)
            {
                for (int z = 0; z < depth; z++)
                {
                    if (x == 0 || x == width - 1 || y == 0 || y == height - 1 || z == 0 || z == depth - 1)
                    {
                        map[x, y, z] = 1;
                    }
                    else
                    {
                        Debug.Log(ridge.GetValue(x, y, z));
                        if (ridge.GetValue(x, y, z) > 1.55f)
                        {
                            map[x, y, z] = 1;
                        }
                        else
                        {
                            map[x, y, z] = 0;
                        }
                    }
                }
            }
        }
    }
示例#5
0
        public FuzzyBorders()
        {
            TerrainGenerator ridgeNoise = new RidgeNoise(seed: 23, frequency: 1 / 3000f, octaveCount: 11) * 10;

            _generator = ridgeNoise.GetGenerator();
        }