【发布时间】:2015-12-21 00:13:59
【问题描述】:
我目前正在编写一个应用程序,该应用程序应检查是否可以按照设计师的预期方式对齐不同的条和连接器。 为此,我想加载条和连接器的 3D 模型(波前对象),按照设计者的预期放置它们并检查不同模型之间的碰撞。
现在,当我在搜索碰撞检测时,我通常会读到,您永远不应该根据网格检查碰撞,而是简化模型,因此我尝试过的大多数工具甚至不允许您根据网格,或者他们简化了这个过程。问题是人们大部分时间都在谈论游戏开发,但我的用例完全不同。我什至不需要非常有效率。每秒一次检测就绰绰有余了,而游戏当然更频繁地需要这些检查。
现在我正在使用 BulletSharp(子弹物理引擎的 .Net 包装器),我得到了不错的结果。当我首先简化我的网格(使用 HACD 凸分解)然后检查碰撞时,它大部分时间都可以工作,但有时当部件彼此非常接近时,我会在不应该有碰撞的情况下发生碰撞,就像你可以看到的那样在图片上(红色表示零件之间存在碰撞)。有趣的是,当我使用详细的对象模型而不是简化的对象模型时,它的效果会更差。
对于这种用例还有其他方法吗?也许其他可以帮助我的引擎或库(在 .Net 中最好但不一定)?
【问题讨论】:
-
用什么方式简化模型?
标签: 3d collision-detection physics