protected override void ThreadFunction()
    {
        generatedMesh      = new ThreadMesh();
        generatedMesh.name = "Terrain Mesh";

        BuildMesh();
    }
    private void BuildMesh()
    {
        MarchingCubes marcher = new MarchingCubes();

        marcher.voxelsToMarch = chunkVoxelArray;
        marcher.meshOffset    = chunkCoordinates;

        generatedMesh = marcher.March();
    }
Exemplo n.º 3
0
    private void UpdateMesh(ThreadMesh m)
    {
        Mesh generatedMesh = new Mesh();

        generatedMesh.name      = m.name;
        generatedMesh.vertices  = m.vertices.ToArray();
        generatedMesh.triangles = m.triangles.ToArray();
        generatedMesh.colors    = m.colors.ToArray();
        generatedMesh.RecalculateNormals();

        GetComponent <MeshFilter>().sharedMesh   = generatedMesh;
        GetComponent <MeshCollider>().sharedMesh = generatedMesh;
    }
Exemplo n.º 4
0
    public ThreadMesh March()
    {
        marchedMesh = new ThreadMesh();
        for (int j = 0; j < voxelsToMarch.GetLength(1) - 1; j++)
        {
            for (int i = 0; i < voxelsToMarch.GetLength(0) - 1; i++)
            {
                for (int k = 0; k < voxelsToMarch.GetLength(2) - 1; k++)
                {
                    generateMeshAt(i, j, k);
                }
            }
        }

        return(marchedMesh);
    }