ARKit入门01

简介

增强现实技术(Augmented Reality,简称 AR),是一种实时地计算摄影机影像的位置及角度并加上相应图像、视频、3D模型的技术,这种技术的目标是在屏幕上把虚拟世界套在现实世界并进行互动。

ARKit是基于AVFoundation框架和CoreMotion框架的

所需

  1. A9以上设备 (不支持模拟器)se 6s 6sp 7 7p
  2. xcode9 bates,iOS11,xcode9

特性

  1. 追踪:追踪现实和虚拟场景
  • 全局追蹤:追踪现实场景和虚拟场景,就像真实的存在现实中
  • 视觉惯性测距VIO:肉眼看到效果,远离所需,拉近放大
  • 没有外部设置:不需要外部设备(投影仪等)
  1. 场景理解:
  • 平面监测:现实世界都是有细小的平面构成
  • 命中测试:两个物件发生接触,产生一些反应
  • 光估计:用光照的方法,让物体更逼真。比如影子
  1. 渲染
  • 简单集合:用xcode自带的可以实现渲染。SceneKit(iOS8出现、3d场景)、SpriteKit(iOS7出现,2d场景)2D、Metal(iOS7出现,不支持模拟器)
  • AR视图:ARview,物件以arView的形式出现
  • 自定义渲染:可以使用其他引擎渲染,支持(Unity、Unreal)

运行原理

相机捕捉显示世界->arkit
显示3D模型->SceneKit
通过AR回话->ARSession使两者交互

原理图

坐标

这里写图片描述

x,y,z
是以相机的位置为中心,所以轴的负值标识我们正前方,正值表示我们的后方(后脑勺)
单位是米

ARSession

  • 使用之前设置一个追踪ARSessionConfiguration(来追踪设备方向的基本配置)
  • 通过run方法启用
  • 来处理是用来管理设备相机的共享对象(AVCaptureSession)和增强现实所需的处理(CMMotionmanager)
  • 最终生成一个一个的frame展示
Arssion

基本步骤

  1. ARSCNView加载场景SCNScene
  2. SCNScene启动相机ARCamera开始捕捉场景
  3. 捕捉场景后ARSCNView开始将场景数据交给Session
  4. Session通过管理ARSessionConfiguration实现场景的追踪并且返回一个ARFrame
  5. 给ARSCNView的scene添加一个子节点(3D物体模型)

入门掌握四大基础点

  1. 几何
  2. 节点
  3. 渲染
  4. 手势

demo

  • 用到的关键类:
    • 场景视图(ARSCNView)
    • 场景(SCNScene)
    • 几何(SCNGeometry)
    • 节点(SCNNode)
    • 渲染器(SCNMaterial)
  • 如何在空间中放一个平面
    1. 创建场景视图 ARSCNView,设置代理
    2. 创建一个场景 SCNScene,给场景视图绑定场景
    3. 创建一个平面几何形状 (box,plane)
    4. 基于几何形状创建一个节点SCNNode
    5. 创建一个渲染器SCNMaterial,用其对平面几何进行渲染
    6. 添加节点到场景的根节点中

demo1

  1. 打开Xcode9bete版本,新建一个工程,选择Augmented Reality APP(Xcode9新增),点击next


    这里写图片描述
  2. 选择SceneKit


    这里写图片描述
  3. 此时,Xcode会自动为我们生成一段极其简洁的AR代码
    效果图后面补上

demo2

 override func viewDidLoad() {
        super.viewDidLoad()
        
        // Set the view's delegate
         //1.设置场景代理
        sceneView.delegate = self
        
        // Show statistics such as fps and timing information
        sceneView.showsStatistics = true
    
        //2.创建场景
        let scene = SCNScene()
        //3.创建几何
        let box = SCNBox(width: 0.1, height: 0.1, length: 0.1, chamferRadius: 0)
 
        //4. 渲染  渲染器可以决定怎样渲染,这个 contents属性可以设置很多东西,UILabel, UIImage,甚至 AVPlayer都可以
        let material = SCNMaterial() //
        material.diffuse.contents = UIColor.red
//        material.diffuse.contents = UIImage(named: "brick.png")
      //5.对几何进行渲染
        box.materials = [material]

//       6. 创建节点
        let boxNode = SCNNode(geometry: box)
//       7.设置节点位置
        boxNode.position = SCNVector3(0,0,-0.2)
//       8. 把节点放到根节点上
        scene.rootNode.addChildNode(boxNode)

        sceneView.scene = scene

    }

这样就能我们面前就有一个红色的长宽高都是0.1m的正方体盒子

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 156,069评论 4 358
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 66,212评论 1 287
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 105,912评论 0 237
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,424评论 0 202
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 51,741评论 3 285
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,194评论 1 206
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,553评论 2 307
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,289评论 0 194
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 33,923评论 1 237
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,251评论 2 240
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 31,775评论 1 255
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,144评论 2 249
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 32,698评论 3 228
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 25,936评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,658评论 0 192
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,214评论 2 267
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,159评论 2 258

推荐阅读更多精彩内容