iOS開發(fā)——ARKit之ARSCNView

ARSCNView的頭文件

ARSCNView是什么

將ARSession渲染集成到SceneKit的視圖
該視圖可以繪制攝像機(jī)背景,提供和更新一個(gè)攝像頭,管理錨點(diǎn)的節(jié)點(diǎn),并更新照明。

ARSCNView的屬性

//代理屬性不做解釋
@property (nonatomic, weak, nullable) id<ARSCNViewDelegate> delegate;
//ARSession:用于更新AR場景的會(huì)話。
@property (nonatomic, strong) ARSession *session;

 //指定視圖的場景。
@property(nonatomic, strong) SCNScene *scene;

//是否根絕場景更新燈光(自適應(yīng)燈光),默認(rèn)為YES
@property(nonatomic) BOOL automaticallyUpdatesLighting;

/**
 在場景層次結(jié)構(gòu)中尋找與所提供的節(jié)點(diǎn)相關(guān)聯(lián)的錨點(diǎn)。
 @param node 視圖場景中的一個(gè)節(jié)點(diǎn).
 */
- (nullable ARAnchor *)anchorForNode:(SCNNode *)node;

/**
將已映射到特定錨點(diǎn)的節(jié)點(diǎn)返回。
 @param anchor 具有現(xiàn)有節(jié)點(diǎn)映射的錨。
 */
- (nullable SCNNode *)nodeForAnchor:(ARAnchor *)anchor;

/**
 搜索當(dāng)前幀中對(duì)應(yīng)于視圖中的某個(gè)點(diǎn)的對(duì)象。
 
 @discussion 視圖坐標(biāo)空間中的一個(gè)二維點(diǎn)可以指向三維坐標(biāo)空間中的任意點(diǎn)。測試是在這條線段上發(fā)現(xiàn)世界上的物體的過程。
 @param point 視圖的坐標(biāo)系統(tǒng)中的一個(gè)點(diǎn),手機(jī)屏幕上的一個(gè)點(diǎn)
 @param types 搜索結(jié)果的類型。
 @return 從最近到最遠(yuǎn)處的所有測試結(jié)果的數(shù)組。
 */
- (NSArray<ARHitTestResult *> *)hitTest:(CGPoint)point types:(ARHitTestResultType)types;

ARSCNViewDelegate

/**
 實(shí)現(xiàn)這個(gè)為給定的錨點(diǎn)提供一個(gè)自定義節(jié)點(diǎn)。
  @discussion 此節(jié)點(diǎn)將自動(dòng)添加到場景圖。如果未實(shí)現(xiàn)此方法,將自動(dòng)創(chuàng)建一個(gè)節(jié)點(diǎn)。如果返回nil,錨點(diǎn)將被忽略。
  @param renderer渲染場景的渲染器。
  @param anchor添加的錨點(diǎn)。
  @return將映射到錨點(diǎn)或nil的節(jié)點(diǎn)。
 */
- (nullable SCNNode *)renderer:(id <SCNSceneRenderer>)renderer nodeForAnchor:(ARAnchor *)anchor;

/**
 當(dāng)新節(jié)點(diǎn)已映射到給定的錨點(diǎn)時(shí)調(diào)用。
  @param renderer 渲染場景的渲染器。
  @param node 映射到錨點(diǎn)的節(jié)點(diǎn)。
  @param anchor 添加的錨點(diǎn)。
 */
- (void)renderer:(id <SCNSceneRenderer>)renderer didAddNode:(SCNNode *)node forAnchor:(ARAnchor *)anchor;

/**
 當(dāng)節(jié)點(diǎn)將使用給定錨點(diǎn)的數(shù)據(jù)進(jìn)行更新時(shí)調(diào)用。
  @param renderer 渲染場景的渲染器。
  @param node 將被更新的節(jié)點(diǎn)。
  @param anchor 已更新的錨點(diǎn)。
 */
- (void)renderer:(id <SCNSceneRenderer>)renderer willUpdateNode:(SCNNode *)node forAnchor:(ARAnchor *)anchor;

/**
 當(dāng)一個(gè)節(jié)點(diǎn)已經(jīng)使用給定錨點(diǎn)的數(shù)據(jù)進(jìn)行更新時(shí)調(diào)用。
  @param renderer渲染場景的渲染器。
  @param node更新的節(jié)點(diǎn)。
  @param anchor已更新的錨點(diǎn)。
 */
- (void)renderer:(id <SCNSceneRenderer>)renderer didUpdateNode:(SCNNode *)node forAnchor:(ARAnchor *)anchor;

/**
 當(dāng)映射節(jié)點(diǎn)已從給定錨點(diǎn)的場景圖中刪除時(shí)調(diào)用。
  @param renderer渲染場景的渲染器。
  @param node已刪除的節(jié)點(diǎn)。
  @param anchor已刪除的錨點(diǎn)。
 */
- (void)renderer:(id <SCNSceneRenderer>)renderer didRemoveNode:(SCNNode *)node forAnchor:(ARAnchor *)anchor;

下面的不太了解,有知道的希望您能給我留言,謝謝。。。

/**
 Extended debug options for an ARSCNView
 */
struct ARSCNDebugOptions {} API_AVAILABLE(ios(11.0)) API_UNAVAILABLE(macos, watchos, tvos);

/** Show the world origin in the scene. */
API_AVAILABLE(ios(11.0)) API_UNAVAILABLE(macos, watchos, tvos)
FOUNDATION_EXTERN const SCNDebugOptions ARSCNDebugOptionShowWorldOrigin NS_SWIFT_NAME(ARSCNDebugOptions.showWorldOrigin);

/** Show detected 3D feature points in the world. */
API_AVAILABLE(ios(11.0)) API_UNAVAILABLE(macos, watchos, tvos)
FOUNDATION_EXTERN const SCNDebugOptions ARSCNDebugOptionShowFeaturePoints NS_SWIFT_NAME(ARSCNDebugOptions.showFeaturePoints);

NS_ASSUME_NONNULL_END

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • ARKit ARKit框架通過集成iOS設(shè)備攝像頭和運(yùn)動(dòng)功能,在您的應(yīng)用程序或游戲中產(chǎn)生增強(qiáng)現(xiàn)實(shí)體驗(yàn)。 概述 增強(qiáng)...
    暗夜夜夜行路閱讀 6,026評(píng)論 0 17
  • Introducing ARKit iOS 11 引入 ARKit,這是 個(gè)全新的框架,允許開發(fā)者輕松地為 iP...
    沒八阿哥的程序閱讀 2,687評(píng)論 1 9
  • ARkit Introducing ARKit iOS 11引入ARKit,這是 個(gè)全新的框架,允許開發(fā)者輕松地為...
    坤哥愛卿閱讀 1,496評(píng)論 0 1
  • 嘀嗒嘀嗒嘀嗒嘀嗒,時(shí)間它轉(zhuǎn)動(dòng)著時(shí)針……手機(jī)鈴聲緩緩響起。"喂,您撥打的電話正在奮斗中,請稍后再試撥。"一聲不...
    梔羽閱讀 259評(píng)論 1 3
  • 之前知道一點(diǎn),語言有催眠的力量。枕邊人真的可以決定一個(gè)人的成敗。跟著易仁永澄老師學(xué)習(xí)分身術(shù),語言的力量,了解了小我...
    子涵多開心點(diǎn)閱讀 272評(píng)論 0 0

友情鏈接更多精彩內(nèi)容