Obtenga todos los triángulos de una malla dentro de un objeto

Aug 18 2020

Quiero interactuar con el mapa/malla espacial al que tengo acceso a través de mrtk. Quiero crear una instancia de una esfera en la posición del cursor y obtener cada triángulo de la malla espacial que está dentro de la esfera, para poder cortarlo y guardarlo para mí . Sé cómo instanciar y posicionar la esfera y sé cómo obtener la malla espacial a través de la escena que comprende SDK, pero no sé cómo abordar esto. Para entender mejor lo que quiero probar, he dibujado un pequeño boceto:

--Editar y solucionar--

  1. TriggerEnter & -Exit para obtener objetos colisionados
  2. Mi Esfera/Cubo/Lo que sea tiene el script de manipulación de objetos de mrtk, que tiene un evento EndOfManipulation que se activa después de colocar mi objeto cualquiera.
  3. Obtener todos los filtros de malla y mallas
  4. Verifique a través de collider.bounds.contains si el punto está dentro de mi colisionador y guarde todos esos puntos para crear una nueva malla a través del código de @Pluto .
  5. Combinar mallas en una malla y colocarlas en algún lugar

Respuestas

1 Pluto Aug 17 2020 at 23:28
  • Obtenga los índices de los vértices spatialMeshque están dentro de la esfera ->indicesList
  • De la matriz de triángulos de spatialMeshobtenga los triángulos que tienen todos los índices de vértice dentro indicesList->triangleList

Y tiene todo lo que necesita para construir una matriz de vértices y una matriz de triángulos para la malla dentro de la esfera.

Solo como un ejemplo:

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