通过动态内容实现增强现实

时间:2019-07-16 23:12:39

标签: augmented-reality

我正在尝试创建一个具有非常简单但似乎尚未开发的概念的应用程序:

我希望能够在整个网站上上传目标以及与目标相关的多媒体,并将其存储在某种后端中。

然后,我希望能够在我的应用程序中(默认情况下说是android,但要跨平台是很整洁的),能够将我的设备同步到“目标多媒体”数据库,并在检测到更改时更新本地存储。

这样一来,我可以随时通过友好的管理网站客户端添加新的目标和关联,然后每台装有该应用程序的电话都会识别出该新目标并显示与之绑定的多媒体。

现在,我一直在研究很多新技术,这些技术将使我能够实现这一目标。目前的主要技术是Vuforia和easyAR,以及发现的知识。
问题是我需要它是免费的。如果有必要,我可以在服务器上开发整个系统,但找不到任何提供AR识别和其他功能的开源SDK。
什么是解决方案?我可以使用自己的动态内容管理功能来构建AR应用程序吗?

1 个答案:

答案 0 :(得分:0)

您所指的概念不是唯一的,也不是未开发的。 Blippar自2011年以来一直在这样做,Zappar / Vuforia / Wikitude都做类似的事情,除了它们使用QR码进行标记查找。作为Blippar的前解决方案工程师,我可以为您提供有关需要探索的高级概念的一些见识。

假设您已准备好构建一个用于存储所有标记的CMS后端系统,请牢记要注意的是,增强现实CMS不应如上所述不断检查并尝试将标记同步到设备(< em>不可扩展)。我建议您将图像发送到服务器,并让服务器进行匹配。这里的缺点是您将通过网络发送的数据量,以及由于服务器请求/匹配/响应过程而导致的识别滞后,这将允许查找标记。您可以使用QR码来加快查找速度,但随后您必须操纵标记图像( trade-off )。

您将面临的下一个主要障碍将是您要支持的3D模型格式。为了使您的应用程序成为跨平台,您将需要确定跨平台渲染引擎(openGLVulkan等)的自定义实现。您需要自定义渲染引擎的原因是因为SceneKit( iOS )或SceneForm( Android )都不共享功能奇偶校验,因此如果您使用本机引擎,您将限于它们的共享功能。您也可以选择使用现有的游戏引擎( Unity,Unreal等)来实现您的解决方案,但是如果您走那条路线,您可能还需要付费并在Vuforia上构建。

因此,假设您要实现自定义渲染引擎,这也是一项繁重的工作,需要进行很多折衷和考虑。

让我们从头开始,如果您从头开始实现openGL或Vulkan或任何其他渲染引擎,则必须实现自己的场景图,着色器等。实现自己的场景图以及随附的所有详细信息这是一个沉重的负担。另一种选择是使用现成的库(OpenSceneGraphVulkan Scene Graph)。如果选择现成的解决方案,则受该库的实现的限制,但除非您希望进行定制,否则通常不会有什么大碍。

还有第三种选择,您可以使用移动网络构建AR CMS。 AR.js之类的库使用Aframe进行渲染(建立在Three.js 之上)和WebAssembly进行图像跟踪(使用ARToolKit进行生成标记文件)。您可以将QR码用作标记的一部分。即使在权衡操作标记图像以包含QR码的情况下,也可以通过查找获得更多收益,因为每个QR码都可以加载与体验直接相关的网页,而无需同步标记或任何操作。