AR.js使用自定义AR标记的帮助/麻烦



我需要一些帮助来使用带有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 标记有效,但自定义图像标记不起作用。

如果有人能为我指出正确的方向,就会有奖励!详情请与我联系。干杯。

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

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

这里的故障。

原始 anwser(已过时)
当前的 ar.js 构建无法正确管理自定义标记。

有多个 github 问题和修复程序,但据我所知,它们都没有被官方主分支接受。

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


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

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所做的,在他的提交+重构中查看。

在没有AFrame的情况下使用AR.js 时(如本基本示例所示),我已经成功地使用自定义标记使用自定义标记,并遵循此过程。

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

最新更新