C# 快速搜索与指定Z平面相交的所有三角形(三维空间)
我有一个复杂的3D对象,全部由三角形组成(超过1.000.000个三角形)。我需要(非常快)得到所有与指定Z平面相交的三角形。 例如,有两个三角形C# 快速搜索与指定Z平面相交的所有三角形(三维空间),c#,3d,geometry,intersection,plane,C#,3d,Geometry,Intersection,Plane,我有一个复杂的3D对象,全部由三角形组成(超过1.000.000个三角形)。我需要(非常快)得到所有与指定Z平面相交的三角形。 例如,有两个三角形 T1 = P1(0,0,0) P2(0,0,10) P3(0,10, 0) T2 = P1(50,50,50) P2(50,50,60) P3(50,60,50) Z plane = 3 在本例中,T1与Z=3相交,T2不相交。 我的大问题是知道存储三角形(KD树、AABB…)的最佳结构是什么,以及如何有效地只搜索具有TZmin>Z>TZmax的三
T1 = P1(0,0,0) P2(0,0,10) P3(0,10, 0)
T2 = P1(50,50,50) P2(50,50,60) P3(50,60,50)
Z plane = 3
在本例中,T1与Z=3相交,T2不相交。
我的大问题是知道存储三角形(KD树、AABB…)的最佳结构是什么,以及如何有效地只搜索具有TZmin>Z>TZmax的三角形。
我必须在C#中完成所有工作,而且我对这种类型的3D问题非常陌生。
非常感谢您的帮助
通过GMG嗯,我不知道“最好”的方法是什么,但是KD树对于这种任务来说是非常合适的。此外,我将考虑将计算委托给GPU,因为它被设计来完成这项工作。XNA和SharpDX是很好的起点。但和往常一样:在担心速度之前,你应该检查一下速度是否太慢……我想知道的是什么是最好的方法,非常快的是什么算法给了我很少的时间来做选择工作。例如,对所有三角形使用“for cile”是一种非常缓慢的方法