void Start()
    {
        //fbm = new FBM(new TPerlin3DNoise());
        //fbm = new OaxoaSubtractiveFBM(new TPerlin3DNoise(), 10);
        fbm = new DomainWarpingFBM(new TUnityPerlinNoise(), 2);
        //fbm = new HybridFBM(new TUnityPerlinNoise());
        fbm.SetSpectrum(12, 0.5f);
        fbm.Scale = 0.1f;
        Thread generateThread = new Thread(GenerateTexutre);

        generateThread.Start(this);
    }
Example #2
0
    public FBMBatchTask(FBM fbm, int maxThreads)
    {
        threadsCount = maxThreads;
        if (threadsCount < 1)
        {
            threadsCount = 1;
        }
        if (threadsCount > System.Environment.ProcessorCount)
        {
            threadsCount = System.Environment.ProcessorCount;
        }

        xFBM = fbm;
    }
Example #3
0
        public void Update()
        {
            var filtersGen = Enumerable
                             .Range(0, octaves)
                             .Select(x => noiseBuilder(noiseType, getSeed(x)))
                             .ToArray();


            Generator fractalGen = null;

            switch (fractalType)
            {
            case FractalType.None:
                fractalGen = filtersGen[0];
                break;

            case FractalType.FBM:
                fractalGen = new FBM(lacunarity, persistance, filtersGen);
                break;

            case FractalType.Multifractal:
                fractalGen = new Multifractal(lacunarity, persistance, filtersGen);
                break;

            case FractalType.SlopeErosion:
                fractalGen = new SlopeErosion(lacunarity, persistance, filtersGen);
                break;
            }

            fractalGen = fractalGen.Warp(4, 1);

            Generator seaGen;

            if (seaLevel > 0)
            {
                seaGen = new Max(fractalGen, new Constant(seaLevel));
            }
            else
            {
                seaGen = fractalGen;
            }


            Generator finalGen = seaGen;

            GetComponent <MapRenderer>().DrawTerrain(new float2(transform.position.x, transform.position.z), float2.zero, finalGen, terrainHeight, resPower, mapSize, mapChunks, frequency);
        }
Example #4
0
 public OaxoaSubtractiveFBM(TPerlin3DNoise noise, int iterations) : base(noise)
 {
     Iterations = iterations;
     xFBM       = new FBM(noise);
 }
Example #5
0
 public DomainWarpingFBM(TPerlin3DNoise noise, int iterations = 2) : base(noise)
 {
     Iterations = iterations;
     xFBM       = new FBM(noise);
     xFBM.SetSpectrum(10, 2f);
 }
Example #6
0
 public void InitFieldFBM(int seed, float scale, int octaves, float persistence, float lacunarity, Vector2 offset)
 {
     fieldfBM = new FBM(seed, scale, octaves, persistence, lacunarity, offset);
 }