“真实世界对象”、表面、AR 锚点之间有什么区别?
What is difference between “real-world object” , surface, AR anchors?
我正在寻找问题的技术答案:
ARkit 中“真实世界对象”、表面、AR 锚点之间有什么区别?
我相信并且据我所知:
1) ARkit 提供了 3 种不同的方法来搜索“真实世界的对象”、表面、AR Anchors。
ARSCNView hitTest(_:types:)
https://developer.apple.com/documentation/arkit/arscnview/2875544-hittest
ARSKView hitTest(_:types:)
https://developer.apple.com/documentation/arkit/arskview/2875733-hittest
ARFrame hitTest(_:types:)
https://developer.apple.com/documentation/arkit/arframe/2875718-hittest
我了解要查找在视图中显示的 SceneKit /SpriteKit 内容,您需要使用不同的 hitTest 方法。
我只是不明白什么是“真实世界的物体” vs surface vs AR anchor?
我的最佳猜测是:
真实世界对象:
- 我不知道?
表面:
- 特征点
- 估计的水平面
-estimatedVerticalPlane
AR主播:
AR图像锚点
ARFaceAnchor
ARPlaneAnchor
我想你明白了....ARKit 中的“真实世界对象”是什么?
任何帮助都会很棒。该文档似乎真正强调了“真实对象或表面”之间的区别。
谢谢
聪明狗
我们都通过分享我们所知道的来学习
我的直觉是,无论谁写了 Apple 的文档,都会让事情变得模棱两可,因为 a) 您可以将这些方法用于多种类型的命中测试,并且 b) ARKit 真的 不知道它在看什么。
如果您对任何与平面相关的类型(existingPlane
、estimatedHorizontalPlane
等)进行命中测试,您正在寻找真实世界的平坦表面。或者更确切地说,您正在寻找 ARKit“认为”看起来像水平(或垂直,在 iOS 11.3 及更高版本中)表面的东西。这些可能会也可能不会准确反映现实世界在任何给定时刻的形状,但它们是 ARKit 的最佳猜测。您搜索哪种与飞机相关的类型决定了您是否获得了现有的 ARAnchor
.
(注意漏报比漏报更常见。例如,您可能会在桌面的某个角落未被 ARKit 映射的点上找不到命中结果,但您不太可能找到平面命中结果没有对应的真实世界平面。)
如果您进行 featurePoint
命中测试,您将针对 ARKit 的用户环境稀疏地图进行测试。如果你打开 ARSCNView
中的 showFeaturePoints
选项,你可以看到这张地图——在每一帧视频中,它会找到几十到几百个视觉上足够有趣的点(好吧,“有趣”来自一个特定算法的观点),它可以关联它们在帧之间的 2D 位置,并使用视差差异来估计它们与相机的距离和 3D 中的位置 space。 (反过来,这会告知 ARKit 设备本身在 3D 中的位置 space。)
因为“特征点”可以是相机图像中任何小的、高对比度的区域,它与现实世界中任何特定类型的事物并不真正相关。如果您正在看一张带有漂亮木纹图案的桌子,您会在桌面平面上看到很多特征点。如果你正在看一张桌子,比如说,上面有一盆植物,你会在桌面上看到一些点,在花盆上看到一些点,在树叶上看到一些点......没有足够的点让你(或 CV 算法) 真的可以凭直觉了解植物的形状。但足够了,如果用户点击其中一个点,您的应用程序可以将一些 3D 对象放在那里,并且它可能看起来像粘在植物上一样令人信服。
所以,从最一般的意义上讲,ARKit 命中测试是在“现实世界”(ARKit 所感知的)中寻找某种“对象”,但除非你在寻找平面(表面)真的不能更具体地说明“对象”可能是什么。
我正在寻找问题的技术答案:
ARkit 中“真实世界对象”、表面、AR 锚点之间有什么区别?
我相信并且据我所知: 1) ARkit 提供了 3 种不同的方法来搜索“真实世界的对象”、表面、AR Anchors。
ARSCNView hitTest(_:types:) https://developer.apple.com/documentation/arkit/arscnview/2875544-hittest
ARSKView hitTest(_:types:) https://developer.apple.com/documentation/arkit/arskview/2875733-hittest
ARFrame hitTest(_:types:) https://developer.apple.com/documentation/arkit/arframe/2875718-hittest
我了解要查找在视图中显示的 SceneKit /SpriteKit 内容,您需要使用不同的 hitTest 方法。
我只是不明白什么是“真实世界的物体” vs surface vs AR anchor?
我的最佳猜测是:
真实世界对象: - 我不知道? 表面: - 特征点 - 估计的水平面 -estimatedVerticalPlane AR主播: AR图像锚点 ARFaceAnchor ARPlaneAnchor
我想你明白了....ARKit 中的“真实世界对象”是什么?
任何帮助都会很棒。该文档似乎真正强调了“真实对象或表面”之间的区别。
谢谢 聪明狗 我们都通过分享我们所知道的来学习
我的直觉是,无论谁写了 Apple 的文档,都会让事情变得模棱两可,因为 a) 您可以将这些方法用于多种类型的命中测试,并且 b) ARKit 真的 不知道它在看什么。
如果您对任何与平面相关的类型(existingPlane
、estimatedHorizontalPlane
等)进行命中测试,您正在寻找真实世界的平坦表面。或者更确切地说,您正在寻找 ARKit“认为”看起来像水平(或垂直,在 iOS 11.3 及更高版本中)表面的东西。这些可能会也可能不会准确反映现实世界在任何给定时刻的形状,但它们是 ARKit 的最佳猜测。您搜索哪种与飞机相关的类型决定了您是否获得了现有的 ARAnchor
.
(注意漏报比漏报更常见。例如,您可能会在桌面的某个角落未被 ARKit 映射的点上找不到命中结果,但您不太可能找到平面命中结果没有对应的真实世界平面。)
如果您进行 featurePoint
命中测试,您将针对 ARKit 的用户环境稀疏地图进行测试。如果你打开 ARSCNView
中的 showFeaturePoints
选项,你可以看到这张地图——在每一帧视频中,它会找到几十到几百个视觉上足够有趣的点(好吧,“有趣”来自一个特定算法的观点),它可以关联它们在帧之间的 2D 位置,并使用视差差异来估计它们与相机的距离和 3D 中的位置 space。 (反过来,这会告知 ARKit 设备本身在 3D 中的位置 space。)
因为“特征点”可以是相机图像中任何小的、高对比度的区域,它与现实世界中任何特定类型的事物并不真正相关。如果您正在看一张带有漂亮木纹图案的桌子,您会在桌面平面上看到很多特征点。如果你正在看一张桌子,比如说,上面有一盆植物,你会在桌面上看到一些点,在花盆上看到一些点,在树叶上看到一些点......没有足够的点让你(或 CV 算法) 真的可以凭直觉了解植物的形状。但足够了,如果用户点击其中一个点,您的应用程序可以将一些 3D 对象放在那里,并且它可能看起来像粘在植物上一样令人信服。
所以,从最一般的意义上讲,ARKit 命中测试是在“现实世界”(ARKit 所感知的)中寻找某种“对象”,但除非你在寻找平面(表面)真的不能更具体地说明“对象”可能是什么。