原帖地址:http://www.u3dc.com/archives/2790
这要从WWDC2017说起,概念有点多,我尽量精简一些说明白。
ARkit是什么? 话说,苹果在WWDC2017上发布的一套增强现实开发套件,然后IOS就成了世界上最大的AR平台了,关键是实现的SLAM效果还是行业顶尖水准的,也庆幸是IOS独占,不然让那些第三方做AR SDK的团队辛苦研究出来的SLAM就这样被秒了,现在至少还可以拿支持多平台说点什么。看过油管上有个小伙子测试ARkit,他在房间里放了一个3D物件,然后拿着手机在房间里转了一大圈,那个3D物件岿然不动,还在原地呆着,这定位效果真是~啧啧~
AR是什么? 英文全称:Augmented Reality,简称AR,中文意思:增强现实。简单点说,就是给已有的物体叠加显示一些细节信息,最形象的就是龙珠里的史考特眼镜,一眼看穿你的战斗力。目前在军事、医用、商业运作均有重要应用。
SLAM是什么? 全称:simultaneous localization and mapping,中文意思:即时定位与地图构建,最早于1988年由Smith、Self和Cheeseman提出,是计算机视觉研究领域的关键技术之一,这两年因为AR、MR概念的热炒又一度进入人们视线的热度榜中,简单的说,这是一项让虚拟的三维物体感知我们现实世界空间感的技术,比如我养了一直虚拟的小猫,它能与我们现实的世界进行交互,比如可以躲在我们的电脑桌下,或者跳到我们正在敲字的键盘上,细思极恐(可参考《电脑线圈》)。
Unity-ARKit-Plugin是什么? 这是Unity官方在WWDC发布会当天在bitbucket同步开源的插件型项目(Unreal也有对应的项目,当然今天先说这个)。插件的原理是把调用IOS原生的一些API功能进行了中介封装,这样你就可以直接使用Unity推荐的C#进行开发。
怎么用? 一般而言,插件都是为了快速开发而整合的接口型模块代码,一个陌生的插件到手上后,我们第一时间会先看它的测试场景样例,这是熟悉新东西的捷径,“Talk is cheap,show me the code." 当然官方在项目的ReadMe文档中也有详细的说明(英文),我整理了一下,大意如下: 【配置需求】: Unity版本需要5.6.1P1以上(补丁版本),IOS需要升级到最新的IOS11(现在问题还比较多,不建议日常使用,开发者自备开发机),Xcode也需要升级到beta 9(已包含ARkit),最后还有个硬件需求:手机必须iPhone6s以上(A9以上CPU),iPad必须是2017年款的。 插件中已经包含了四个测试场景(最新版本,我fork了一份到我github上,并同步了最新的代码)。
插件的文件中,有两个比较重要的代码文件:ARSessionNative.mm和ARSessionNativeInterface.cs,前者是Objective-C代码,也是真正的ARkit SDK的接口代码,而后者则是胶水代码,就是上面说的封装原理,C#通过ARSessionNativeInterface.cs与IOS原生代码进行通讯。
发帖长度限制,各位有兴趣到原帖观看:
http://www.u3dc.com/archives/2790
|