AR.js使用自定义AR标记帮助/解决问题

时间:2018-05-17 15:27:52

标签: html web augmented-reality aframe ar.js

我需要一些使用自定义AR标记和AR.js的帮助。从自定义标记生成器页面下载.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图像标记的自定义预设。我们正在使用Google Chrome。

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

我刚刚使用本地Node.js服务器进行测试,我也应该提一下默认的Hiro标记可以工作但是自定义图像标记没有。

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

2 个答案:

答案 0 :(得分:2)

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

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

小故障here

原始anwser(过时)
目前的ar.js版本没有正确管理自定义标记。

有多个github issuesfixes,但据我所知,其中没有一个被官方主分支机构接受。

我已设法通过build获取使用此wimvdc的自定义标记。

您可以通过在{{1}中添加自定义标记的特殊情况,通过修改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
}

这很像wimvdc所做的,请在commit + refactor中查看。

答案 1 :(得分:0)

在不使用 AFrame 的情况下使用 AR.js 时(例如在此basic example中),我已经成功地使用了custom marker generator page和在this procedure之后。

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