使用动态内容制作增强现实
Making Augmented Reality with Dynamic Content
我正在尝试用一个非常简单但显然未开发的概念创建一个应用程序:
我希望能够通过网站上传目标和与之相关的多媒体,并将它们存储在某种后端。
然后我希望能够在我的应用程序中(默认情况下说 android,但多平台会很好),能够将我的设备同步到 "target-multimedia" 数据库,更新我的本地存储检测到更改时。
这将允许我在任何时候通过一个友好的管理网站客户端添加一个新的目标和关联,然后每个 phone 应用程序都会识别新的目标并显示绑定到它的相关多媒体。
现在,我一直在研究可以让我实现这样的事情的最新技术。目前的主要技术是 Vuforia 和 easyAR 以及我发现的 wikitude。
问题是我需要它,因为 FREE.I 如果有必要,可以在我的服务器上开发整个系统,但我找不到任何提供 AR 识别和其他东西的开源 SDK。
什么是解决方案?我可以使用自己的动态内容管理构建 AR 应用程序吗?
TLDR; 是的,可以使用自定义后端 CMS 构建增强现实应用程序,但是需要考虑很多因素并做出很多决定(详情如下).
您所指的概念不是唯一的,也不是未经探索的。 Blippar has been doing this since 2011 and Zappar/Vuforia/Wikitude 都做类似的事情,只是他们为 marker-lookup 使用 QR 码。作为 Blippar 的前解决方案工程师,我可以为您提供一些关于您需要探索的高级概念的见解。
假设您已准备好构建用于存储所有标记的 CMS 后端系统,请记住,您的增强现实 CMS 不应该像上面提到的那样不断检查并尝试将您的标记同步到设备(它不可扩展)。我建议您将图像发送到服务器并让服务器进行匹配。这里的缺点是您将通过网络发送的数据量,以及由于允许标记查找的服务器 request/matching/response 进程导致的识别滞后。您可以使用 QR 码来加快查找速度,但随后您必须操作标记图像 (trade-off)。
您将面临的下一个主要障碍是您要支持的 3D 模型格式。为了使您的应用程序成为跨平台的,您需要决定 cross-platform 渲染引擎(openGL, Vulkan 等)的自定义实现。您需要自定义渲染引擎的原因是因为 SceneKit (iOS) 和 SceneForm (Android) 都不不共享功能对等,因此如果您使用本机引擎,您将只能使用它们的共享功能。您也可以选择使用现有的游戏引擎(Unity、Unreal 等)来实现您的解决方案,但如果您采用这种方式,您还不如支付费用并在 Vuforia 上构建。
因此,假设您要实现自定义渲染引擎,这也是一项繁重的工作,需要考虑很多 trade-off 和注意事项。
让我们从头开始,如果您从头开始实施 openGL 或 Vulkan 或任何其他渲染引擎,那么您必须实施自己的 scene-graph、着色器等。实施您自己的 scene-graph 和它附带的所有细节都是一项繁重的工作。另一种选择是使用现成的库 (OpenSceneGraph, Vulkan Scene Graph)。如果选择现成的解决方案,您会受到该库的实现的限制,但通常不会有什么大不了的,除非您想进行自定义。
还有第三种选择,您可以使用移动网络构建 AR CMS。用于图像跟踪的库,例如 AR.js uses Aframe for rendering (built on top of Three.js) and WebAssembly(使用 ARToolKit 生成标记文件)。您可以使用二维码作为标记的一部分。尽管存在操纵标记图像以包含 QR 码的权衡,但您可以通过查找获得更多收益,因为每个 QR 码都可以加载与体验直接相关的网页,无需同步标记或任何东西。
我正在尝试用一个非常简单但显然未开发的概念创建一个应用程序:
我希望能够通过网站上传目标和与之相关的多媒体,并将它们存储在某种后端。
然后我希望能够在我的应用程序中(默认情况下说 android,但多平台会很好),能够将我的设备同步到 "target-multimedia" 数据库,更新我的本地存储检测到更改时。
这将允许我在任何时候通过一个友好的管理网站客户端添加一个新的目标和关联,然后每个 phone 应用程序都会识别新的目标并显示绑定到它的相关多媒体。
现在,我一直在研究可以让我实现这样的事情的最新技术。目前的主要技术是 Vuforia 和 easyAR 以及我发现的 wikitude。
问题是我需要它,因为 FREE.I 如果有必要,可以在我的服务器上开发整个系统,但我找不到任何提供 AR 识别和其他东西的开源 SDK。
什么是解决方案?我可以使用自己的动态内容管理构建 AR 应用程序吗?
TLDR; 是的,可以使用自定义后端 CMS 构建增强现实应用程序,但是需要考虑很多因素并做出很多决定(详情如下).
您所指的概念不是唯一的,也不是未经探索的。 Blippar has been doing this since 2011 and Zappar/Vuforia/Wikitude 都做类似的事情,只是他们为 marker-lookup 使用 QR 码。作为 Blippar 的前解决方案工程师,我可以为您提供一些关于您需要探索的高级概念的见解。
假设您已准备好构建用于存储所有标记的 CMS 后端系统,请记住,您的增强现实 CMS 不应该像上面提到的那样不断检查并尝试将您的标记同步到设备(它不可扩展)。我建议您将图像发送到服务器并让服务器进行匹配。这里的缺点是您将通过网络发送的数据量,以及由于允许标记查找的服务器 request/matching/response 进程导致的识别滞后。您可以使用 QR 码来加快查找速度,但随后您必须操作标记图像 (trade-off)。
您将面临的下一个主要障碍是您要支持的 3D 模型格式。为了使您的应用程序成为跨平台的,您需要决定 cross-platform 渲染引擎(openGL, Vulkan 等)的自定义实现。您需要自定义渲染引擎的原因是因为 SceneKit (iOS) 和 SceneForm (Android) 都不不共享功能对等,因此如果您使用本机引擎,您将只能使用它们的共享功能。您也可以选择使用现有的游戏引擎(Unity、Unreal 等)来实现您的解决方案,但如果您采用这种方式,您还不如支付费用并在 Vuforia 上构建。
因此,假设您要实现自定义渲染引擎,这也是一项繁重的工作,需要考虑很多 trade-off 和注意事项。
让我们从头开始,如果您从头开始实施 openGL 或 Vulkan 或任何其他渲染引擎,那么您必须实施自己的 scene-graph、着色器等。实施您自己的 scene-graph 和它附带的所有细节都是一项繁重的工作。另一种选择是使用现成的库 (OpenSceneGraph, Vulkan Scene Graph)。如果选择现成的解决方案,您会受到该库的实现的限制,但通常不会有什么大不了的,除非您想进行自定义。
还有第三种选择,您可以使用移动网络构建 AR CMS。用于图像跟踪的库,例如 AR.js uses Aframe for rendering (built on top of Three.js) and WebAssembly(使用 ARToolKit 生成标记文件)。您可以使用二维码作为标记的一部分。尽管存在操纵标记图像以包含 QR 码的权衡,但您可以通过查找获得更多收益,因为每个 QR 码都可以加载与体验直接相关的网页,无需同步标记或任何东西。