Помощь AR.js / проблемы с использованием пользовательских маркеров AR - PullRequest
0 голосов
/ 17 мая 2018

Мне нужна помощь с использованием пользовательских маркеров 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 по умолчанию работает, а пользовательские маркеры изображений - нет.

Если кто-то может указать мне в правильном направлении, есть награда! Свяжитесь со мной для деталей. Приветствия.

Ответы [ 2 ]

0 голосов
/ 22 октября 2018

При использовании AR.js без AFrame (как в этом базовом примере ) мне удалось использовать пользовательские маркеры с использованием пользовательского маркера страница генератора и следующая эта процедура .

Убедитесь, что файл PNG, который вы загружаете в генератор, не содержит прозрачных пикселей , или файл, созданный .patt , будет содержать неправильные значения, и ваш маркер не будет распознан.

0 голосов
/ 21 мая 2018

AR.js поддерживает пользовательские маркеры.Вам просто нужно:
1) создать свой собственный маркер, используя этот генератор.
2) Сообщите ar.js, что вы хотитеиспользуйте свой маркер:

<a-marker type="pattern" url="mypattern.patt">
  <a-entity myobject></a-entity>
</a-marker>

Глюк здесь .

Оригинальный ответ (устарел)
Текущий сборщик ar.js не делает• правильно управлять пользовательскими маркерами.

Существует несколько проблем с github , и , исправлений , но, насколько я знаю, ни один из них не был принят в официальную ветку master.

Мне удалось настроить пользовательские маркеры, работающие с этой сборкой , сделанной wimvdc .


Вы можете попробовать сделать самирабочая сборка путем модификации файла 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
}

и затем использованияэто так:

<a-marker type='pattern' url='patterns/w.patt'>
</a-marker>

Это то, что сделал wimvdc, проверьте это в его commit + refactor .

...