前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >AR,离我们并不遥远

AR,离我们并不遥远

作者头像
IT大咖说
发布2018-04-03 16:59:04
1K0
发布2018-04-03 16:59:04
举报
文章被收录于专栏:IT大咖说IT大咖说

摘要 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服务,构建手机应用。

迭代循环

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

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

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2017-08-16,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 IT大咖说 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
语音识别
腾讯云语音识别(Automatic Speech Recognition,ASR)是将语音转化成文字的PaaS产品,为企业提供精准而极具性价比的识别服务。被微信、王者荣耀、腾讯视频等大量业务使用,适用于录音质检、会议实时转写、语音输入法等多个场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档