任何ar js多标记学习教程?

问题描述 投票:0回答:1

我一直在搜索ar.js多标记教程或任何对此进行解释的内容。但是我只能找到2个示例,但没有教程或解释。

到目前为止,我了解到它需要学习标记的模式或顺序,然后将其存储在localStorage中。以后将使用此数据来显示图像。

我不了解的是如何实现此“学习者”。另外,学习过程仅由“创建者”使用一次,对吗?应该存储输出文件,然后在以后需要时提供它,而不是在每个人的电话或计算机上从头开始创建。

感谢您的帮助。

three.js augmented-reality aframe
1个回答
0
投票

由于问题主要是关于学习者页面的,我将尽我所能将其分解:

1]您需要一个{type,URL}对象的数组。

创建默认数组的示例如下(source code):

var markersControlsParameters = [
        {
            type : 'pattern',
            patternUrl : 'examples/marker-training/examples/pattern-files/pattern-hiro.patt',
        },
        {
            type : 'pattern',
            patternUrl : 'examples/marker-training/examples/pattern-files/pattern-kanji.patt',
        }]

[2)您需要将其提供给“学习者”对象。

默认情况下,以上对象被编码为url(source),然后由学习者站点解码。重要的是,发生在该站点上:对于数组中的每个对象,都会创建并存储一个ArMarkerControls对象:

// array.forEach(function(markerParams){
var markerRoot = new THREE.Group()
scene.add(markerRoot)
// create markerControls for our markerRoot
var markerControls = new THREEx.ArMarkerControls(arToolkitContext, markerRoot, markerParams)
subMarkersControls.push(markerControls)

subMarkersControls用于创建用于学习的对象。最后:

var multiMarkerLearning = new THREEx.ArMultiMakersLearning(arToolkitContext, subMarkersControls)

示例学习者站点具有多个实用程序功能,但据我所知,这里最重要的是ArMultiMakersLearning成员,可以按以下顺序(或任何其他顺序)使用:]

// this method resets previously collected statistics
multiMarkerLearning.resetStats()

// this member flag enables data collection
multiMarkerLearning.enabled = true 

// this member flag stops data collection
multiMarkerLearning.enabled = false

// To obtain the 'learned' data, simply call .toJSON()
var jsonString = multiMarkerLearning.toJSON()

就这些。如果您将jsonString存储为

localStorage.setItem('ARjsMultiMarkerFile', jsonString);    

然后它将在以后用作默认的多标记文件。如果要使用自定义名称或更多区域,则必须在source code中修改名称。

© www.soinside.com 2019 - 2024. All rights reserved.