A-Frame和ar.js:多个标记符号和盒子

10

有没有关于如何在A-Frame中实现多个AR标记的概念验证?

例如:类似这样的内容:https://www.youtube.com/watch?v=Y8WEGGbLWlA

enter image description here

这篇文章里的第一个视频展示了我想要的效果(多个不同的AR“标记”具有不同的内容):https://medium.com/arjs/area-learning-with-multi-markers-in-ar-js-1ff03a2f9fbe

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

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


1
你提供的多个独立标记示例运行良好...所以你想让 Aframe 场景在多个相同标记图像的副本上呈现? - mnutsch
应该更清楚地表达 - 我想使用相同的标记类型(即某种QR码),但每个标记内部有不同的内容(即一个带有数据123456789的QR标记和一个带有数据987654321的QR标记)。 - Victor
通过这个例子,唯一标签的数量似乎受到存在多少不同类型标签的限制。 - Victor
QR码示例(扫描然后使用Hiro):https://medium.com/arjs/ar-code-a-fast-path-to-augmented-reality-60e51be3cbdf - Victor
这也是可行的:您可以使用类似example.com/ar.html?id=123的链接创建QR码,该QR码在同一AR标记(如Hiro)上创建不同的模型。显然的限制是用户需要在每个标记上重新扫描QR码。 - dirkk0
Three.js 有类似 A-Frame 的 multiple-independent-markers.html 的示例吗? - Suisse
2个回答

4
简述:在这里可以找到一个可用的错误示例学习区域(图像在资产中),点击接受按钮并切换标记助手。
具体内容:

1)加载保存的区域数据

初始化时,当ar.js检测到您想使用area标记预设时,它会尝试抓取一个localStorage引用:

localStorage.get("ARjsMultiMarkerFile")

最重要的数据是一组成对的数组{markerPreset, url.patt},它将用于创建area

注意:默认情况下,只有hiro标记。

2)创建区域数据文件

当您将debugUIEnabled设置为true时:

<a-scene embedded arjs='sourceType: webcam; debugUIEnabled: true'>

有一个“学习新标记区域”的按钮。 第一眼看上去,它会将您重定向到一个屏幕,您可以在其中保存该区域文件。 然而有一个问题:默认情况下,加载的学习站点位于另一个域上

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

任何在那里保存的数据都不会在我们的网站上加载,因为本地存储会根据来源进行隔离

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

要使调试UI按钮将用户重定向到您的学习HTML文件,您需要设置

ARjs.AnchorDebugUI.MarkersAreaLearnerURL = "myLearnerUrl.html"

<a-marker>初始化之前,将其放在<head>中。
进入学习网站后,请确保摄像头看到所有标记,并批准学习。
应该是这样的:
enter image description here 一旦批准,您将被重定向回您的网站,区域文件将被加载,并使用数据。

我的简单故障 在这里 - Piotr Adam Milewski
标记学习器又可以正常工作了。请查看: https://github.com/jeromeetienne/AR.js/issues/283#issuecomment-507312601 - droid001
@droid001 谢谢你的信息,我会重试我的步骤并发布结果! - Piotr Adam Milewski
@droid001 我已经更新了我的回答,尽管这个解决方案似乎更适合于中等教程而不是SO的答案 :P - Piotr Adam Milewski
你能否更新第一个链接(tldr: working glitch here.),因为它只是指向一个 .png 文件? - droid001
@droid001 抱歉,当我删除旧答案时它被搞混了。我已经更新了链接! - Piotr Adam Milewski

1
如@mnutsch所述,AR.js可以实现您想要的功能。
您可以在两个不同的标记上显示两个不同的模型。如果相机没有看到其中一个标记,则该模型会消失(或停留在上次位置,具体取决于您的实现方式)。
相机不需要同时看到两个标记。

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

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

与Vuforia不同的是,ARKit没有“扩展跟踪”功能-一旦代码失去视线,就无法进行跟踪。


他想把多个标记合并成一个使用。您应该能够使用“区域学习”创建“区域”。它比单个标记更加稳定。 - Piotr Adam Milewski

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接