我正在尝试使用A-Frame在AR.js中设置一个以上的多标记区域。想法是为每个内容设置4个图案标记,这些标记以方形框的形式布置。 The AR.js multimarker examples利用学习者将姿势矩阵数据放入URL。有什么方法可以生成不同的多标记文件并将它们分配给每个a标记?我已经附上了一些示例代码来显示我要实现的目标。
<a-scene>
<a-marker preset="area" id="first">
...
</a-marker>
<a-marker preset="area" id="second">
...
</a-marker>
<a-marker preset="area" id="third">
...
</a-marker>
<a-camera />
</a-scene>
答案 0 :(得分:0)
似乎带有配置对象的本地存储项的名称是硬编码的here。
我能够获得多个标记区域,但是我不得不修改ar.js代码。结果在this glitch中,标记在资产中。
首先,我必须创建并保留多标记配置对象(请参见this SO线程或自定义区域标记上的this ar.js问题)。在创建场景之前,我先设置配置:
// the name will correspond to the marker id
var oneMarker = { /* paths, pose matrices, etc. */ }
localStorage.setItem("oneMarkerFile", JSON.stringify(oneMarker));
第二-我已经修改了Arjs.Anchor object-因此它不会读取预定义的localStorageObject:
// originally ARjsMultiMarkerFile
let markerId = markerParameters.markerName + "MarkerFile"
第三-我必须以某种方式通过markerParameters.markerName
。在arjs-anchor component init function中创建了Arjs.Anchor对象。您只需一行即可设置上面的markerName
属性:
markerParameters.markerName = _this.el.id
// anywhere before instantiating the anchor (new ARjs.Anchor(arSession, markerParameters))