รับสามเหลี่ยมทั้งหมดของตาข่ายภายในวัตถุ

Aug 18 2020

ฉันต้องการโต้ตอบกับแผนที่เชิงพื้นที่ / เมชที่ฉันสามารถเข้าถึงได้ผ่าน mrtk ผมอยากจะยกตัวอย่างทรงกลมที่ตำแหน่งของเคอร์เซอร์และได้รับสามเหลี่ยมตาข่ายเชิงพื้นที่ที่อยู่ภายในของทรงกลมทุกดังนั้นฉันสามารถตัดออกและบันทึกไว้สำหรับฉัน ฉันรู้วิธีสร้างอินสแตนซ์และวางตำแหน่งทรงกลมและฉันรู้วิธีรับตาข่ายเชิงพื้นที่ผ่านทาง sdk ที่เข้าใจฉาก แต่ฉันไม่รู้วิธีเข้าใกล้สิ่งนี้ เพื่อให้เข้าใจสิ่งที่ฉันต้องการลองดีขึ้นฉันได้วาดภาพร่างเล็ก ๆ :

- แก้ไขและแก้ไข -

  1. TriggerEnter & -Exit เพื่อรับวัตถุที่ชนกัน
  2. My Sphere / Cube / อะไรก็ตามที่มีสคริปต์การจัดการวัตถุจาก mrtk ที่มีเหตุการณ์ EndOfManipulation ที่ทริกเกอร์หลังจากวางวัตถุอะไรก็ได้ของฉัน
  3. รับ meshfilter และ meshes ทั้งหมด
  4. ตรวจสอบผ่านทางcollider.bounds.containsถ้าจุดอยู่ภายใน Collider ของฉันและบันทึกทุกจุดเหล่านั้นเพื่อสร้างตาข่ายใหม่รหัสผ่านจาก@Pluto
  5. การรวมตาข่ายเป็นตาข่ายเดียวและวางไว้ที่ไหนสักแห่ง

คำตอบ

1 Pluto Aug 17 2020 at 23:28
  • รับดัชนีของจุดยอดจากspatialMeshที่อยู่ภายในทรงกลม ->indicesList
  • จากอาร์เรย์สามเหลี่ยมของspatialMeshรับสามเหลี่ยมที่มีดัชนีจุดยอดทั้งหมดอยู่ภายในindicesList->triangleList

และคุณมีทั้งหมดที่คุณต้องการในการสร้างอาร์เรย์จุดยอดและอาร์เรย์สามเหลี่ยมสำหรับตาข่ายภายในทรงกลม

ดังตัวอย่าง:

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