网格中有大量点的大三角形多边形

Large triangular polygon with a large number of points in the mesh

创建网格时,我遇到了一个问题:在游戏和场景中都出现了一个大的三角形多边形。问题是,对于 250 x 250 点的系统大小,没有这个多边形。尺寸为 400 x 400 点,它已经出现了。

我做了什么:

void Start () {
         MeshFilter mf = GetComponent<MeshFilter>();
         Mesh mesh = mf.mesh;
         int size = 400;
         Vector3[] vertices = new Vector3[size * size];
         Vector3[] normals = new Vector3[size * size];
         Vector2[] uvc = new Vector2[size * size];

         int c = 0;
         for (int i =0; i < size; i++)
         {
             for(int j =0; j < size; j++)
             {
                 vertices[c] = new Vector3(i, j, Mathf.Sin(j+i+Mathf.PI));
                 normals[c] = -Vector3.forward;
                 float mult = 1.0f / ((float)(size));
                 uvc[c] = new Vector2(((float)(i))*mult, ((float)(j)) * mult);
                 c++;
             }
         };

         int[] triangles = new int[(size-1)*(size-1)*6];
         int counter = 0;

         {
             for (int i = 0; i < size - 1; i++)
             {
                 for (int j = 0; j < size - 1; j++)
                 {
                     setTriangle(ref triangles, ref counter, i * size + j);
                     setTriangle(ref triangles, ref counter, (i + 1) * size + j);
                     setTriangle(ref triangles, ref counter, i * size + j + 1);

                     setTriangle(ref triangles, ref counter, (i + 1) * size + j);
                     setTriangle(ref triangles, ref counter, (i + 1) * size + j + 1);
                     setTriangle(ref triangles, ref counter, i * size + j + 1);

                 };
             }
         };

         mesh.Clear();
         mesh.vertices = vertices;
         mesh.triangles = triangles;
         mesh.normals = normals;
         mesh.uv = uvc;
         mesh.RecalculateNormals();

         gameObject.transform.position = new Vector3(-55, -60, 90);

     void setTriangle(ref int[] triangle, ref int index, int num)
     {
         triangle[index++] = num;
     }

以及我的结果。第一张图片是 250 x 250 点。第二个是 400 x 400。第三个是更大的图片

我认为你已经超过上限了。尺寸为 400x400 时网格的顶点数。

默认最大值。网格的顶点数是 65535。如果你想要更多,那么你必须设置:

mesh.indexFormat = Rendering.IndexFormat.UInt32;

但不保证所有平台都支持。