public void Combined() { XNAGame game = new XNAGame(); game.SpectaterCamera.FarClip = 10000; PerlinNoiseGenerater noise; PerlinNoiseGenerater colorNoise; noise = new PerlinNoiseGenerater(); colorNoise = new PerlinNoiseGenerater(); float frequency = 0.5f; ///float factor = 0.02f; float scale = 100f; List <Vector3> positions = new List <Vector3>(); List <Color> colors = new List <Color>(); int width = 5000; int height = 5000; float verticesPerMeter = 0.1f; int verticesX = (int)(width * verticesPerMeter); int verticesY = (int)(height * verticesPerMeter); SimpleTerrain terrain; noise.NumberOfOctaves = 4; noise.persistance = 0.5f; for (int i = 0; i < verticesX; i++) { for (int j = 0; j < verticesY; j++) { // combinedFractalBrowning (float x,float y,int octaves,float lacunarityFractal,float lacunarityRidge,float gainFractal,float gainRidge,float offset,float distribution ) float zValue = noise.CombinedFractalBrowningAndRidgedMF(i / verticesPerMeter, j / verticesPerMeter, 8, 4, 4, 0.3f, 0.2f, 1.2f, 0.8f) * scale; positions.Add(new Vector3(i / verticesPerMeter, zValue, j / verticesPerMeter)); colors.Add(heightColoring(zValue, j + i * verticesX)); //colors.Add(new Color((byte)(150 * colorNoise.interpolatedNoise(i * frequency, j * frequency)), (byte)(100 + 70 * colorNoise.interpolatedNoise((i + 1) * frequency, (j + 1) * frequency)), (byte)(140 * colorNoise.interpolatedNoise(i * frequency, (j + 2) * frequency)))); } } terrain = new SimpleTerrain(game, positions, colors, verticesX, verticesY); game.InitializeEvent += delegate { terrain.CreateRenderData(); }; game.DrawEvent += delegate { terrain.Render(); }; game.Run(); }
public void NoiseTestRidgeMF() { XNAGame game = new XNAGame(); PerlinNoiseGenerater noise; noise = new PerlinNoiseGenerater(); float factor = 0.02f; float scale = 40f; List <Vector3> positions = new List <Vector3>(); List <Color> colors = new List <Color>(); int width = 300; int height = 300; float verticesPerMeter = 0.5f; int verticesX = (int)(width * verticesPerMeter); int verticesY = (int)(height * verticesPerMeter); SimpleTerrain terrain; noise.NumberOfOctaves = 4; noise.persistance = 0.5f; for (int i = 0; i < verticesX; i++) { for (int j = 0; j < verticesY; j++) { positions.Add(new Vector3(i / verticesPerMeter, noise.RidgedMF((i * 0.2f) / verticesPerMeter, (j * 0.2f) / verticesPerMeter, 0.08f, 8, 4.0f, 0.3f, 1.2f) * scale, j / verticesPerMeter)); colors.Add(new Color((byte)(150 * noise.GetPerlineNoise(i, j)), (byte)(100 + 70 * noise.GetPerlineNoise(i + 1, j + 1)), (byte)(140 * noise.GetPerlineNoise(i, j + 2)))); } } terrain = new SimpleTerrain(game, positions, colors, verticesX, verticesY); game.InitializeEvent += delegate { terrain.CreateRenderData(); }; game.DrawEvent += delegate { terrain.Render(); }; game.Run(); }