日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

ARKit从入门到精通(5)-ARScnView介绍

發布時間:2024/9/30 编程问答 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ARKit从入门到精通(5)-ARScnView介绍 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
  • 轉載請注明出處:ARKit從入門到精通(5)-ARScnView介紹

  • AR視圖,在第一小節筆者介紹過,ARKit支持3D的AR場景和2D的AR場景,ARSCNView是3D的AR場景視圖

  • API介紹

@interface ARSCNView : SCNView/** 代理*/ @property (nonatomic, weak, nullable) id<ARSCNViewDelegate> delegate;/** AR會話*/ @property (nonatomic, strong) ARSession *session;/** 場景*/ @property(nonatomic, strong) SCNScene *scene;/** 是否自動適應燈光*/ @property(nonatomic) BOOL automaticallyUpdatesLighting;/** 返回對應節點的錨點,節點是一個3D虛擬物體,它的坐標是虛擬場景中的坐標,而錨點ARAnchor是ARKit中現實世界的坐標。*/ - (nullable ARAnchor *)anchorForNode:(SCNNode *)node;/** 返回對應錨點的物體*/ - (nullable SCNNode *)nodeForAnchor:(ARAnchor *)anchor;/** 根據2D坐標點搜索3D模型,這個方法通常用于,當我們在手機屏幕點擊某一個點的時候,可以捕捉到這一個點所在的3D模型的位置,至于為什么是一個數組非常好理解。手機屏幕一個是長方形,這是一個二維空間。而相機捕捉到的是一個由這個二維空間射出去的長方體,我們點擊屏幕一個點可以理解為在這個長方體的邊緣射出一條線,這一條線上可能會有多個3D物體模型 point:2D坐標點(手機屏幕某一點) ARHitTestResultType:捕捉類型 點還是面 (NSArray<ARHitTestResult *> *):追蹤結果數組 詳情見本章節ARHitTestResult類介紹 數組的結果排序是由近到遠*/ - (NSArray<ARHitTestResult *> *)hitTest:(CGPoint)point types:(ARHitTestResultType)types;@end//代理 #pragma mark - ARSCNViewDelegate//代理的內部實現了SCNSceneRendererDelegate:scenekit代理 和ARSessionObserver:ARSession監聽(KVO機制) @protocol ARSCNViewDelegate <SCNSceneRendererDelegate, ARSessionObserver> @optional/** 自定義節點的錨點*/ - (nullable SCNNode *)renderer:(id <SCNSceneRenderer>)renderer nodeForAnchor:(ARAnchor *)anchor;/** 當添加節點是會調用,我們可以通過這個代理方法得知我們添加一個虛擬物體到AR場景下的錨點(AR現實世界中的坐標)*/ - (void)renderer:(id <SCNSceneRenderer>)renderer didAddNode:(SCNNode *)node forAnchor:(ARAnchor *)anchor;/** 將要刷新節點*/ - (void)renderer:(id <SCNSceneRenderer>)renderer willUpdateNode:(SCNNode *)node forAnchor:(ARAnchor *)anchor;/**已經刷新節點*/ - (void)renderer:(id <SCNSceneRenderer>)renderer didUpdateNode:(SCNNode *)node forAnchor:(ARAnchor *)anchor;/**移除節點*/ - (void)renderer:(id <SCNSceneRenderer>)renderer didRemoveNode:(SCNNode *)node forAnchor:(ARAnchor *)anchor;@end

總結

以上是生活随笔為你收集整理的ARKit从入门到精通(5)-ARScnView介绍的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。