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

问题描述

我想与通过mrtk访问的空间地图/网格进行交互。我想在光标位置实例化一个球体,并获取该球体内部的空间网格的每个三角形,以便将其切出并保存下来。我知道如何实例化和定位球体,也知道如何通过场景理解sdk来获得空间网格,但是我不知道如何解决这个问题。为了更好地理解我想尝试的内容,我绘制了一个小草图:

enter image description here

-编辑和解决方案-

  1. 触发输入并-退出以获取碰撞的对象
  2. 我的Sphere / Cube /任何具有mrtk中的对象操作脚本的东西,在放置我的任何对象之后,该脚本都会触发EndOfManipulation事件。
  3. 获取所有meshfilter和网格
  4. 通过collider.bounds.contains检查点是否在我的对撞机内,并保存所有这些点,以通过@Pluto中的代码创建新的网格。
  5. 将网格合并为一个网格并放置在某处

解决方法

  • spatialMesh获取球体内的顶点索引-> indicesList
  • spatialMesh的三角形数组中获得在indicesList-> triangleList
  • 中具有所有顶点索引的三角形

您将拥有为球体内的网格构造顶点阵列和三角形阵列所需的全部功能。

仅作为示例:

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

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...