战略建议

时间:2013-07-02 16:53:24

标签: c# graphics 3d

问题:我需要检测STL文件中描述的防水形状的大小/形状。

我已经探讨了许多不同的方法来解决这个问题,我正在尝试使用XNA来决定以下两个方向。

碰撞/接近检测与光线投射。

在这两种情况下,我需要一个布尔值的3D立方体,指示空间中该点的顶点是否与导入的网格的表面碰撞(或接近)。

似乎碰撞检测或光线投射都可以实现我的目标,而且我倾向于碰撞/接近检测。在调查这个过程倾倒数百小时之前,是否有任何技术原因阻止我使用它来解决这个问题?

提前致谢 - 我期待着可以提供的任何建议/帮助。

1 个答案:

答案 0 :(得分:3)

如果我理解你的要求,你就是在谈论体素的实体。 this blog entry中遵循的方法是关于光线投射方法的警告:

  

我正在使用的固体体素化技术的问题   以前是用过光线投射;让它变得不可能   除非网格另外是防水的,否则执行固体体素化   没有像交叉几何这样的异常。

如果您的实体不符合此标准,则光线投射方法似乎完全有效,但我提到的博客正在使用高级八叉树技术,无论实体的形状如何,它都可以使用。从博客条目看来,某些源代码甚至可供您检查。无论如何,我会检查博客条目中提到的学术论文(和可用的源代码),并从复杂的角度决定哪种方法值得投入时间。