在ARCore会话期间当飞机不在命中结果中时手动射线投射

我在检测到的平面上创建点,但有时不再跟踪平面(例如快速移动),并且hitTest可能不会在此平面上返回命中 .

如果ARCore做同样的事情,ARKit会为每个已知的飞机返回命中结果吗?

显然,这个概念存在于虚幻集成(EGoogleARCoreLineTraceChannel :: InfinitePlane)中,是否可以在Java API中使用?

另外为了解决这个问题,我做了一个手动光线投射,由于某种原因,我在计算位置和hitTest结果之间有一个非常小的偏移 .
the two dots show the offset blue is my cast and green is hit test result

屏幕到世界坐标将有助于确保没有引入偏差 . 这有可能吗?

在此先感谢您的帮助!

朱利安 .

回答(1)

2 years ago

作为当前的替代方案,我使用Jonas Jongejan和Dan Moore AR Drawing的代码来获得正确的Ray起源,并且它的工作要好得多 .

秘密是在靠近和前屏幕点生成2点并在 touchRay.direction.scale(AppSettings.getStrokeDrawDistance()); 开始射线 . 我现在在我的手动光线投射和 hitTest 的结果之间有一个非常准确的匹配 .