获取对象内网格的所有三角形

Get all triangles of a mesh within an object

我想与我通过 mrtk 访问的空间 map/mesh 进行交互。我想在光标位置实例化一个球体,然后 获取球体内部空间网格的每个三角形,这样我就可以将其剪切并保存 。我知道如何实例化和定位球体,我知道如何通过场景理解 sdk 获取空间网格,但我不知道如何处理这个问题。为了更好地理解我想尝试什么,我画了一个小草图:

--编辑&解决方案--

  1. TriggerEnter & -Exit 获取碰撞对象
  2. 我的 Sphere/Cube/Whatever 有来自 mrtk 的对象操作脚本,它有一个 EndOfManipulation 事件,在放置我的任意对象后触发。
  3. 获取所有网格过滤器和网格
  4. 通过collider.bounds.contains if point is inside my collider and save all those points to create a new mesh via the code from 检查。
  5. 将网格合并为一个网格并放置在某处
  • spatialMesh 中获取球体内部的顶点索引 -> indicesList
  • spatialMesh 的三角形数组中获取所有顶点索引都在 indicesList 内的三角形 -> triangleList

你已经拥有了为球体内部的网格构建顶点数组和三角形数组所需的一切。

举个例子:

for i = 0 to triangleList.Count
    newVertices[i] = spatialMesh.vertices[triangleList[i]];
    newTriangles[i] = i;