打印本文 关闭窗口 | |
如何用AR技术从零到一做一个有趣的App | |
作者:佚名 文章来源:本站原创 点击数 更新时间:2018/8/20 4:12:22 文章录入:admin 责任编辑:admin | |
|
|
手艺雷达是ThoughtWorks每年出品两期的手艺趋向演讲,一般来说大师看到的雷达都是文档形式,此中有一张手艺全景图,以及每个手艺点的成熟度阐发。而AR手艺雷达就是在原始文档的根本上,操纵AR手艺将其立体化呈现,并在此中添加互动元素。 手艺雷达不断以来都是文档的形式呈现,若是能通过包含在内的最新手艺呈现出来,岂不是更能表现手艺雷达的意义。同时也能添加手艺雷达的交互和科技感。XR Community作为AR/VR等手艺的摸索者,AR手艺雷达是我们社区内部产物的第一步测验考试。我们也不晓得为什么,就是想做AR Tech Radar。 目前市道上能做AR的手艺有良多,根基上每家大公司都有本人的AR手艺。为什么我们会选择ARKit呢?(ARKit是苹果做AR软件开辟的一个东西,使开辟者能为iOS设备开辟加强现实使用。) 之所以选择ARKit一个很主要的缘由就是懒,只想选一个进修成本比力低的手艺。 其实AR手艺强依赖于承载它的硬件,所以选择AR手艺其实就是在选择硬件平台。我们期望能利用一个普遍的平台,让AR手艺雷达被更多的人接触到。目前AR硬件平台利用最普遍,也最容易让用户接触到的就是iOS,所以我们选择了ARKit。 ARCore,它是Google推出的运转在Android上的手艺,但目前只要几款顶配的Android手机能够运转。Hololens,它是微软的AR眼镜,采办成本较高,很难被通俗用户接触到。Unity,它支撑iOS和Android跨平台。 那为什么我们没有选择在unity长进行AR开辟,让它同时支撑iOS和android呢?一个缘由是ARKit和ARCore是才出来的新手艺,它在unity上的兼容性和利用上必定有良多未知的坑,我们期望利用比力不变的平台。别的一个缘由是,我们期望测验考试用原生开辟,以便更深刻的体验AR开辟的过程。此后我们会测验考试利用例如unity等东西进行开辟,然后和原生开辟做一个对比。 ARKit是苹果的手艺,言语首选是Swift。 硬件需要支撑ARKit的一台Mac和一部iOS设备。由于ARKit不支撑模仿器运转,所以必需利用真机进行全程的开辟调试。 开辟软件是Xcode。 做AR开辟需要有两部门预备,一部门是本身的编程,别的一部门就是3D建模和空间相关的学问。编程不必多说,只需会Swift就能起头。3D建模不是我们的长项,所以前期我们做了良多查询拜访,好比本人利用3D建模软件做一个雷达模子,或者去采办别人做好的雷达模子,或者外包给第三方公司做一个3D模子,再或者找会3D建模的同窗插手我们。 但这些方案都被我们否决了,缘由有良多,好比我们的经费无限,不克不及支撑我们去找外包,也没有现成的模子给我们采办。而本人去进修3D建模的进修时间也长,同时也没找到会3D建模的同窗。 再或者,它该当是一个立在你面前的展台,手艺雷达就摆在用户面前,大要像如许: 最终这些设法都被我们临时弃捐了,最次要的缘由是我们没有能力和人手去实现那些炫酷的样子,而且我们感觉手艺雷达就该当用它最朴实的样子展现给大师,该当被大师关心的是手艺雷达的内容,而不是这个3D物体。所以最终我们决定用一个圆饼来展现手艺雷达。 起首,3D建模不是我们的长项,所以我们选用了ARKit支撑的根基外形来组合出一个手艺雷达的大饼。因而,我们利用了一个圆柱体和三个圆管,如下图。正两头是一个圆柱,用三个圆管把圆柱包抄起来,就构成了雷达圆饼。 接着,为了让整个雷达看起来更立体,我们利用了圆球来作为每个手艺的标示点,同时让题目浮在圆球的正上方。如下图。 我才不会告诉你,每个手艺标示点在第一版的设想中是圆锥形的,看起来像雷达上的一坨坨屎。请看下图。 然后就是添加交互,让用户在点击某一个圆球的时候弹出它的具体阐述。就像下图一样。我们在圆球的正上方弹出一个半通明白板,并把题目和内容放在上面。 白板上的字分歧于圆球上的题目,它是印在平面上的,而不像题目是3D立体的。由于大段的文字不适合全数做成3D立体的字,这对资本的耗损和3D的计较是很大的。所以我们操纵3D纹理贴图,把文字描述贴到了白板上。 最初就是若何添加数据,我们但愿这个AR手艺雷达能使用到每一年的手艺雷达,这就要求我们添加进去的数据是支撑更新的。 所以我们利用了一个零丁的文件来存储每一期的所有手艺,文件内容包含了所有手艺相关的消息,好比名字、细致引见、它所处的象限、它的分类等等。 如许的益处就是下一次的雷达手艺出来之后,我们只需要更新这个独立的文件就能够看到最新的AR手艺雷达了。 碰到的第一个奇葩事务就是,第一次我们添加了一个物体,可是在摄像头里面怎样都找不到,后来我们无意中把镜头对着天空俄然发觉阿谁物体在空中飘着。缘由就是ARKit世界里面的尺寸是和现实世界一样的,单元是米,而我们的离地高度设的是3米,因而它就跑到空中去了。 另一个和这个是类似的,我们加了一个圆管放在地上,可是在地上怎样也找不到阿谁圆管。后来我们才发觉,我们的圆管的尺寸太大了,把我们全数包在圆管里面了。 第三个成心思的工作是,我们添加了一个平面,上面写了一些工具,可是我们在镜头里面却怎样也找不到这个平面。通过各类debug和查询拜访研究,才发觉,我们在平面的后背,本来对于没有厚度的平面,只能在反面才能看得见。 还有一个比力棘手的问题就是,比若有些物体需要扭转两个90度再加上一些变换才能达到我们想要的位置。这对空间想象能力的要求就比力高,我们测验考试了良多种扭转和变换,才最终找到了想要的位置。 我们期望AR手艺雷达能成长成为每次手艺雷达发布的官方AR使用,通过分歧的路子和分歧的体验让更多的人领会手艺雷达,让人们能和手艺雷达有一些成心义的互动。 所以将来我们期望能不竭完美AR手艺雷达,让它成为一个炫酷的、交互式很强的使用。 打开脑洞想象一下,通过利用AR手艺雷达,你不只能够看到每次更新的新手艺、还可以或许通过一些交互直观的看到它的汗青轨迹、使用场景以及具体实践,是不是一件很酷的工作? |
|
打印本文 关闭窗口 |