ar 检测平面几何体

如果想在 ARKit 里检测水平面,可以通过设置 session configuration 对象的 planeDetection 属性来指定。这个值可以被设置为 ARPlaneDetectionHorizontal 或 ARPlaneDetectionNone。

设置该属性后,就会开始收到 ARSCNViewDelegate 协议 delegate 方法的回调。这其中有很多方法,首先要使用的是:

/**
有新的 node 被映射到给定的 anchor 时调用。

@param renderer 将会用于渲染 scene 的 renderer。
@param node 映射到 anchor 的 node。
@param anchor 新添加的 anchor。
*/
- (void)renderer:(id <SCNSceneRenderer>)renderer
      didAddNode:(SCNNode *)node
       forAnchor:(ARAnchor *)anchor {
}

每次 ARKit 自认为检测到了平面时都会调用此方法。其中有两个信息,node 和 anchor。SCNNode 实例是 ARKit 创建的 SceneKit node,它设置了一些属性如 orientation(方向)和 position(位置),然后还有一个 anchor 实例,包含此锚点的更多信息,例如尺寸和平面的中心点。

anchor 实例实际上是 ARPlaneAnchor 类型,从中我们可以得到平面的 extent(范围)和 center(中心点)信息。



作者:张嘉夫
链接:https://www.jianshu.com/p/7abbb3efdbcb
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
发布了15 篇原创文章 · 获赞 11 · 访问量 1万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章