javascript - AR.JS 自定义标记
问题描述
我正在尝试为 AR.JS 使用自定义标记。但是,按照说明创建自定义标记然后更改标记预设后,它仍然无法正常工作。关于如何正确实施的任何想法?
<a-marker preset="custom" type="pattern" url="img/pattern-marker.patt">
<a-box position='0 0.5 0' material='color: black;' soundhandler></a-box>
</a-marker>
这不是标记中的正确实现吗?作为参考,我使用了一个非常简单的黑白圆形图像进行测试,但仍然无法正常工作。是否需要编写其他代码来注册自定义标记模式?
解决方案
我在这上面花了很多年!最后发现这是几个问题。
1.预设=“模式”
首先,如果您查看原始 js 脚本:https ://jeromeetienne.github.io/AR.js/aframe/build/aframe-ar.js ,您会注意到preset="custom"
. else if
例如,搜索else if( _this.data.preset === 'kanji' ){
。
然而有一个preset="pattern"
. 所以在你的例子中,替换:
<a-marker preset="custom" type="pattern" url="img/pattern-marker.patt">
<a-box position='0 0.5 0' material='color: black;' soundhandler></a-box>
</a-marker>
和
<a-marker preset="pattern" type="pattern" url="img/pattern-marker.patt">
<a-box position='0 0.5 0' material='color: black;' soundhandler></a-box>
</a-marker>
2.上传.patt到你的GitHub,这样它就可以解析文件了
其次,我的 .patt 没有在本地被提取,所以url="img/pattern-marker.patt"
不会工作。将此.patt
文件推送到 GitHub,然后使用 raw.githubusercontent 引用它。
例子
您可以使用我的模式对此进行测试。https://raw.githubusercontent.com/lbelfield/augmented-reality/master/src/components/trainTicket/train-ticket.patt。
React-Web-AR: 这不适用于您,但如果有人像我一样使用 React-Web-AR,请使用:
<Marker parameters={{
preset: 'pattern',
type: 'pattern',
patternUrl: 'https://raw.githubusercontent.com/lbelfield/augmented-reality/master/src/components/trainTicket/train-ticket.patt',
url: 'https://raw.githubusercontent.com/lbelfield/augmented-reality/master/src/components/trainTicket/train-ticket.patt'
}}>
推荐阅读
- python-3.x - 基于多列值拆分数据框
- spring - 为什么在这种情况下 Mockito doThrow 不抛出异常?与 mock 的零交互
- android - 首选项设置 - 如何在启用点击侦听器时禁用更改侦听器?
- materialize - 如何在搜索输入中更改 Materialise 标签图标的活动颜色
- java - 如何修复java代码以将结果显示为名称和分数
- c# - 如何立即摆脱循环
- android - 无法上传没有签名的 APK
- angular - 如何强制其他角度组件刷新和更新视图?
- postgresql - 查询本机 - 无法提取 ResultSet
- elasticsearch - 如何基于多个嵌套字段在 ElasticSearch 中进行搜索