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
时间: 2024-08-01 06:24:15

ARKit从入门到精通(5)-ARScnView介绍的相关文章

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

转载:http://blog.csdn.net/hdfqq188816190/article/details/73360287 1.1-ARKit捕捉平地实现流程介绍 1.2-完整代码 1.3-代码下载地址 在介绍完ARKit详细的工作原理以及所有的API之后,最令人期待的干货终于要来了! 废话不多说,先看效果 桌子上的绿萝太孤独了,给它来一个郁金香陪伴一下吧~ 0901.gif 在椅子上摆瓶花吧~ 0902.gif 1.1-ARKit捕捉平地实现流程介绍 平地捕捉需要一点时间,ARKit内部会

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

1.1-ARKit物体围绕相机旋转流程介绍 1.2-完整代码 1.3-代码下载地址 废话不多说,先看效果 其实是会一直围着你转圈的,只不过笔者不好意思暴露家里的场景,所以请读者朋友们见谅~ 由于是晚上,笔者选择的是一个台灯 1101.gif 1.1-ARKit物体围绕相机旋转流程介绍 1.点击屏幕添加物体,已经在第三小节ARKit从入门到精通(3)-ARKit自定义实现中介绍 2.实现物体的围绕相机旋转(这里主要会用到SceneKit框架中内容) 1.为什么要在相机的位置创建一个空节点呢?因为你

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

转载请注明出处:ARKit从入门到精通(11)-ARKit开发常见问题及解决方案 本文主要介绍ARKit开发过程中一些常见问题 1.ARKit框架无法导入问题 2.ARKit运行黑屏或者白屏问题:Unable to run the session, configuration is not supported on this device: <ARWorldTrackingSessionConfiguration 3.ARKit添加虚拟物体无法显示问题:ARSession不支持打断点 1.1-A

[SharePoint][SharePoint 2013从入门到精通]Chapter 1 介绍 SharePoint2013

本章你讲学到 什么是SharePoint2013 SharePoint2013如何加强协作与共享 SharePoint2013中有什么用户权限 什么是SharePoint Online 本地部署与在线订阅版的区别 如何与Office集成 如何与Microsoft Dynamics AX集成提供多种功能 在现代商业环境中,劳动力分散,需要随时协助客户的原因,团队成员需要比以往更紧密的联系.有效合作变得越来越重要,然而,这往往很难实现.微软SharePoint 2013包含各种各样的解决这个问题协作

iOS开发从入门到精通--XIB使用介绍

XIB使用介绍: 首先我们删除一些不需要的东西: 然后我们创建一个新的视图控制器 红色箭头Also create XIB file要勾选上 这个时候,我们可以看到有三个文件创建成功了,其中有一个RootController.xib文件,在这个里面就看到了一个像手机一样的视图,我们可以在右边进行拖拽一些控件在上面 下面启动这个视图代码要在代理AppDelegate.m书写: 要引入#import "RootController.h" #import "AppDelegate.h

DNS从入门到精通(一)DNS介绍

DNS 的介绍 DNS(Domain Name System,域名系统) 因特网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串.通过主机名,最终得到该主机名对应的IP地址的过程叫做域名解析(或主机名解析).DNS协议运行在UDP协议之上,使用端口号53. 大家知道,要想在互联网 通讯,是要通过 IP  的,例如 ( 8.8.8.8 ),在 互联网 初期 ,由于 连入 互联 的 用户较少,大家  通过 ip 通讯 ,就可以了,

华三H3C官方模拟器HCL从入门到精通视频教程(9课时)

课程介绍 HCL-华三云实验室是一款界面图形化的全真网络模拟软件用户可以通过该软件实现H3C公司多个型号的虚拟设备的组网是用户学习.测试基于H3C公司Conware V7平台的网络设备的必备工具 课程目录 1<HCL从入门到精通>课程介绍2 HCL模拟器介绍介绍3 HCL安装与调试4 HCL软件界面介绍5 使用HCL创建网络拓扑6 使用Putty登陆并管理设备7 保存并导出HCL项目8 SecureCRT管理HCL设备9 Wireshark与HCL关联抓包 需要的朋友,可以加QQ:800579

UiPath从入门到精通视频教程

UiPath从入门到精通--UiPath设计器介绍 https://ke.qq.com/course/433736?taid=3773249029054024&tuin=37086c50 UiPath从入门到精通--UiPath整合流程控制语句 https://ke.qq.com/course/434000?taid=3853251384876880&tuin=37086c50 UiPath从入门到精通--UiPath讲解 https://ke.qq.com/course/434002?t

火云开发课堂 - 《Shader从入门到精通》系列 第一节:Shader介绍与工程搭建

<Shader从入门到精通>系列在线课程 第一节:Shader介绍与工程搭建 视频地址:http://edu.csdn.net/course/detail/1441/22665?auto_start=1 交流论坛:http://www.firestonegames.com/bbs/forum.php 工程下载地址:请成为正式学员获取工程 课程截图: 项目实例: 版权声明:本文为博主原创文章,未经博主允许不得转载.