Пример #1
0
 public static JsonArray Pack(UberData u)
 {
     return(new JsonArray(u.octaves,
                          u.perturb, u.sharpness, u.amplify,
                          u.altitudeErosion, u.ridgeErosion, u.slopeErosion,
                          u.lacunarity, u.gain, u.startAmplitude, u.scale));
 }
Пример #2
0
    private void UpdateGenerator()
    {
        generator.noise     = objectNoise;
        generator.repeating = new Vector3(viewDist, 1, viewDist);
        generator.objects   = objects;
        generator.offset    = tileSize.x * 2;
        generator.lockY     = true;

        // init buffer for later use
        Buffer("Perms", SimplexNoise.stdPerm);
        noises = new SimplexNoise[2] {
            heightmapNoise,
            splatmapNoise
        };
        Buffer("Noises", noises);
        List <UberData> uberData = new List <UberData>();

        uberData.Add(heightmapUberNoise);
        uberData.Add(splatmapUberNoise);
        // SRNG rng = new SRNG(seed);
        UnityEngine.Random.InitState(unchecked ((int)seed));

        for (int i = 0; i < 20; i++)
        {
            UberData data = MakeUberData(4, minUber, maxUber);
            uberData.Add(data);
        }
        ubers = uberData.ToArray();
        Buffer("Ubers", ubers);
    }
Пример #3
0
    private UberData MakeUberData(int octaves, UberData min, UberData max)
    {
        UberData it = new UberData();

        it.octaves = octaves;

        it.perturb   = Random.Range(min.perturb, max.perturb);
        it.sharpness = Random.Range(min.sharpness, max.sharpness);
        it.amplify   = Random.Range(min.amplify, max.amplify);

        it.altitudeErosion = Random.Range(min.altitudeErosion, max.altitudeErosion);
        it.ridgeErosion    = Random.Range(min.ridgeErosion, max.ridgeErosion);
        it.slopeErosion    = Random.Range(min.slopeErosion, max.slopeErosion);

        it.lacunarity     = Random.Range(min.lacunarity, max.lacunarity);
        it.gain           = Random.Range(min.gain, max.gain);
        it.startAmplitude = Random.Range(min.startAmplitude, max.startAmplitude);
        it.scale          = Random.Range(min.scale, max.scale);
        return(it);
    }
Пример #4
0
    private UberData MakeUberData(int octaves)
    {
        UberData it = new UberData();

        it.octaves = octaves;

        it.perturb   = Random.Range(-.4f, .4f);
        it.sharpness = Random.Range(-1f, 1f);
        it.amplify   = Random.Range(0, .5f);

        it.altitudeErosion = Random.Range(0, .25f);
        it.ridgeErosion    = Random.Range(0, 1.0f);
        it.slopeErosion    = Random.Range(0, 1.0f);

        it.lacunarity     = Random.Range(1.1f, 2.5f);
        it.gain           = Random.Range(.2f, .8f);
        it.startAmplitude = Random.Range(0.1f, 3f);
        it.scale          = Random.Range(.0005f, .0016f);
        return(it);
    }