在ARKit和RealityKit中使用Raycast的真正好处是什么?

时间:2019-06-05 19:23:13

标签: augmented-reality arkit realitykit

ARKit和RealityKit中的raycast方法有什么用?

func raycast(origin: SIMD3<Float>, direction: SIMD3<Float>, 
             length: Float = 100, query: CollisionCastQueryType = .all, 
               mask: CollisionGroup = .all, relativeTo referenceEntity: Entity? = nil) -> [CollisionCastHit]

任何帮助表示赞赏。

1 个答案:

答案 0 :(得分:3)

Ray-Casting,就像Hit-Testing一样,有助于在给定屏幕点的情况下在真实表面上找到3D位置。我找到了raycasting的以下定义:

  

射线投射是在现实环境中查找表面上位置的首选方法,但是为了兼容性,命中测试功能仍然存在。通过跟踪射线广播,ARKit会继续完善结果,以提高通过射线广播放置的虚拟内容的位置精度。

当用户想要在某个表面上放置虚拟内容时,建议为此提供提示。许多AR应用程序会绘制一个焦点圆或正方形,以使用户可以视觉确认ARKit知道的曲面的形状和对齐方式。因此,要找出在现实世界中放置焦点圆或正方形的位置,可以使用ARRaycastQuery来询问ARKit现实世界中任何表面存在的地方。

希望这会有所帮助。