首页 >营销推广

ARKit技术实战峰会

2017-06-15 19:08 编辑: 四门三连 分类:营销推广 来源:

ARKit技术实战峰会

由研究AR开发技术多年的神秘大咖直播分享

峰会时间:6月16日(本周五)20:30至23:00

QQ图片20170615151326.jpg

888.jpg

互联网的浪潮总是一波未平,一波又起。从 PC 互联网到移动互联网,从云计算到大数据,从机器学习到人工智能,现在是 AI 的天下。整个朋友圈的人要么絮絮叨叨琢磨怎么学习机器学习,要么聚一堆探讨如何使用人工智能。还有程序员说咱们写了程序替代自己写程序然后就失业了,也算得偿所愿。总之,这是个言必称 AI 的时代。一代新人换旧人,大家不要忘了,就在2016年以前,VR 和 AR (虚拟现实和增强现实)技术的火热程度不亚于现在的人工智能。神秘的 Magic Leap 通过一款 AR 视频迎来了巨头的投资又被质疑为骗局,Pokémon Go 让大家抓腻了精灵和妖怪之后也归于沉寂。雷声之后,并没有下几滴雨。VR 和 AR 就这样如过眼云烟了吗?显然不是这样。

一个技术浪潮未能汹涌澎湃的原因无外乎这么几个原因:

1、没有形成多点开花、齐头并进的应用突破,场景狭窄,应用寥寥,很容易形成审美疲劳。

2、没有统一的技术标准和应用设备,开发成本像一道高墙,把产品和研发的创意挡到了墙外。

3、设备不够便携,如果每个应用都需要配合一个沉重的头盔,注定是个玩具而无法普及。

苹果在 2017 WWDC 发布的 ARKit 配合上亿部的 iOS 设备,差不多把这些问题全部解决了。苹果这家手握巨量现金储备的科技巨头特别有意思,在一个技术浪潮到来初期从不发声,也不会发布 beta 类型的产品,而是认准一个方向,关起门来砸人砸资源冷冷的研发,然后「冷不丁」捧出一个成形的产品,说用吧客官,这才是真正的产品。ARKit 就是这样一款技术产品,甚至,在苹果没怎么提及 AI 的情况下,这次大会还发布了 Core ML 深度学习框架,基于 Metal 技术,Core ML 可以充分利用 iOS 设备的 GPU 性能进行机器学习,而不是把数据发回到服务器端。

什么是 ARKit?这是一个全新的增强现实框架,它允许开发者轻松地为 iOS 设备 创建无与伦比的增强现实体验。通过将虚拟对象和虚拟信息同用户周围的环境相互融合,ARKit 使得 App 跳出了屏幕的限制,他们开始以全新的方式与现实世界进行交互。ARKit(包括 Core ML)将把 iOS 开发者带到一个更为广阔的天地,我预测这个职业会重新焕发出勃勃生机。

AR 系统可以创建并追踪现实空间和虚拟空间之间的关系,现实空间是用户所处的世界,虚拟空间是针对可视化内容进行建模的世界。当 AR 应用将这些虚拟内容与实时视频结合一起显示的时候,用户就可以体验到所谓的「增强现实」:虚拟内容成为了真实世界的一部分,尽管这只是「错觉」而已。总结一下,AR 系统一般具备以下三个特点:

1、真实世界和虚拟世界的信息集成;

2、具有实时交互性;

3、在三维尺度空间中增添定位虚拟物体。

关于 ARKit 的实现原理,可以阅读 https://developer.apple.com/arkit/

111.jpg

ARKit 能帮我们做什么呢?肯定不仅仅是玩游戏抓精灵,普及的 AR 能够改变我们的工作学习和生活方式,比如天猫就基于 AR 技术进行了非常具体的应用,从互动营销扩展到日常的购物体验,全部有 AR 的影子(参考「不会做动画的前端不是好开发」)。以前我们做读书笔记可能是这样的:

222.jpg

有了 AR 技术,我们的学习可能是这样的:

333.jpg

随着 AR 技术的普及和人们生活习惯的改变,越来越多未来电影中的场景会变成现实,科技与创意会为人类打造一个全新的世界,梦想照进现实时,桃花源、蓬莱仙境、古罗马战场、角斗士,这些只存在于小说和课本中的场景,我们都可以一探究竟。现在这个?门已经敞开了一个口,你是准备继续观望还是去挑战这个增强现实?

如何基于 ARKit 构建一个最简单的 AR App 呢?下载最新的 XCode 9 beta,有一台具备 A9 芯片的 iOS 设备(iPhoneSE iPhone6S iPhone6SP iPhone7 iPhone7P)就可以了。

我们来创建一个项目,创建项目的时候选择 Augmented Reality App:

444.jpg

用 SeneKit 来做一个3D 效果,语言选择 Objective-C:

555.jpg

项目创建好之后,你会发现 XCode 已经为我们写好了很多代码,还有自带的 3D 模型: 

666.jpg   

#import "ViewController.h"
@interface ViewController () //ARKit 框架中?于 3D 显示的预览视图 
@property (nonatomic, strong) IBOutlet ARSCNView *sceneView;
@end

在 ViewController 中,系统基于代理 ARSCNViewDelegate 创建了一个用来展示 3D 效果的视图

- (void)viewDidLoad { [super viewDidLoad];
    // Set the view's delegate 
    //设置代理
    self.sceneView.delegate = self;
    // Show statistics such as fps and timing information 
    //ARKit 统计信息
    self.sceneView.showsStatistics = YES;
    // Create a new scene 
    //使?模型创建节点(scn 是?个基于3D建模的文件,使用 3DMax 软件可以创建,这?系统有?个默认的 3D 飞机) 
    SCNScene *scene = [SCNScene sceneNamed:@"art.scnassets/ship.scn"];
    // Set the scene to the view 
    //设置 ARKit 的场景(SCNScene 是 Scenekit 中的场景,类似于 UIView)
    self.sceneView.scene = scene;
}

在函数 viewDidLoad 中,进行代理设置,并将统计信息设置为 YES,然后导入模型,把模型场景设置为 SceneKit。

- (void)viewWillAppear:(BOOL)animated { 
    [super viewWillAppear:animated];
    // Create a session configuration 
    //创建?一个追踪设备配置(ARWorldTrackingSessionConfiguration 主要负责传感器追踪手机的移动和旋转) 
    ARWorldTrackingSessionConfiguration *configuration = [ARWorldTrackingSessionConfiguration new];
    // Run the view's session 
    // 开始启动 ARSession 会话(启动 AR) 
    [self.sceneView.session runWithConfiguration:configuration];
}

在 viewWillAppear 方法中 ,创建了一个追踪设备的配置,监测手机的移动与旋转,启动 AR。

- (void)viewWillDisappear:(BOOL)animated { 
    [super viewWillDisappear:animated];
    // Pause the view's session 
    // 暂停 ARSession 会话 
    [self.sceneView.session pause];
}

在 viewWillDisappear 方法中增加 AR 效果暂停的代码,也就是画面消失,停止 VR 功能。

好了,不用写什么代码,连接上你的手机(iOS11),看看效果吧。


如果你想更多更快的掌握 AR 技术在现实生活中的应用,想成为 AR 技术开发的受益者,文章不白写,再推荐一个 ARKit 技术实战峰会。

使用 QQ 或微信扫描下方的二维码,即可加入。

777.jpg



搜索CocoaChina微信公众号:CocoaChina
微信扫一扫
订阅每日移动开发及APP推广热点资讯
公众号:
CocoaChina
我要投稿   收藏文章
上一篇:TensorFlow 技术主管:TensorFlow 团队如何管理开源项目
我来说两句
发表评论
您还没有登录!请登录注册
所有评论(0

综合评论

相关帖子

sina weixin mail 回到顶部