美文网首页
iOS开发——ARKit之ARSCNView

iOS开发——ARKit之ARSCNView

作者: 小驴拉磨 | 来源:发表于2017-09-09 11:39 被阅读59次

ARSCNView的头文件

ARSCNView是什么

将ARSession渲染集成到SceneKit的视图
该视图可以绘制摄像机背景,提供和更新一个摄像头,管理锚点的节点,并更新照明。

ARSCNView的属性

//代理属性不做解释
@property (nonatomic, weak, nullable) id<ARSCNViewDelegate> delegate;
//ARSession:用于更新AR场景的会话。
@property (nonatomic, strong) ARSession *session;

 //指定视图的场景。
@property(nonatomic, strong) SCNScene *scene;

//是否根绝场景更新灯光(自适应灯光),默认为YES
@property(nonatomic) BOOL automaticallyUpdatesLighting;

/**
 在场景层次结构中寻找与所提供的节点相关联的锚点。
 @param node 视图场景中的一个节点.
 */
- (nullable ARAnchor *)anchorForNode:(SCNNode *)node;

/**
将已映射到特定锚点的节点返回。
 @param anchor 具有现有节点映射的锚。
 */
- (nullable SCNNode *)nodeForAnchor:(ARAnchor *)anchor;

/**
 搜索当前帧中对应于视图中的某个点的对象。
 
 @discussion 视图坐标空间中的一个二维点可以指向三维坐标空间中的任意点。测试是在这条线段上发现世界上的物体的过程。
 @param point 视图的坐标系统中的一个点,手机屏幕上的一个点
 @param types 搜索结果的类型。
 @return 从最近到最远处的所有测试结果的数组。
 */
- (NSArray<ARHitTestResult *> *)hitTest:(CGPoint)point types:(ARHitTestResultType)types;

ARSCNViewDelegate

/**
 实现这个为给定的锚点提供一个自定义节点。
  @discussion 此节点将自动添加到场景图。如果未实现此方法,将自动创建一个节点。如果返回nil,锚点将被忽略。
  @param renderer渲染场景的渲染器。
  @param anchor添加的锚点。
  @return将映射到锚点或nil的节点。
 */
- (nullable SCNNode *)renderer:(id <SCNSceneRenderer>)renderer nodeForAnchor:(ARAnchor *)anchor;

/**
 当新节点已映射到给定的锚点时调用。
  @param renderer 渲染场景的渲染器。
  @param node 映射到锚点的节点。
  @param anchor 添加的锚点。
 */
- (void)renderer:(id <SCNSceneRenderer>)renderer didAddNode:(SCNNode *)node forAnchor:(ARAnchor *)anchor;

/**
 当节点将使用给定锚点的数据进行更新时调用。
  @param renderer 渲染场景的渲染器。
  @param node 将被更新的节点。
  @param anchor 已更新的锚点。
 */
- (void)renderer:(id <SCNSceneRenderer>)renderer willUpdateNode:(SCNNode *)node forAnchor:(ARAnchor *)anchor;

/**
 当一个节点已经使用给定锚点的数据进行更新时调用。
  @param renderer渲染场景的渲染器。
  @param node更新的节点。
  @param anchor已更新的锚点。
 */
- (void)renderer:(id <SCNSceneRenderer>)renderer didUpdateNode:(SCNNode *)node forAnchor:(ARAnchor *)anchor;

/**
 当映射节点已从给定锚点的场景图中删除时调用。
  @param renderer渲染场景的渲染器。
  @param node已删除的节点。
  @param anchor已删除的锚点。
 */
- (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

相关文章

  • iOS开发——ARKit之ARSCNView

    ARSCNView的头文件 ARSCNView是什么 将ARSession渲染集成到SceneKit的视图该视图可...

  • ARKit之ARSCNView

    原文链接:http://ludan.live/2017/08/24/ARKit%E4%B9%8BARSCNView...

  • ARKit入门知识( 一)

    ARKit概述 ARKit属于框架级别,类于iOS开发中UIKit。ARKit结合运用 iOS 设备摄像头和运动功...

  • ARkit

    ARkit Introducing ARKit iOS 11引入ARKit,这是 个全新的框架,允许开发者轻松地为...

  • ARkit 实战教程(Xcode开发)

    ARkit 实战教程(Xcode开发) ARKit 最近在开发圈实在是火,ios 开发者可以快速的进行增强现实的开...

  • Unity开发教程:如何使用ARKit为iOS开发AR应用

    Unity开发教程:如何使用ARKit为iOS开发AR应用 苹果ARKit在今年的WWDC开发者大会上亮相,Uni...

  • ARkit知多少---从青铜到王者

    Introducing ARKit iOS 11 引入 ARKit,这是 个全新的框架,允许开发者轻松地为 iP...

  • ARKit

    ARKit框架工作流程可以参考下图:1.ARSCNView加载场景SCNScene2.SCNScene启动相机AR...

  • ARKit(二)

    ARSCNView 可以添加 3D 对象进去,它无缝的提供了 ARKit 和 SceneKit 的整合,如果需要用...

  • iOS ARKit Demos

    Awesome-iOS-ARKit iOS ARKit Demos Developer Augmented Rea...

网友评论

      本文标题:iOS开发——ARKit之ARSCNView

      本文链接:https://www.haomeiwen.com/subject/cfmojxtx.html