AR,离我们并不遥远

摘要 AR,增强现实,这项技术离我们并不遥远。从AR游戏到AR红包,我们已经开始体验到这项技术的魅力,而AR在商业方面也已经开始崭露头角。这场演讲将从团队构成、迭代流程、设备、开发工具、技术、以及项目各环节的注意点和优化等方面,为您带来一场基于Unity平台打造AR商业应用的旅程。

视频内容

头脑风暴

真实的情境

AR项目的头脑风暴一定要在真实情境中去做,因为AR应用是基于现实基于情境的。

只有在真实使用的情境中才能发掘信息,去进行需求收集、用户访谈、用户流程、创意产生等等的这一系列流程。

设备

根据场景需求,基于设备和设备所能提供的API选择设备。

我们的应用可以是2C,供消费者自己使用;可以是2B,在商业环境中给工作人员用;也可能是2B2C,需要工作人员指导消费者在商业场里景使用。

设备可以大致分为手机AR和头戴式AR两大类。

手机AR是用手机摄像头捕捉到真实世界的景象,并在上面叠加虚拟的物品呈现出的AR。

头戴式AR是一个穿戴设备。比如微软推出的HoloLens设备,他们和各行业企业合作推出了很多AR范例应用。

考虑设备能力

内容要由合适的设备来承载和展现。

渲染能力:设备是否具备我们需要的场景复杂度的需求;

续航时间:产品是短时间的应用还是长时间的应用,使用频率是怎样的;

网络能力:是否需要联网;

在室内还是室外;

场景的规模有多大……

这些都是我们需要考虑的方面,为优化做准备。

原型

纸盒原型

我们用一些纸盒、乐高或者是真实的物品代替,在真实的3D空间、实际场景中做实验,检测我们的原型设计是否可用有效,用户使用是否方便。

交互设计

设计师与程序员合作,使用几何模型(而不是高精度模型)进行开发实验。

这个阶段还要进行交互范式探索。

最后产出故事板,借助故事板来描述3D的情景。

设定优化目标

为场景和设备设定合适的优化目标和指标,要考虑的是帧率、内存消耗、耗电量和设备温度等等。

高保真设计

设计工具

高保真设计会用到一些设计工具,比如用3DS Max、Maya、Blender进行模型的制作和动画,Substance用来做材质纹理,等等。

制作适合设备的素材

素材中在场景中渲染出来后看不见的面,可以去掉,降低渲染的损耗。

控制点和面的数量,超过限制性能会降低很多。

拆分大的素材,没被看见的部分就不用渲染。

开发

Unity

我们的开发平台选用Unity 3D引擎。它的出身是一个游戏引擎,在当前AR、VR飞速发展的环境下,它已经一个通用的3D开发平台,可以适配到超过30个平台做构建,在AR、VR方面,Unity占的份额非常高。

设备API丨开源工具库

开发是基于设备API去做的,利用开源工具库丰富我们可以提供的其它功能。

用户输入输出

输入一般会用到注视和手势。在手机VR上的视角中心有一个点,这个点会跟随用户头部的移动而移动。从AR技术实现上,我们会在用户的视角中间打一个光束,和它交叉的点就是光标所在的位置。利用那个点去跟所选取到的虚拟物品进行交互,交互的方法就是用手势,如果是基于手机上的AR app,我们会用屏幕点击来进行。

输出方面物体的渲染交给Unity去做,构建虚拟场景,然后把虚拟的物品渲染出来。除了视觉上的物体渲染,还需要有听觉上的感受。空间声音就是很重要的一方面。空间声音就是声音具有空间感,使用户体验感受更加真实。

环境空间感知

这是AR区别于VR的地方,它会和真实世界结合起来,把虚拟世界变为现实世界。分为空间建模、空间分析理解以及图像和物体识别。

空间建模:如图可见,用户所在空间被扫描叠加了一层建模的样子,是通过设备传感器所做到的。建模可以被渲染出来,它的渲染和物理部分是分开的。图中渲染后用不同颜色表现出距离信息。建模包含了物理信息,它有一个碰撞机,能让虚拟物品叠加上去。

空间分析理解:建模后拿到模型,经过空间分析理解可以知道哪里是地面、哪里是墙、哪里是天花板。

图像和物体识别:图像和物体识别可以用第三方服务做到,比如Vuforia,开源的ARToolkit,等等。识别出来后再进行叠加处理。

AI:AI服务完全可以融入AR应用中,为AR增添色彩。例如微软、谷歌、IBM的服务,都可以通过接口的方式把数据传输给它们处理,再拿回来进行使用。这样AR的服务就可以做到语音识别和对话,UI不再是一个对话列表,而是可以真的有一个虚拟人在和用户进行交流。

共享协作:根据场景需求,与相同或不同设备协同合作。可以与其它设备做到同步的交互,也可以头戴设备与平板结合做演示,远程控制用户的体验。

代码管理与协作开发:Git是我们常用的。Github for Unity是直接放在Unity里的一个插件,进行图形化的管理。Unity也推出了服务Collaborate。

Unity和代码优化:首先要做Unity player settings和quality settings,不同设备需要不同的设置。根据应用内容设置摄像机的clipping plane,避免过多渲染。设置stabilization plane,添加spatial anchor,增加稳定性。放置物体在合适的位置,观看舒适度更高。把spatial mapping的精度降低到Low。写着色器,或者使用HoloToolKit之中的着色器。使用draw call batching和instancing,一次性渲染多个对象。使用纯GPU绘制大量的物体。

测试

Unity Test Runner

Unity Test Runner是Unity集成的工具。Edit mode用于做unit test,play mde可做integration test。要注意Undo或在新场景中测试。

Unity 中预览

可以在Unity中直接进行预览。在editor中有一些预设的空间模型可以预览,也可以远程连到你的设备。

监视数据

帧率一定要保证在60帧或者以上,如果低于60帧可能会产生抖动或者不稳定,用户会感到晕眩。

HoloLens上内存如果超过900兆会被直接关掉,也是我们需要关注的问题。

耗电量取决于应用的强度和帧率。

设备温度要关注的是环境处于室内还是室外,还有使用时间等因素都和温度有着密不可分的关系。这对用户的舒适度会有很大影响,尤其是头戴式AR设备,如果设备温度过高,用户体验会很差。

本地构建

部署到模拟器,再部署到设备上进行使用。

CI/CD

用Jenkins启动Unity命令行工具,可直接使用Unity的接口。可以用Unity的Unity Cloud Build服务,构建手机应用。

迭代循环

迭代循环的流程是头脑风暴-原型设计-高保真设计-开发-测试-部署,最重要的是优化。

我今天的演讲就到这里,谢谢大家。

原文发布于微信公众号 - IT大咖说(itdakashuo)

原文发表时间:2017-08-16

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏IT派

AI工程师为什么要了解架构?

为什么AI工程师要懂一点架构? AI 时代,我们总说做科研的 AI 科学家、研究员、算法工程师离产业应用太远,这其中的一个含义是说,搞机器学习算法的人,有时候会...

2963
来自专栏人工智能头条

为什么 AI 工程师要懂一点架构?

1974
来自专栏Keegan小钢

006 | 我是如何写作的

今天再免费放出一篇专栏文章,因为我想推荐更多人开始写作。另外,多点下文后的广告吧,就当是给我的稿费。

781
来自专栏架构师小秘圈

为什么说21世纪是一场ABC的革命?

作者:刘超,毕业于上海交通大学,15年云计算领域研发及架构经验,先后在EMC,CCTV证券资讯频道,HP,华为,网易从事云计算和大数据架构工作。

1173
来自专栏新智元

Google 全面转向人工智能,机器学习高管接管搜索引擎

2016年2月4日,Google 搜索业务负责人 Amit Singhal 即将退休,公司机器学习业务高管 John Giannandrea 将接任其职位。 A...

3557
来自专栏AI科技大本营的专栏

跨界 | 隐形AI与设计

作者 | 卢智雄 作为一个设计师,我对现在的AI浪潮的态度起初是:听起来很棒,但跟我这个设计师有什么关系呢? 我对所有的趋势保持谨慎态度,何况现在媒体鼓吹的人工...

3469
来自专栏CDA数据分析师

资深玩家分享 | Excel要这样学!

文 | 傲看今朝 CDA数据分析师已获得授权 今天我非常乐意与大家分享我学习EXCEL的经历,以及我在这个学习的过程当中所使用的一些学习方法,我希望我所分享的这...

2057
来自专栏钱塘大数据

终于有人把云计算、大数据和人工智能讲明白了!

导读:云计算、大数据和人工智能,这三个东西现在非常火,并且它们之间好像互相有关系:一般谈云计算的时候会提到大数据、谈人工智能的时候会提大数据、谈人工智能的时候会...

1734
来自专栏IT派

云计算、大数据和人工智能这么火,究竟是什么关系?

今天跟大家讲讲云计算、大数据和人工智能。为什么讲这三个东西呢?因为这三个东西现在非常火,并且它们之间好像互相有关系:一般谈云计算的时候会提到大数据、谈人工智能...

2480
来自专栏AI科技大本营的专栏

创新工场王咏刚:为什么 AI 工程师要懂一点架构?

AI 时代,我们总说做科研的 AI 科学家、研究员、算法工程师离产业应用太远,这其中的一个含义是说,搞机器学习算法的人,有时候会因为缺乏架构(Infrastru...

2997

扫码关注云+社区