private Mesh GenerateTerrain() { var quadMesh = QuadMesh.CreatePlane(Dimensions, new IntVector2(SubdivisionsX, SubdivisionsY)); quadMesh.ForEachQuad((quad, index) => { float height = GenerateHeight(quad.vertices[0].x, quad.vertices[0].z); if (height == 0.0f) { return; } quadMesh.Extrude(index, quad.Normal, height); }); quadMesh.Optimize(); return(quadMesh.ToMesh(!FlatShading, ConvertToTris)); }
private QuadMesh GenerateTerrain(Vector2 center, Vector2 dimensions) { var quadMesh = QuadMesh.CreatePlane(dimensions, new IntVector2(SubdivisionsX, SubdivisionsY)); quadMesh.ForEachQuad((quad, index) => { float height = GenerateHeight(center, quad.vertices[0].x, quad.vertices[0].z); if (height == 0.0f) { return; } quadMesh.Extrude(index, quad.Normal, height); }); quadMesh.Optimize(); return(quadMesh); }