unity3d - 网格中有大量点的大型三角形多边形
问题描述
创建网格时,我遇到了一个问题:无论是在游戏中,还是在场景中都出现了一个大的三角形多边形。问题是系统大小为 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 = 渲染.IndexFormat.UInt32;
但这不能保证在所有平台上都支持。
推荐阅读
- apache-spark - com.fasterxml.jackson.core.JsonParseException:在 pyspark-synapse 中获取 hadoop configuratioj 时无法识别令牌“drwxrwx”
- python-3.x - 我正在尝试让球随着时间的推移而减速
- raspberry-pi - 如何在 vlan 上设置树莓派,以便所有流量都通过 pi 上的 eth0?
- visual-studio-code - VS Code 语法高亮延迟
- r - 按组计算数据框中存在的连续月份
- r - .SD 和 data.table 的其他类似特殊变量的命名空间环境是什么?
- ruby-on-rails - 带有设计的 Rails 应用程序无法在 heroku 上部署(来自 github sorces)
- android - 自定义域、深层链接、Firebase 动态链接和应用链接如何协同工作?
- python - 如何从表 args 为 mssql 方言关闭自动增量
- swift - NSImage 缺少 Alpha 通道