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

翻译 2017年06月13日 01:20:38
@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 获取识别到的水平面

ARKit 识别到平面后会以委托的方式传出来  分别为 添加一个平面、 更新平面、移除平面 public delegate void ARAnchorAdded(ARPlaneAn...
  • chuan403082010
  • chuan403082010
  • 2017年08月14日 16:35
  • 956

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

AR视图,在第一小节笔者介绍过,ARKit支持3D的AR场景和2D的AR场景,ARSCNView是3D的AR场景视图 API介绍 @interface ARSCNView : SCNVi...
  • biangabiang
  • biangabiang
  • 2017年08月03日 14:40
  • 450

ARKit基本使用流程

1.准备工作,创建对象@property (nonatomic, strong) ARSession *session;//ARSessionConfigutation AR会话跟踪配置 @prop...
  • biangabiang
  • biangabiang
  • 2017年08月11日 18:24
  • 1411

SCNNode类

//  SCNNode.h
  • AngusShyang
  • AngusShyang
  • 2016年11月15日 16:28
  • 1486

ios 3D引擎 SceneKit 开发(8) --SCNShape 的使用

博客写的没有系统性,真是想到那写到那。 前天有小伙伴问: 如何将一个2D的图案转化成具有深度的3D模型其实很简单,用SCNShape 就可以实现了,看到SCNShape,我们就会立刻想到CA...
  • pzhtpf
  • pzhtpf
  • 2016年10月23日 15:10
  • 3455

ARKit从入门到精通(1)-ARKit初体验

ARKit从入门到精通(1)-ARKit初体验转载请标注出处:http://blog.csdn.net/u013263917/article/details/72903174,以及版权归属黑马程序员:...
  • u013263917
  • u013263917
  • 2017年06月07日 19:37
  • 63179

iOS9官方文档

iOS9已经发布一段时间了,我也在最近升级了Xcdoe 7.0正式版,升级后才发现又有了很多奇妙的变化,于是查看官方文档的一些解释,顺便做了一些翻译,和大家分享一下(转载请注明出处)。 iPad...
  • super_man_ww
  • super_man_ww
  • 2016年04月22日 09:54
  • 1213

ARKit从入门到精通(9)-ARKit让飞机跟着镜头飞起来

转载请注明出处:http://www.jianshu.com/p/30d6c700021a 1.1-ARKit物体跟随相机移动流程介绍 1.2-完整代码1.3-代码下载地址 废话不多说,先看效果...
  • u013263917
  • u013263917
  • 2017年06月13日 09:26
  • 5048

ios 3D引擎 SceneKit 开发(1) --起始篇

hello ,大家好,我是Roc.Tian,最近一直在研究苹果自家的3D 引擎 SceneKit ,适当写写博客,总结一下,与大家分享一下,也希望跟大家交流,共同进步。 SceneKit 是一个O...
  • pzhtpf
  • pzhtpf
  • 2015年12月15日 14:09
  • 17504

ARKit从入门到精通(6)-ARSession介绍

转载请注明出处:http://www.jianshu.com/p/a18feaa3c907 ARSession是一个连接底层与AR视图之间的桥梁,其实ARSCNView内部所有的代理方法都是由AR...
  • u013263917
  • u013263917
  • 2017年06月13日 01:23
  • 5204
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:ARKit从入门到精通(5)-ARScnView介绍
举报原因:
原因补充:

(最多只允许输入30个字)