4

在使用带有 AR.js 的自定义 AR 标记时,我需要一些帮助。在从自定义标记生成器页面下载 .patt 文件后,我们在让对象初始化标记时遇到了一些问题。一切都在 Node.js 服务器上进行客户端测试,但每次打开网络摄像头时,python 徽标的图像上都不会出现任何内容。

下面的代码:

<html>
  <head>
  <script src="https://aframe.io/releases/0.8.0/aframe.min.js"></script>
<!--   <script src="https://cdn.rawgit.com/jeromeetienne/AR.js/1.5.0/aframe/build/aframe-ar.js"> </script> -->
  <script src="aframe-ar.js"></script>

  </head>  
<body style="margin : 0px; overflow: hidden;">
<a-scene embedded arjs="sourceType: webcam;">
<a-marker preset="custom" type="pattern" url="pattern-marker.patt">
<a-box position="0 0.5 0" material="opacity: 0.5;"></a-box>
</a-marker>
</a-scene>
</body>
</html>

此条件位于本地的 aframe-ar.js 文件中,用于为 python 图像标记添加自定义预设。我们正在使用谷歌浏览器。

else if( _this.data.preset === 'custom' ){
  markerParameters.type = 'pattern'
  markerParameters.patternUrl = _this.data.patternUrl;
  markerParameters.markersAreaEnabled = false
}

我刚刚使用本地 Node.js 服务器进行测试,还应该提到默认的 Hiro 标记有效,但自定义图像标记无效。

如果有人能指出我正确的方向,那就是奖励!联系我了解详情。干杯。

4

2 回答 2

2

AR.js 支持自定义标记。您只需要:
1)使用生成器创建您自己的标记。
2)让 ar.js 知道你想使用你的标记:

<a-marker type="pattern" url="mypattern.patt">
  <a-entity myobject></a-entity>
</a-marker>

故障在这里

Original anwser (outdated)
当前的 ar.js 构建没有正确管理自定义标记。

有多个 github问题修复,但据我所知,没有一个被官方 master 分支接受。

我已经设法让自定义标记与wimvdc制作的这个版本一起使用。


您可以通过在函数中添加自定义标记的特殊情况来尝试通过修改anchor-component.js文件(或arjs-anchor主构建中的组件)来使自己成为工作构建init

if( _this.data.preset === 'hiro' ) {

(...)

} else if ( _this.data.type === 'pattern' ) {
        arProfile.defaultMarkerParameters.type = 'pattern'
        arProfile.defaultMarkerParameters.patternUrl = _this.data.patternUrl;
        arProfile.defaultMarkerParameters.markersAreaEnabled = false
}

然后像这样使用它:

<a-marker type='pattern' url='patterns/w.patt'>
</a-marker>

这正是 wimvdc 所做的,请在他的commit + refactor中查看。

于 2018-05-21T09:26:02.063 回答
0

当使用不带AFrame的AR.js 时(就像在这个基本示例中一样),我已经成功地使用自定义标记生成器页面并按照此过程使用自定义标记。

确保您上传到生成器的 PNG 文件不包含任何透明像素,否则.patt生成的文件将包含错误的值,您的标记将无法识别。

于 2018-10-22T10:58:18.000 回答