ARKit - 扩展“hitTest”的范围

Posted

技术标签:

【中文标题】ARKit - 扩展“hitTest”的范围【英文标题】:ARKit - Extend the reach of "hitTest" 【发布时间】:2018-01-03 02:39:34 【问题描述】:

我想执行从屏幕上的点到 3D 世界中的立方体的命中测试。我一直在使用来自 ARKit 的hitTest。当我站在立方体附近时它可以工作,但是当我开始向后移动时,它会停止工作。我假设这是因为它被锁定到相机的zRange

我尝试将 clipToZRange 选项设置为 false,如下所示:

let hits = self.sceneView.hitTest(loc, options: [SCNHitTestOption.clipToZRange: false])`

但是好像没什么效果。

我没有设置正确的选项,还是这是一个错误?

我正在使用最新的 Xcode 和 ios 测试版。

【问题讨论】:

【参考方案1】:

原来 ARKit 的 showFeaturePoints 调试选项会干扰 hitTest...

【讨论】:

经过进一步测试,似乎 showFeaturePoints 破坏了很多东西。当特征点打开时,对象跟踪非常不稳定,但当它们关闭时,对象是坚如磐石的。 如果您正在为 .featurePoint 进行 hitTesting 例如 let hitResults = sceneView.hitTest(touch, types: .featurePoint)... 尤其如此,但例如在过滤 .existingPlaneUsingExtent 时,我确实遇到了抖动跟踪,但观察到很少(如果没有干扰问题)命中测试...

以上是关于ARKit - 扩展“hitTest”的范围的主要内容,如果未能解决你的问题,请参考以下文章

javascript hittest hit test

事件分发机制Hit-Test View的应用(TabBar凸起不能点击解决方法)

ARKit 大型模型跟随相机而不是保持静止

在 ARKit 中检测对 SCNNode 不同位置的触摸

hitTest方法与PointInside方法

[ARKit使用世界射线而不是屏幕点的命中测试