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萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章