• 转载请注明出处: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介绍相关推荐

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

    转载请注明出处:ARKit从入门到精通(6)-ARSession介绍 ARSession是一个连接底层与AR视图之间的桥梁,其实ARSCNView内部所有的代理方法都是由ARSession来提供的 A ...

  2. ARKit从入门到精通(2)-ARKit工作原理及流程介绍

    转载请注明出处:ARKit从入门到精通(2)-ARKit工作原理及流程介绍 1.1-写在前面的话 1.2-ARKit与SceneKit的关系 1.3-ARKit工作原理 1.3.1-ARSCNView ...

  3. ARKit从入门到精通(7)-ARCamera介绍

    转载请注明出处:ARKit从入门到精通(7)-ARCamera介绍 ARCamera是一个相机,它是连接虚拟场景与现实场景之间的枢纽.在ARKit中,它是捕捉现实图像的相机,在SceneKit中它又是 ...

  4. ARKit从入门到精通(10)-ARKit让飞机绕着你飞起来

    转载请注明出处:ARKit从入门到精通(10)-ARKit让飞机绕着你飞起来 1.1-ARKit物体围绕相机旋转流程介绍 1.2-完整代码 1.3-代码下载地址 废话不多说,先看效果 由于是晚上,笔者 ...

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

    转载请注明出处:ARKit从入门到精通(9)-ARKit让飞机跟着镜头飞起来 1.1-ARKit物体跟随相机移动流程介绍 1.2-完整代码 1.3-代码下载地址 废话不多说,先看效果 1001.gif ...

  6. ARKit从入门到精通(4)-ARKit全框架API大全

    转载请注明出处:ARKit从入门到精通(4)-ARKit全框架API大全 1.1-ARKit框架简介 1.2-ARAnchor 1.3-ARCamera 1.4-ARError 1.5-ARFrame ...

  7. ARKit从入门到精通(3)-ARKit自定义实现

    转载请注明出处:ARKit从入门到精通(3)-ARKit自定义实现 在上一小节中ARKit从入门到精通(2)-ARKit工作原理及流程介绍,我们完整的介绍了ARKit的工作原理,那么本小节我们就通过对 ...

  8. ARKit从入门到精通(8)-ARKit捕捉平地

    转载请注明出处:ARKit从入门到精通(8)-ARKit捕捉平地 1.1-ARKit捕捉平地实现流程介绍 1.2-完整代码 1.3-代码下载地址 在介绍完ARKit详细的工作原理以及所有的API之后, ...

  9. ARKit从入门到精通(11)-ARKit开发常见问题及解决方案

    转载请注明出处:ARKit从入门到精通(11)-ARKit开发常见问题及解决方案 本文主要介绍ARKit开发过程中一些常见问题 1.ARKit框架无法导入问题 2.ARKit运行黑屏或者白屏问题:Un ...

最新文章

  1. R语言使用ggplot2包使用geom_boxplot函数绘制基础分组箱图(boxplot)实战
  2. 2016年十大存储预测
  3. pytorch_导入d2l_pytorch包问题
  4. js 创建keyframe_javascript – 查找特定的CSS @keyframes规则
  5. 深度学习(图像处理)代码库
  6. spring整合hibernate出现NoClassDefFoundError: org/apache/commons/collections/map/LRUMap
  7. 带有.NET Core 3和Electron.NET的多平台桌面HTML编辑器
  8. K-means++算法的学习笔记~
  9. MATLAB | 比生命游戏更自由的生命游戏
  10. CSRF跨站请求伪造漏洞
  11. android rxbus封装,Android RxBus的使用
  12. 用java实现一个简单的网络聊天室
  13. -atime、-ctime、mtime、-newer
  14. 决战618!摩杜云爆款秒杀,最低一年3.3元起
  15. iOS/iPadOS中Office中文字体显示不正确的解决方法
  16. 定积分不等式套路总结
  17. 微信小程序抓包https抓包的血泪史
  18. macromedia_Macromedia发布DevNet系列的最新安装
  19. NPDP产品经理小知识:平衡计分卡(二)
  20. 关于SPSS24 安装遇到的问题的几点说明

热门文章

  1. mysql pl安装教程_ubuntu 16 mysql安装包安装 (推荐在线安装)
  2. c语言编程算法模板,C语言编程算法精选.doc
  3. CUDA out of memory. Tried to allocate 392.00 MiB (GPU 0; 10.76 GiB total capacity; 652.77 MiB alread
  4. 薪资超大厂,校招天花板!Google大神云集,美团等参投,无人驾驶TOP独角兽!轻舟智航100+offer等你来!...
  5. 超详综述 | 基于深度学习的命名实体识别
  6. 爱思唯尔云论坛:疫情挑战下的大数据与人工智能研究
  7. 如何应对多GPU大规模训练的挑战?
  8. CVPR 2019 | 人脸照片秒变艺术肖像画:清华大学提出APDrawingGAN
  9. Linux安装配置Java1.8开发环境
  10. python中单双三引号区别_python基础题