首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >mesh.triangles = t;mesh.triangles == t返回false

mesh.triangles = t;mesh.triangles == t返回false
EN

Stack Overflow用户
提问于 2020-07-25 16:32:06
回答 1查看 349关注 0票数 0

我正在制作一个程序,在这个程序中生成一个庞大而复杂的网格。起初,我生成了大量较小的网格,它的工作非常好,但后来我决定将它们合并在一起,一些三角形被破坏了。

看了一会儿之后,我设法找出了问题所在:

代码语言:javascript
复制
Debug.Log(fullTriangles == fullTriangles);
boxMesh.triangles = fullTriangles;
Debug.Log(boxMesh.triangles == fullTriangles);

只有当我使用大网格时才会发生这种情况。对于许多较小的网格,两个调试都返回true。

这是一张网眼的照片。它在许多地方都是自上而下的,绝不是凸的,有几个漂浮的岛屿,而且从渲染的角度来看通常是非常困难的。

其他可能重要的信息:

  • 大网格中的许多小网格在大网格中不共享任何眩晕,但是有些网格具有相同的位置。
  • 每一个小网格都是由一个或几个三角形组成的,这些三角形确实具有相同的眩晕性。
  • 小网格不是子网格。

为什么会发生这种事,我能做些什么来解决它呢?

EN

回答 1

Stack Overflow用户

发布于 2020-07-25 17:03:46

我猜你的网格有太多的顶点,看看网格索引格式

为了避免这个问题,您可以运行一个筛网焊机,或者在一起批处理较小的网格。您也可以将较小的网格合并成更大的网格,但要计算合并后的顶点的网格数。如果超过顶点计数限制,则创建另一个合并网格(以此类推)。

另外,请记住,将数组与“==”进行比较并不是比较数组中的值,而是比较数组引用。您可以使用Enumerable.SequenceEqual,或者运行一个简单的for循环。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63090796

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档