void GenerateOwnTests() { ModuleBase perlin = new Perlin(1, 2, .5, 6, seed, QualityMode.Medium); ModuleBase voronoi = new Voronoi(Frequency, Displacement, seed, true); ModuleBase add = new Add(perlin, voronoi); Terrace terrace = new Terrace(false, add); terrace.Add(0f); terrace.Add(one); terrace.Add(two); var perlinbuilder = new Noise2D(Size, Size / 2, perlin); perlinbuilder.GeneratePlanar(_left, _right, _top, _bottom); var voronoibuilder = new Noise2D(Size, Size / 2, voronoi); voronoibuilder.GeneratePlanar(_left, _right, _top, _bottom); var addbuilder = new Noise2D(Size, Size / 2, add); addbuilder.GeneratePlanar(_left, _right, _top, _bottom); var terracebuilder = new Noise2D(Size, Size / 2, terrace); terracebuilder.GeneratePlanar(_left, _right, _top, _bottom); var perlintex = perlinbuilder.GetTexture(_gradient); var voronoitex = voronoibuilder.GetTexture(_gradient); var addtex = addbuilder.GetTexture(_gradient); var terracetex = terracebuilder.GetTexture(_gradient); perlintex.Apply(); voronoitex.Apply(); addtex.Apply(); terracetex.Apply(); Perlin.material.SetTexture("_BaseMap", perlintex); Voronoi.material.SetTexture("_BaseMap", voronoitex); Mix.material.SetTexture("_BaseMap", addtex); Terrace.material.SetTexture("_BaseMap", terracetex); //Perlin.material.SetTexture("_BaseMap", perlinbuilder.GetTexture(_gradient)); //Voronoi.material.SetTexture("_BaseMap", voronoibuilder.GetTexture(_gradient)); //Mix.material.SetTexture("_BaseMap", addbuilder.GetTexture(_gradient)); //Terrace.material.SetTexture("_BaseMap", terracebuilder.GetTexture(_gradient)); }
/// <summary> /// modifies a module /// </summary> /// <returns>The mod.</returns> /// <param name="baseMod">Base mod.</param> /// <param name="modType">Mod type.</param> private static ModuleBase modMod(ModuleBase baseMod, int modType, System.Random rand) { switch (modType) { case 0: //curves Curve c = new Curve(baseMod); for (int i = 0; i < 4; i++) { c.Add(rand.NextDouble() * 2 - 1, rand.NextDouble() * 2 - 1); } return(c); case 1: //terrace Terrace terr = new Terrace(baseMod); int numPoints = rand.Next(1, 10); for (int i = 0; i < numPoints; i++) { terr.Add(randDoub(-1, 1, rand.NextDouble())); } return(terr); case 2: //add noise float scale = eDist(1, 10000, rand.NextDouble()); ModuleBase addedTerrain = getGradientNoise(hnProb, rand.NextDouble(), scale, rand); double amplitude = eDist(.5, scale / 4, rand.NextDouble()); addedTerrain = new ScaleBias(amplitude, 0, addedTerrain); return(new Add(baseMod, addedTerrain)); case 3: //scale module input(stretch it) return(new Scale(rand.NextDouble() * 5 + .01, rand.NextDouble() * 5 + .01, rand.NextDouble() * 5 + .01, baseMod)); default: return(new Checker()); } }
//a test preset that creates a mars like planet used to figure out how to build this planet generator public static void marsPreset(out ModuleBase finalTerrain, out ModuleBase finalTexture, out List <ModuleBase> substanceNoise) { substanceNoise = new List <ModuleBase>(); ModuleBase mainControl = new Perlin(.0001, 2, .5, 4, 634234, QualityMode.High); ModuleBase edgeControl = new RidgedMultifractal(.001, 2, 3, 5723, QualityMode.High); edgeControl = new ScaleBias(.0, 0, edgeControl); ModuleBase finalControl = new Add(mainControl, edgeControl); ModuleBase text = addModule(Sub.IronDioxide, Sub.IronDioxide2, finalControl, .5); substanceNoise.Add(text); /* ModuleBase hills = new Perlin(.001, 2, 0.5, 3, 4353, QualityMode.Low, substanceNoise.Count-1); * hills = new Add(hills, new Const(1)); * hills = new Multiply(hills, new Const(100)); * * ModuleBase plains = new Perlin(.001, 2, .5, 3, 724, QualityMode.High, substanceNoise.Count-1); * plains = new Multiply(plains, new Const(3)); * * ModuleBase hpcontrol = new Perlin(.0005, 2, .5, 5, 45623, QualityMode.High); * * Select hpselector = new Select(hills, plains, hpcontrol); * hpselector.FallOff = 1;*/ ModuleBase plains = new Perlin(.001, 2, .5, 3, 724, QualityMode.High, substanceNoise.Count - 1); plains = new Multiply(plains, new Const(3)); //ModuleBase cliffthingsbase = new Perlin(.001, 2, .5, 4, 63443, QualityMode.High); ModuleBase cliffthingsbase = new RidgedMultifractal(.001, 2, 4, 63443, QualityMode.High); Terrace cliffthings = new Terrace(cliffthingsbase); cliffthings.Add(-1); cliffthings.Add(-.875); cliffthings.Add(-.75); cliffthings.Add(-.5); cliffthings.Add(0); cliffthings.Add(1); ModuleBase finalcliff = new ScaleBias(50, 50, cliffthings); ModuleBase innerControl = new Perlin(.005, 2, .4, 3, 2356, QualityMode.High); ModuleBase outerControl = new Perlin(.001, 2, .4, 3, 235, QualityMode.High); Select cliffSelector = addModule(finalcliff, plains, innerControl, .5, .1); Select cliffSelectorouter = addModule(cliffSelector, plains, outerControl, .2, .3); finalTexture = new Const(substanceNoise.Count - 1); finalTerrain = cliffSelectorouter; //finalTerrain = hpselector; //finalTerrain = new Const(0, substanceNoise.Count - 1); }
public override object Run() { if (Terrace.Count == 0) { return(GetInputValue <SerializableModuleBase>("Input", this.Input)); } Terrace terr = new Terrace( GetInputValue <SerializableModuleBase>("Input", this.Input)); for (int i = 0; i < Terrace.Count; i++) { terr.Add (GetInputValue <double>( "Terrace " + i.ToString(), this.Terrace[i])); } return(terr); }