public void DrawNoise() { float[,] heightMap = GenerateHeightMap(); NoiseDisplay display = FindObjectOfType <NoiseDisplay>(); if (drawMode == DrawMode.Line) { display.DrawLine(TextureGenerator.LinePositionsFromHeightMap(heightMap, meshHeightMultiplier), colorGradient); } else if (drawMode == DrawMode.Plane) { display.DrawTexture(TextureGenerator.TextureFromHeightMap(heightMap, colorGradient)); } else { display.DrawMesh(MeshGenerator.GenerateTerrainMesh(heightMap, meshHeightMultiplier, meshHeightCurve, colorGradient, LOD, useFlatShading)); display.DrawStand(MeshGenerator.GenerateTerrainMeshStand(heightMap, meshHeightMultiplier, meshHeightCurve, colorGradient, LOD, useFlatShading)); } }
public void GenerateNoiseMap() { float start = Time.realtimeSinceStartup; float[,] noiseMap = Noise.GenerateNoiseMap(width, height, seed, scale, octaves, persistance, lacanarity, offset); Color[] normalMap = Noise.CreateNormalMap(noiseMap); //float[,] noiseMap = Noise.GenerateIslandMask(width, height, 20f); Color[] colorMap = new Color[width * height]; for (int x = 0; x < width; x++) { for (int y = 0; y < height; y++) { float currentHeight = noiseMap [x, y]; if (currentHeight < .05f) { colorMap [y * width + x] = new Color(0, 0, .7f); } else if (currentHeight < .1f) { colorMap [y * width + x] = new Color(0, 0, .8f); } else if (currentHeight < .2f) { colorMap [y * width + x] = new Color(0, 0, .9f); } else if (currentHeight < .3f) { colorMap [y * width + x] = new Color(0, 0, 1f); } else if (currentHeight < .33f) { colorMap [y * width + x] = new Color(1f, 1f, 0); } else if (currentHeight < .4f) { colorMap [y * width + x] = new Color(0f, 1f, 0f); } else if (currentHeight < .55f) { colorMap [y * width + x] = new Color(0f, .9f, 0f); } else if (currentHeight < .6f) { colorMap [y * width + x] = new Color(.5f, .5f, .5f); } else if (currentHeight < .7f) { colorMap [y * width + x] = new Color(.7f, .7f, .7f); } else { colorMap [y * width + x] = new Color(.97f, .97f, 1f); } } } NoiseDisplay display = FindObjectOfType <NoiseDisplay> (); if (drawMode == DrawMode.NoiseMap) { display.DrawTexture(TextureGenerator.TextureFromHeightMap(noiseMap)); } else if (drawMode == DrawMode.ColorMap) { display.DrawTexture(TextureGenerator.TextureFromColorMap(colorMap, width, height)); } else if (drawMode == DrawMode.NormalMap) { display.DrawTexture(TextureGenerator.TextureFromColorMap(normalMap, width, height)); } else if (drawMode == DrawMode.GameMap) { display.DrawTexture(WorldController.Instance.noiseTexture); } float end = Time.realtimeSinceStartup; Debug.Log("Generated Map in " + (end - start) + " seconds"); }