Поскольку вопрос в основном касается страницы ученика, я постараюсь разбить ее настолько, насколько смогу:
1) Вам нужен массив {type , URL} объекты.
Пример создания массива по умолчанию показан ниже ( исходный код ):
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 ( источник ) и затем декодируется сайтом ученика. Что важно, происходит на сайте: для каждого объекта в массиве создается и сохраняется объект 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);
, то он будет использоваться в качестве файла мультимаркера по умолчанию позже. Если вам нужно произвольное имя или несколько областей - вам придется изменить имя в исходном коде .
3) 2.1.4 debu gUI
Кажется, что интерфейс отладки не работает - кнопки пользовательского интерфейса существуют, но их нигде не видно. Оперативным исправлением будет использование стиля span 'markersAreaEnabled' для div
, содержащего кнопки (см. source bit).
Все это в этом сбое , вы можете найти его под фразой «ИЗМЕНЕНИЯ ЗДЕСЬ» в коде ar js.