美文网首页
ARKit初识浅谈

ARKit初识浅谈

作者: ihere洋 | 来源:发表于2017-09-03 17:32 被阅读0次

AR全称Augmented Reality(增强现实),是一种将虚拟3D场景加入到由摄像机捕捉到的3D现实场景当中的技术。AR是借助于AVFoundation和CoreMotion来实现这一效果的。
分为两个步骤来实现:

  • 1.相机捕捉现实世界图像(由ARKit来完成)
  • 2.在图像中现实3D模型(由Scenekit来完成)

实现原理:
1.ARCamera用相机捕捉真实世界图像,ARSCNView将相机捕捉到的界面图像作为3D场景,他们两者之间通过ARSession连接起来的。而ARSession需要指定一个为会话追踪配置的对象ARSessionConfiguration,我们使用其子类ARWorldTrackingConfiguration来跟踪设备的方向和位置,以及检测设备摄像头看到的现实世界的表面。当ARWorldTrackingSessionConfiguration计算出相机在3D世界中的位置时会交给ARSession去管理,该位置是一个类ARFrame,ARSession有对应的属性currentFrame。
2.ARSCNView继承于SCNView,SCNView是来显示3D场景的,SCNView又继承于UIView。SCNView有个类型为SCNScene的属性scene表示3D世界的场景(万物皆是Scene),SCNScene有个根节点类型为SCNNode的rootNode,任何3D模型都可看作成一个节点然后添加到根节点,这样就可以在3D场景中显示该3D模型了。结构图如下:


1798026-50bbc2f9a06fb069.png

相关代码如下:

override func viewDidLoad() {
        super.viewDidLoad()
        // 设置代理
        sceneView.delegate = self
        // 显示数据
        sceneView.showsStatistics = true
        //创建场景
        let scene = SCNScene()
        //创建球体模型,半径为0.1米
        let sphere = SCNSphere(radius: 0.1)
        //为模型添加渲染器
        let material = SCNMaterial() 
        material.diffuse.contents = UIImage(named: "earth.jpg")
        sphere.materials = [material]
        //创建节点
        let sphereNode = SCNNode(geometry: sphere)
        //设置节点的位置
        sphereNode.position = SCNVector3(0,0,-0.5)
        //添加到场景的根节点上
        scene.rootNode.addChildNode(sphereNode)
        sceneView.scene = scene
    }
    override func viewWillAppear(_ animated: Bool) {
        super.viewWillAppear(animated)
        let configuration = ARWorldTrackingConfiguration()
        //启动会话
        sceneView.session.run(configuration)
    }
    override func viewWillDisappear(_ animated: Bool) {
        super.viewWillDisappear(animated)
        //停止会话
        sceneView.session.pause()
    }

效果如下:


CC211523FACD6914778A55FF5F90D337.jpg

相关文章

  • ARKit初识浅谈

    AR全称Augmented Reality(增强现实),是一种将虚拟3D场景加入到由摄像机捕捉到的3D现实场景当中...

  • 初识 ARKit

    初识ARKit AR技术叫做虚拟增强现实,通过摄像头捕捉到现实世界的图片然后显示一个虚拟的3D模型 什么是ARKi...

  • ARKit:初识AR

    第一次写简书,鉴于ARKit网上相关资料比较少,写一套实战教程,希望能帮到需要的人吧。表达能力捉急,写的不好的请留...

  • ARkit连载一之初识ARkit

    AR技术 增强现实(Augmented Reality,简称 AR),是一种实时地计算摄影机影像的位置及角度并加上...

  • 初识ARKit iOS卷

    首先介绍几个经常出现的类 ARSCNView ARSession ARWorldTrackingConfigura...

  • 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简介

  • 0x01 - ARKit 初识

    ARKit 和 CoreML 苹果公司2017年6月 WWDC 推出的全新内容, 移动的 AR 配合机器学习会有很...

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

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

网友评论

      本文标题:ARKit初识浅谈

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