ARKit Beta

前言

     今年6月5日的苹果WWDC 2017全球开发者大会上,苹果发布了AR开发框架ARKit。苹果凭借庞大的iOS用户群,ARKit一举成为最大的AR开发平台,作为iOS开发者之一,兴趣爱好使然,自己看了 beta版Documentation ,结合一些帖子,自己写了笔记;(介绍延伸:《苹果拥抱AR/VR 全球最大AR平台诞生》)

cover.jpg

简介

我一开始对 VR/AR/MR 傻傻分不清楚,只知道这玩意儿炒的很火,未来也很有市场,只知道有这玩意儿,不太理解他们的应用场景,👇看一下他们的定义;

VR、AR、MR定义:

1. VR ( Virtual Reality )

      虚拟现实(Virtual Reality,简称VR,又译作灵境、幻真)也称灵境技术或人工环境。虚拟现实是利用电脑模拟产生一个三维空间的虚拟世界,提供使用者关于视觉、听觉、触觉等感官的模拟,让使用者如同身历其境一般,可以及时、没有限制地观察三度空间内的事物

2. AR ( Augmented Reality ) 

      增强现实(Augmented Reality,简称AR),也被称之为混合现实。它通过电脑技术,将虚拟的信息应用到真实世界,真实的环境和虚拟的物体实时地叠加到了同一个画面或空间同时存在。

3. MR (Mix reality)

      混合现实(Mix reality,简称MR),既包括增强现实和增强虚拟,指的是合并现实和虚拟世界而产生的新的可视化环境。在新的可视化环境里物理和数字对象共存,并实时互动。系统通常采用三个主要特点:1. 它结合了虚拟和现实;2. 在虚拟的三维(3D注册); 3. 实时运行。


准备

设备:ARKit 目前仅支持 A9及以上处理器的 iOS 设备,如没有请自行购买😆 ;

软件:开发必备 iOS 11 Beta / Xcode 9 Beta (PS: 升级有风险,升完就慢,吾已试);


开始

    万事俱备,创建新的项目吧,首先打开我们下载的变态版(最新Beta 4)的 Xcode 9,Create a new Xcode project—>Augmented Reality App

Create new project
content Technology config.jpg

       选择 Content Technology 默认选项选择了 “SceneKit”,点击下拉列表。

       选项有 “SceneKit”、“SpriteKit”、“Metal”,SpriteKit它是用来做2D渲染引擎框架, “SceneKit”,它是3D渲染引擎框架,Meta它是一个支持GPU加速的3D绘图APIl。选择Augmented Reality App时候,默认选择就是Scenekit;


运行

题外话:Xcode 9 提供了Connent via nework 功能,目前ARKit就使用的该功能调试的,安装速度真的不敢恭维,不过毕竟新功能,体验一下也很好的!

Connent via nework.jpg

       OK,下面开始,运行项目不用做任何修改,直接Command + R,先体验一把Demo的效果😆

✈️.jpg

     上面也解释了AR概念,其实它就是现实场景和虚拟场景的结合,所以基本都需要摄像头,在摄像头拍摄的画面基础上,结合虚拟画面(✈️)进行展示和互动,你可以进行移动旋转全方位的看✈️的每个细节,后面会解释虚拟和现实坐标的联系;


项目结构

项目结构.jpg

    art.scnassets(资源包),这里就是咱们上面运行所用的素材文件夹,.scn 是3D绘图,当然想图省事儿的,可以让你的UI朋友帮忙出点好看的复杂的绘图,如果做简单的自己就可以使用SCNScene 绘制就好,👇会简单介绍该类;


ARKit && SceneKit

 ARKit核心类ARSCNView / ARSKView / ARSession / ARWorldTrackingSessionConfiguration 等等等

    1.  ARSCNView:  它用 SceneKit 渲染的 3D 内容来增强实时摄像头视图。它在视图中渲染设备摄像头的实时视频流,并就其设置为 3D 场景的背景,ARKit 的 3D 坐标系会匹配 SceneKit 的 3D 坐标系,所以此视图渲染的对象会自动匹配增强后的 ARKit 世界视图,自动移动虚拟 SceneKit 3D 摄像头来匹配 ARKit 追踪到的 3D 位置,所以不需要再写代码连接 ARKit 移动事件与 SceneKit 3D 渲染。

    2. ARSKView: 它用 SceneKit 渲染的 2D 内容来增强实时摄像头视图,提供2D虚拟画布,在创建Xcode的时候选择SpriteKit引擎,这里就不介绍它了,想了解请点击

    3.  ARSession:每个增强现实会话都都需要有一个 ARSession 实例。它负责控制摄像头、聚合所有来自设备的传感器数据等等以构建无缝体验。

   4.  ARWorldTrackingSessionConfiguration: 这个类会告诉 ARSession,在真实世界中追踪用户时需要使用六个自由度,roll、pitch、yaw 以及 X、Y、Z上的变换。如果不用这个类,就只能创建在同一个点旋转查看增强内容的 AR 体验。有了这个类,就可以在 3D 空间里绕着物体移动了。如果你不需要在 X轴、Y轴、Z轴上的变换,用户就会在投影增强内容时保持在固定位置,这时可以用 ARSessionConfiguration 类替代此类来初始化 ARSession 实例。

这次咱们只介绍三个类:ARSCNView / ARSession / ARWorldTrackingSessionConfiguration,打开项目,查看viewController 可以看到在 viewWillAppear 方法中初始化了 ARSession 实例,sceneView 指向一个 ARSCNView 实例; 我们可看到 使用SCNScene加载.scn场景文件进来,赋值给sceneView.scene,并通过sceneView.session运行起来;

code.jpg

我们可以翻一下ARKit && SceneKit frameWork, 这时候你就发现 ARSCNView继承与SCNView,而SCNView SceneKit库中的类,下面继承关系


练手

       如果没有素材的话,咱们就系统提供的ship.scn进行学习,我这里在网上找了一个了素材,上面讲的是new project 选择 AR app , 我们可以也可以选择创建一个 Single View app , 来实现添加 AR场景;

  因为我们是手动穿件的AR环境,系统不会给我们创建默认该有的一些文件夹和资源,那么我们就需要自己搭建,要搭建三个对象:ARSCNView(一旦创建,系统会帮我们创建一个场景Scene和相机),ARSession(开启AR和关闭AR都是靠它),ARSessionConfiguration(少了会话追踪配置,AR会话是无法独立工作的)


效果(很low - 学习阶段)

目前只做了拿到资源文件,摆放到制定位置,后期会做一些特效,比如说拖动以及场景应用

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

推荐阅读更多精彩内容