我需要一些使用自定义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标记可以工作但是自定义图像标记没有。
如果有人能指出我正确的方向,那就有奖励!联系我了解详情。欢呼声。
答案 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 issues和fixes,但据我所知,其中没有一个被官方主分支机构接受。
您可以通过在{{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
}
答案 1 :(得分:0)
在不使用 AFrame 的情况下使用 AR.js 时(例如在此basic example中),我已经成功地使用了custom marker generator page和在this procedure之后。
确保您上传到生成器的PNG文件不包含任何透明像素 ,否则生成的 .patt 文件将包含错误的像素值和您的标记将不会被识别。