Esempio n. 1
0
    // 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);
    }
Esempio n. 2
0
 public GuiMesh(GameObject display, Defines.ColorThreshold[] colorSteps)
 {
     this.colorSteps = colorSteps;
     meshParams      = new Defines.MeshParams(10, 1, 1);
     meshDisplay     = display;
     Init();
 }