本文共 2760 字,大约阅读时间需要 9 分钟。
要说去年科技业最重大的消息肯定是穿戴式设备,几乎每个科技产业都是焦点,但是今年他们好像都集体沉默了~今年也就那么几款不温不火的产品发布,难道说各大厂商是在慢慢聚气,准备搞出一波更大的动静?
不过没关系!西方不浪东方浪,在科技业穿戴式设备暂时缓冲的这段时间,另一波大浪正在朝我们扑面而来!那就是 AR 限时增强技术。在不久前刚结束的 WWDC 苹果全球开发者大会上,所发布的 ARKit 让全球 iOS 开发者们对于AR技术的开发范围有了新的拓展,过去的蜀道难难于上青天的开发门槛已经风尘化云烟了无,所有的技术人员都跃跃欲试。
例如现在大家只要打开Xcode,就可以开始构建心目中的虚拟,并且将他跟现实连接在一起。
如此一来,开发者们的视野终于跳出了手机跟电脑屏幕更更多地让我们走到现实中,堪称开发界从原始社会到现代文明的重大转变!
AR系统基本具备以下三个特点:
1、真实世界和虚拟世界的信息集成;
2、具有实时交互性;
3、是在三维尺度空间中增添定位虚拟物体。
在我们的生活中应用可以说非常的广,甚至改变我们的互动还有生活方式。例如我们以前做笔记的时候是这样的↓↓
现在有了 AR 技术,学习是这样的
看到这里呢~连雅马逊这样的巨头都坐不住了!广发招聘函 AR 技术类的高级工程师快到碗里来啊!!!!!(敲筷子)
因为雅马逊正在积极的转型改变消费者的消费习惯。
例如过去我们假装有对象(哎,我为什么要“假装”?)的时候是这样的↓↓
你需要找个好基友或者把自己的“娇嫩”的右手当成女朋友,费尽心思拍一张“女友照”,但是现在,有了AR技术,我们只要一台电脑、一副AR眼镜,待在家中也可以拍出在全世界浪的情侣照。
谁说 AR 只能做游戏,只能丢丢精灵球?不久的将来在广大的消费者习惯改变上,越来越多电影中的场景逐渐变成了现实,科技界的领域也从技术着重,渐渐的往创意为王的方向迈进,我们心中都有那么一个理想的世界,当我们把梦想照进现实时,什么桃花源、什么乌蓬莱仙境,已经不是只存在教科书中的地方,人人都可以一探究竟。而且现在,这个大门已经敞开,就等你踏进来。
那么我们来试试看吧?
要做ARKit 开发我们需要最新版的 Xcode9 目前只有 bate 版本,所以我们要到苹果的开发者网站去下载https://developer.apple.com/develop/然后我们还需要一台 A9 晶片包含或是以上的设备目前市面上的有:iPhoneSE,iPhone6s,iPhone6sPlus,iPhone7,iPhone7Plus
这几台设备可以支援
都准备好了之后我们就开始吧!
在创建项目的时候我们选择要创建 ARApp
今天我們要做的是一個 3D 的效果,所以用 SeneKit來搭建我們的項目
一进来发现他已经帮我们写好了大量的代码!
但是几乎都很少见~这些是什么意思呢?
#import "ViewController.h"
@interface ViewController () <ARSCNViewDelegate>
//ARKit框架中用于3D显示的预览视图
@property (nonatomic, strong) IBOutlet ARSCNView *sceneView;
@end
首先在开头的地方,他创建了一个用于展示 3D 效果的视图
並且遵守了一個代理 ARSCNViewDelegate
往下走 我們可以看到
- (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的场景为SceneKit的当前场景(SCNScene是Scenekit中的场景,类似于UIView)
self.sceneView.scene = scene;
}
在 viewDidLoad 里面设置了代理,之后进行了信息统计,在这个地方将我们的 AR效果给展示出来,并且使用模型创建了节点。
接下来我们将需要的模型导入进去,然后将场景设置为 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效果。
apple 果然是贯彻使用者至上的准则,在一开始的时候就给我们这样方便的环境。
看到最后感觉怎么样?如果想学习更多更详细的ios的知识,想成为大神?那下面这个福利你一定不能错过。
实战效果
转载地址:http://gcxyl.baihongyu.com/