关于增强现实:A-Frame和ar.js:多个标记和框

A-Frame & ar.js: Multiple markers & boxes

是否有关于如何使用A帧实现多个AR标记的概念证明?

例如 像这样的东西:https://www.youtube.com/watch?v=Y8WEGGbLWlA

enter image description here

亚历山德拉·埃蒂安(Alexandra Etienne)在这篇文章中的第一个视频是我想要的效果(具有不同内容的多个不同的AR"标记"):https://medium.com/arjs/area-learning-with-multi-markers-in -ar-js-1ff03a2f9fbe

我有点不清楚,当使用多个标记时,它们是否需要彼此靠近/存在于同一相机视图中

来自ar.js存储库的此示例使用了多个标记,但是它们都是不同的类型(即一个是Hiro标记,一个是汉字标记,等等):https://github.com/jeromeetienne/AR.js/ blob / master / aframe / examples / multiple-independent-markers.html


tldr:这里的工作故障。了解区域(图像在资产中),单击"接受"按钮,然后切换标记助手。

现在,有一些细节:

1)载入保存的区域数据

初始化后,当ar.js检测到要使用area标记预设时,它将尝试获取localStorage引用:

1
localStorage.get("ARjsMultiMarkerFile")

最重要的数据是成对的{markerPreset,url.patt}对数组,它们将用于创建area
注意:默认情况下,它只是hiro标记。

2)创建区域数据文件

debugUIEnabled设置为true时:

1
 

出现一个按钮"学习新标记区域"。
乍一看,它会将您重定向到一个屏幕,您可以在其中保存区域文件。
但是有一个:默认情况下,加载的学习者网站位于另一个域上。

严格来说:ARjs.Context.baseURL = 'https://jeromeetienne.github.io/AR.js/three.js/

保存在此处的任何数据都不会加载到我们的网站上,因为本地存储是按来源隔离的。

要保存和使用标记区域,您必须创建自己的learner.html。它可以与原始文件相同,只需记住您必须将其保留在相同的域中。

要使debugUI按钮将用户重定向到您的学习者html文件,您需要设置

1
ARjs.AnchorDebugUI.MarkersAreaLearnerURL ="myLearnerUrl.html"

初始化之前。只需在中进行即可。

进入学习者网站后,请确保相机可以看到所有标记,并批准学习。

它看起来应该像这样:
enter image description here

一旦获得批准,您将被重定向回您的网站,将加载区域文件并使用数据。


正如@mnutsch所说,AR.js可以满足您的需求。

您可以在两个不同的标记上显示两个不同的模型。如果相机看不到任何标记,则模型会消失(或停留在最后一个标记,具体取决于您的实现方式)。

相机不需要同时看到两者。

屏幕截图:
https://www.dropbox.com/s/i21xt76ijrsv1jh/Screenshot%202018-08-20%2011.25.22.png?dl=0

项目:
https://curious-electric.com/w/experiments/aframe/ar-generic/

此外,与Vuforia不同,它没有"扩展跟踪"功能-一旦看不到代码,就无法再进行跟踪。