AR.js自定义AR Marker无法正常工作,寻求技术帮助
自定义AR.js Marker无法识别的解决思路
路径与加载检查
先确认你的pattern-Simple.patt和pattern-Simple2.patt文件路径是否正确。把HTML文件和Markers_AR文件夹放在同一目录下,或者直接将patt文件移到HTML同级目录,修改url为./pattern-Simple.patt测试。打开浏览器控制台(F12)查看网络请求,确认patt文件是否成功加载,有没有404错误。Marker生成与打印规范
16*16的自定义Marker必须保证高对比度(黑白配色最佳),避免使用颜色相近的图案。打印时严格保持原始比例,不要缩放、裁剪,确保打印清晰无模糊、反光,Marker边缘完整。代码逻辑修正
同时使用多个<a-marker-camera>会导致AR.js识别逻辑冲突,建议改用<a-marker>绑定AR内容,全局只保留一个相机。修改后的代码示例:
<!DOCTYPE html> <html lang="en" dir="ltr"> <!-- Marker-based AR --> <!-- NOTE: Cannot work on local server --> <head> <script src="https://cdn.rawgit.com/jeromeetienne/AR.js/1.5.0/aframe/examples/vendor/aframe/build/aframe.min.js"></script> <script src="https://cdn.rawgit.com/jeromeetienne/AR.js/1.5.0/aframe/build/aframe-ar.js"></script> </head> <body style='margin : 0px; overflow: hidden;'> <a-scene embedded arjs='sourceType: webcam; debugUIEnabled: false'> <!-- 全局相机 --> <a-entity camera></a-entity> <!-- Hiro Marker对应的AR内容 --> <a-marker preset='hiro'> <a-sphere position="0 0.5 0" radius="0.5" color="#EF2D5E"></a-sphere> <a-plane position="0 0 0" rotation="-90 0 0" width="1" height="1" color="#7BC8A4"></a-plane> </a-marker> <!-- 自定义Marker1对应的AR内容 --> <a-marker type="pattern" url="./Markers_AR/pattern-Simple.patt"> <a-sphere position="0 0.5 0" radius="0.5" color="#EF2D5E"></a-sphere> <a-plane position="0 0 0" rotation="-90 0 0" width="1" height="1" color="#7BC8A4"></a-plane> </a-marker> <!-- 自定义Marker2对应的AR内容 --> <a-marker type="pattern" url="./Markers_AR/pattern-Simple2.patt"> <a-sphere position="0 0.5 0" radius="0.5" color="#EF2D5E"></a-sphere> <a-plane position="0 0 0" rotation="-90 0 0" width="1" height="1" color="#7BC8A4"></a-plane> </a-marker> </a-scene> </body> </html>
- 版本升级测试
你使用的AR.js 1.5.0版本较老旧,存在一些已知的Marker识别问题。建议升级到稳定的新版本,替换页面中的CDN链接为官方推荐的最新稳定版链接。
内容的提问来源于stack exchange,提问作者Lihan Zhu
相关产品推荐
相关产品推荐

