private void CopySubmesh(Node node) { foreach (var vertex in vertices) { if (!verticesHash.ContainsKey(vertex)) { verticesHash[vertex] = allVertices.Count; allVertices.Add(vertex); } } var submesh = (int)Mathf.Min(Mathf.RoundToInt(heightMap.Height(node.point) * maxMaterials), maxMaterials - 1); if (!allTriangs.ContainsKey(submesh)) { allTriangs[submesh] = new List <int>(); } foreach (var index in triangles) { var i = verticesHash[vertices[index]]; allTriangs[submesh].Add(i); } }