理解ARKit

作者: li_礼光 | 来源:发表于2017-06-29 16:09 被阅读483次

参考博文 : ARKit从入门到精通(1)-ARKit初体验

看完算是个初步认识吧, 知道如何使用.好多细节好需要研究

// 总结 : 这个Demo
//  1.ARSCNView                 负责展示AR内容
//  2.ARSession                 负责管理AR事务
//  3.ARSessionConfiguration    负责处理现实世界内容跟踪
//  4.SCNNode                   负责创建节点(模型)
//  5.SCNScene                  负责描述3D场景(装模型的容器)

理解细节点:

  • 最开始接触的时候,会考虑怎么将模型展示到屏幕上,实现AR显示,你可能在屏幕上各种点击,想着在我的桌面上,地板上,半空中展示出来,但是,ARKit内部是自动去实现算法处理,然后呢,才在屏幕上显示你编程出来的内容.简单粗暴来说,不稳定,暂时不能做到很精准的将模型投放到某一个位置.最终你可能还是实现出来了,但是位置有偏差.
PS : 在ARKit内部计算完,符合要求后会调用这个方法.(官方解释有点难以理解什么时候调用)
- (void)renderer:(id <SCNSceneRenderer>)renderer 
      didAddNode:(SCNNode *)node
       forAnchor:(ARAnchor *)anchor;

使用ARKit调用两个框架

#import <SceneKit/SceneKit.h>  //理解 : 一个供AR实现内容的平台
#import <ARKit/ARKit.h>        //理解 : 一个实现AR内容的框架

一些基础的内容

//AR视图:展示3D界面
@property(nonatomic,strong)ARSCNView *arSCNView;

//AR会话,负责管理相机追踪配置及3D相机坐标
@property(nonatomic,strong)ARSession *arSession;

//会话追踪配置:负责追踪相机的运动
@property(nonatomic,strong)ARSessionConfiguration *arSessionConfiguration;

//节点 : 具体内容
@property(nonatomic,strong)SCNNode *planeNode;

应该还有一个是

@property(nonatomic,strong)SCNScene *Scene;

这个是什么呢?怎么理解呢???

简单粗暴的理解:

如果你做过自定义的Xib的话,比如自定义Cell,加载Xib的时候,会取整个Xib文件中的Cell组件. 对于整个Xib来说,就只有那么一个完整得Cell的组件.也就是这个Cell. (当然你也可以自定义两个,也是可行的,取对应的那一个就好,不过就是自己给自己找麻烦). 就是一个单独空间中,我只有这么一个东西. 就是一瓶纯净水中只有水这一样东西一样意思. 这里面是加载一个SCN资源文件.

理解Scene

同时也可以加载DAE文件.你可以访问这个地址TurboSquid, 在里面也可以找到相当多的免费的3D模型.DAE文件资源 :

DAE文件资源

这里面把苹果系统Demo的飞机换成这个就可以了就可以了.其实是一样的.

获取模型代码的实现

 SCNScene *scene = [SCNScene sceneNamed:@"Models.scnassets/ship.scn"];
 SCNNode *shipNode = scene.rootNode.childNodes[0];
  
 //将模型添加到当前屏幕中
 [self.arSCNView.scene.rootNode addChildNode:shipNode];

设置模型的位置大小

shipNode.position = SCNVector3Make(x, y, z) ;

原始位置 :

默认距离

z轴-10(米)的位置 :

距离10米远

文章最后:

后续要研究的内容

  • 关于SCNNode的细节处理也是值得去考虑的?比如,位置,大小,纹理等等.

  • AR交互怎么实现的?

相关文章

  • 理解ARKit

    参考博文 : ARKit从入门到精通(1)-ARKit初体验 看完算是个初步认识吧, 知道如何使用.好多细节好需要...

  • 初探AR

    AR相关 - ARKit的理解 要想很好的开发AR项目,首先还是要对ARKit有个基本的了解,那我们现在就来看看一...

  • 理解增强现实(ARKit)

    译自官方文档 概述 任何AR体验——以及对ARKit功能的定义——的基础要求是创建和跟踪用户所在的现实世界和你所模...

  • 8月iOS Library Top5 ---2017.08

    1.ARKit-CoreLacation ARKit-CoreLacation将ARKit和CoreLocatio...

  • ARKit Work Shop Demo

    ARKit文章: 到底有多强?苹果的增强现实框架:ARKit ARKit进阶:物理世界 ARKit进阶:材质 De...

  • ARKit -- 基础概念

    参考内容 直击苹果 ARKit 技术 到底有多强?苹果的增强现实框架:ARKit ARKit文档翻译之ARKit简介

  • 到底有多强?苹果的增强现实框架:ARKit

    相关 ARKit进阶:物理世界ARKit进阶:材质ARKit实战:如何实现任意门 写在前面 其实准备ARKit已经...

  • 苹果 ARKit 初探

    苹果 ARKit 初探 苹果 ARKit 初探

  • ARKit入门

    分享收藏关于ARKit的文章集 适合新手入门学习ARKit从入门到精通(1)-ARKit初体验ARKit从入门到精...

  • ARKit浅析篇

    在上一篇ARKit体验篇中我们体验了ARKit,这一篇主要从类出发分析下ARKit的流程。 ARKit浅析 我们知...

网友评论

    本文标题:理解ARKit

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