美文网首页
ARKit简单Demo

ARKit简单Demo

作者: Yana_Lin | 来源:发表于2019-03-03 20:27 被阅读0次

ARKit

官网介绍地址
官网文档地址

运行版本

iOS 11.0+
xcode 10.0+

1.新建并运行官方自带的demo

XCode : File --> New --> Project --> Augmented Reality App


Screen Shot 2019-03-01 at 10.10.47 AM.png

查看工程,会出现一个art.scnassets 目录,这目录下的 .scn文件就是展示的3D模型,.png是模型对应的贴纸。
连接设备,直接运行就可以先看到如下


WechatIMG218.jpeg

3.代码查看

- (void)viewDidLoad {
   [super viewDidLoad];
  // 实现 ARSCNViewDelegate 的delegate
   self.sceneView.delegate = self;
   // 显示控制台,默认值是NO
   self.sceneView.showsStatistics = YES;
   //  new 一个新的模型
   SCNScene *scene = [SCNScene sceneNamed:@"art.scnassets/ship.scn"];
   // 显示模型
   self.sceneView.scene = scene;
    }

- (void)viewWillAppear:(BOOL)animated {
    [super viewWillAppear:animated]; 
    // 创建 session 摄像头配置
     ARWorldTrackingConfiguration *configuration = [ARWorldTrackingConfiguration new];
    // 运行ARSession
    [self.sceneView.session runWithConfiguration:configuration];
}

- (void)viewWillDisappear:(BOOL)animated {
  [super viewWillDisappear:animated];    
  //停止ARSession
  [self.sceneView.session pause];
}

这就是Apple提供的简单的ARKit Demo,那现在我们不需要他的demo,需要运行自己的3D模型呢。

2.加载本地3D模型文件

 首先需要有3D模型文件,文件可以是.obj,.dae,.scn等等,此项文件来自此网站[3D模型文件](https://free3d.com/3d-models/characters?page=3)
一:在项目目录中通过Add File将需要显示的.obj文件添加到项目中,Stick_Figure_by_Swp.obj 文件为需要显示的模型
Screen Shot 2019-03-03 at 5.05.43 PM.png
二:利用storyboard简单构建整个如图层级
Screen Shot 2019-03-03 at 7.52.48 PM.png
三:代码加载3D模型
ShowObjViewController 复制加载显示模型,具体代码如下:
  - (void)viewDidLoad {
       [super viewDidLoad];
      //获取文件url
      NSURL *url = [[NSBundle mainBundle] URLForResource:@"Stick_Figure_by_Swp" withExtension:@"obj"];
      // new SCNReferenceNode 是用来从场景文件中加载node
      SCNReferenceNode * cunstomNode = [SCNReferenceNode referenceNodeWithURL:url];
      [cunstomNode load];
      //new 需要显示的元素
      SCNNode *scnNode = [[SCNNode alloc] init];
      [scnNode addChildNode:cunstomNode];
      //设置 node的scale
      [scnNode setScale: SCNVector3Make(0.05,0.05,0.05)];
      //设置delegate
      self.sceneView.delegate = self;
      //设置显示控制台
      self.sceneView.showsStatistics = YES;
      // 场景添加显示节点
      [self.sceneView.scene.rootNode addChildNode:scnNode];
}

 -(void)viewWillAppear:(BOOL)animated{
      [super viewWillAppear:animated];
      ARWorldTrackingConfiguration *configuration = [ARWorldTrackingConfiguration new];
      [self.sceneView.session runWithConfiguration:configuration];
}

  -(void)viewWillDisappear:(BOOL)animated{
      [super viewWillDisappear:animated];
      [self.sceneView.session pause];
 }
四:连接设备,运行项目就可以显示加载的3D模型了。
IMG_1055.PNG

3.obj文件转scn文件

操作步骤:
  一:复制一份.obj文件,选中文件
  二:XCode -- Editor -- Convert to SceneKit scene file format (.scn)  
  三:弹出对话框,点击Convert
  四:将转换后的Stick_Figure_by_Swp_scn.scn文件,拖到到 【art.scnassets】中
  五:ShowScnViewController 实现模型显示
  六:连接设备,运行,显示。

具体可以查看demo GitHun地址
参考地址

相关文章

  • ARKit简单Demo

    ARKit 官网介绍地址官网文档地址 运行版本 1.新建并运行官方自带的demo XCode : File -->...

  • 简单的ARKit demo

    首先创建一个空项目。 一切从最初开始。我是这么想的,当然你也可以选择隔壁的AR 项目开始创建~~~ ViewCon...

  • ARKit识别平面-Objective-C

    简单的ARKit的Demo,网上很多,包括Xcode自建的AR项目也可以直接实现一个飞机效果的Demo,不在赘述基...

  • ARKit Demo

    来源:https://www.jianshu.com/p/396a0d1c16f9 创建项目时,选择Augment...

  • ARKit 学习礼记

    ARKit demo传送门 持续优化更新中... ARKit 简介 增强现实技术(Augmented Realit...

  • ARKit功能demo

    ARKit点击屏幕增加文字 ARKit点击屏幕增加3D模型 ARKit检测到平面自动增加3D模型 QuickLoo...

  • ARKit 在你眼前显示一个真实的月球

    一个ARKit的简单demo,实现的是显示一个3D月球的效果。 简单说一下代码吧 完整代码在git:https:/...

  • 最火热的AR demo集合

    最火热的AR demo集合https://github.com/olucurious/awesome-arkit

  • SceneKit(1): 解析 WWDC2017 ARKit D

    在WWDC2017上,苹果推出了ARKit,在介绍完基本概念和用法后,演示了一个很小的 demo,虽然比较简单,但...

  • ARKit 最简单的一个Demo

    AR最简单的一个Demo 参考了苹果官网关于搭建一个最基本的AR效果,然后这里把demo讲一下,由于有很多概念没有...

网友评论

      本文标题:ARKit简单Demo

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