ARKit

首先说明下AR的本质:通过移动设备摄像头捕捉到实时画面,并在画面中插入3D虚拟图形,形成一种使得3D虚拟物体真实地展现在现实中的一种效果。比如,你可以拍摄一人在和一个动画人物在现实场景中战斗等。

苹果ARKit的本质是可以识别出摄像头捕捉到的画面中所包含的场景的坐标,重点就是坐标,在拿到场景坐标后就可以利用我们熟悉的渲染框架来插入虚拟3D物体,从而实现AR效果。需要说明的是苹果这次并不直接支持使用OpenGL渲染,下面会有详细说明。

IMG_0683.PNG

首先,苹果是如何获取场景坐标的?虽然这个技术并不直接影响我们的开发,但了解一下总是好的。其实ARKit是利用了两个部分:手机设备的移动传感器+图片视觉分析。当手机拿在用户手中时,即使是很轻微的晃动,移动传感器也可以记录下差异,并生成数据,同时视觉图片分析算法会根据每帧图片之间的差异再结合之前移动传感器获取的数据,从而计算出场景坐标。

因此上述是ARKit解决的最本质问题,也是它的核心部分。同时它还提供了一些额外的辅助功能,其中最重要的是可以实现识别出“平面”,这里需要强调的是仅仅可以识别“水平平面”,暂不支持“垂直平面”。开发者可以利用获取到的平面坐标来将3D虚拟物体添加到平面上,比如将一个桌子变成了外星人战场!如下图是发布会上的演示:

Screen Shot 2017-06-16 at 16.38.50.png

事实上对于开发者来说,最重要的是拿到坐标后渲染你的3D图形,因此涉及到了渲染框架。首先苹果提供了3个框架:Scenekit、SpriteKit、Metal2。

Scenekit是在2012年首次推出,并仅限于macOS系统,直到2014年引入到了iOS中来,Scenekit是以OpenGL作为底层基础,将其封装成了面向对象的框架。使得开发更友好,效率也更高,使用过OpenGL的开发者都知道,虽然OpenGL很强大,可控制环节更多,但是它的本质是状态机的概念,面向开发者并不好上手,并且其中包含了大量地线性代数等数学概念,但是苹果SceneKit将其封装得非常友好,也足够使用了。但是SceneKit还是支持调用OpenGL的GLSL着色器的。

SpriteKit是一个2D的渲染框架,而SceneKit是三维的。其他在框架结构上和SceneKit完全相似,因此不多做介绍。

Metal 2是Metal的第二代升级版。他是相对于OpenGL/OpenGL ES的苹果自家提供的框架,它不是跨平台的,因此只用于苹果自家系统。Metal 2提供了和OpenGL同一级别的渲染功能,相比于SceneKit,Metal 2的可控环节更多,因此也更强大。另外,Metal 2最大的特点是可提供GPU编程,可以令你的程序利用GPU来执行机器学习相关代码。

因此总结下,对于开发者来说,若不是特别精细的、要求特别高的效果,SceneKit+SpriteKit的组合就可以完成大部分效果了,从时间成本上这也是很好的选择,而需要更精准的要求,那么可以采用Metal 2来完成渲染。

另外在这多说一句自己的感受,底层如此复杂的框架,封装的既是如此简单易用,苹果真是在不遗余力地弱化程序员的存在感啊。。。

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

推荐阅读更多精彩内容