unity3d - 获取对象内网格的所有三角形
问题描述
我想与通过 mrtk 访问的空间地图/网格进行交互。我想在光标位置实例化一个球体,并获取球体内部空间网格的每个三角形,这样我就可以把它剪下来并为我保存。我知道如何实例化和定位球体,我知道如何通过场景理解 sdk 获得空间网格,但我不知道如何解决这个问题。为了更好地理解我想尝试什么,我画了一个小草图:
--编辑和解决方案--
- TriggerEnter & -Exit 获取碰撞对象
- 我的 Sphere/Cube/Whatever 有来自 mrtk 的对象操作脚本,它有一个 EndOfManipulation 事件,在放置我的任何对象后触发。
- 获取所有网格过滤器和网格
- 通过collider.bounds.contains检查点是否在我的对撞机内,并保存所有这些点以通过来自@Pluto的代码创建新网格。
- 将网格组合成一个网格并放置在某处
解决方案
- 获取
spatialMesh
球内顶点的索引->indicesList
- 从三角形数组中
spatialMesh
获取包含所有顶点索引的三角形indicesList
->triangleList
您拥有为球体内的网格构造顶点数组和三角形数组所需的一切。
举个例子:
for i = 0 to triangleList.Count
newVertices[i] = spatialMesh.vertices[triangleList[i]];
newTriangles[i] = i;
推荐阅读
- amazon-web-services - AWS Fargate 网络 - 端口 80:连接被拒绝
- reactjs - 如何使用现有域上的子目录主页在服务器上提供反应应用程序?
- excel - 创建具有两个数组的动态 SumProduct 函数
- r - 根据与另一个表的关系填充缺失值
- c - 如何解密 AES-256 WinZip 有效负载?
- php - 如何修复 cakephp 2 和 phpunit4 中的模拟身份验证错误?
- flutter - 在飞镖编程颤振中将两个列表转换为字典
- html - 嵌套 v-for 仅显示 Vue 中第一个元素的最后一个子元素
- pine-script - 在交易视图中设置警报,而不必依赖服务器端(仅允许在免费帐户上设置 1 个警报)
- python - 总和达到特定值的大数字的组合