// TODO : this is working well, but slowly. Will need to think about optimizing it public static Mesh ConstructMeshFrom(Defines.ColorThreshold[] colorParams, float[,] heightMap, Defines.MeshParams meshParams) { var samples = GetHeightSamplesFromMap(heightMap, meshParams.samplingRate); var vertices = GetVertices(samples, meshParams.maxDepth, meshParams.vertSpacing); var triangles = GetTriangles(samples); // TODO : pass lambda to retrieve colors var colors = new Color[vertices.Length]; for (int i = 0; i < colors.Length; i++) { colors[i] = ColorPicker.GetColor(colorParams, samples[i % samples.GetLength(0), i / samples.GetLength(0)]); } Mesh mesh = new Mesh { vertices = vertices, triangles = triangles.ToArray(), colors = colors }; mesh.RecalculateNormals(); mesh.RecalculateBounds(); return(mesh); }
public GuiMesh(GameObject display, Defines.ColorThreshold[] colorSteps) { this.colorSteps = colorSteps; meshParams = new Defines.MeshParams(10, 1, 1); meshDisplay = display; Init(); }