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--
- TriggerEnter & -Exit para obtener objetos colisionados
- 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.
- Obtener todos los filtros de malla y mallas
- 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 .
- 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
spatialMesh
que están dentro de la esfera ->indicesList
- De la matriz de triángulos de
spatialMesh
obtenga los triángulos que tienen todos los índices de vértice dentroindicesList
->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;