2017-01-24 7 views
2

Мы разрабатываем собственное оборудование на базе Android, и мы хотим использовать Vuforia (разработанный Unity3D) для определенных приложений. Однако у нас возникают проблемы с тем, что Vuforia хорошо работает с нашими текущими настройками ориентации камеры.Неправильная ориентация камеры с Android и Vuforia

На нашем оборудовании, когда камера установлена ​​горизонтально - все работает нормально. То есть, когда камера параллельна расположению дисплея. Тем не менее, мы должны поместить камеру по вертикали, или, другими словами, с разницей в 90 градусов к размещению дисплея. Это все аппаратные настройки. Наше ядро ​​запрограммировано в соответствии с такими настройками, и каждая другая программа, использующая камеру, работает совместимо со всем, включая наши датчики IMU. Однако приложения, разработанные с помощью Vuforia, ведут себя совершенно странно, когда камера размещается вертикально.

Мы предполагаем, что проблема связана с алгоритмами Vuforia по обработке необработанных данных камеры, однако мы не уверены. Более того, мы не знаем, как исправить ситуацию. Для получения дополнительной информации я могу перечислить:

-При включении «Включить фоновый видео» проецируемое изображение искажено и нет видеоподачи. Проецирование AR появляется на черном фоне с искаженными размерами.

-При включении «Включить фоновый видео» и устройство поворачивается, черный фон заменяется мерцающими сплошными цветами.

-Если «Включить фоновый звук» выключен, проекция AR имеет нормальные размеры (без искажений), однако она отслеживается с неправильными настройками оси. Например, когда цель движется влево в реальном мире, проекция движется вверх.

-Когда «Включить фоновый звук видео» выключен и устройство повернуто, проекция AR больше по сравнению с его внешним видом, когда устройство находится в состоянии по умолчанию.

Я буду рад предоставить вам любую дополнительную информацию.

Большое спасибо, хорошо провести день.

PS: Мы обнаружили, что приложения, которые используют камеру в качестве основной цели (приложения для камеры, сканеры штрих-кода и т. Д.), Работают нормально, тогда как приложения, для которых использование камеры является дополнительным качеством (например, в некоторых играх), имеют одинаковые проблема как Вуфория. Это заставляет меня думать, что приложения, которые обращаются к камере, работают нормально, тогда как те, кто использует API и классы Android, почему-то не работают.

ответ

1

Сначала поймите, что каждая платформа имеет дело с камерами по-разному и что за пределами этого разного производителя телефонов Android также имеют дело с этим по-разному. В моем тестировании БЕЗ vuforia мне пришлось преобразовать плоскость, я подал видеопоток на 0, -90,90 для android/iphone и -270, -90,90 для планшета с поверхностью Windows. В прошлом камера заднего вида iPhone была зеркальной, а передняя камера Android была зеркальной, а также фронтальная камера. Это легко объяснить, но раздражающая проблема заключается в том, что передние камеры Google Pixel и Samsung зеркально отразились на y (как и на всех iOS на задней камере), но Nexus 6p был зеркалирован по x. То, что я получаю здесь, это то, что есть много устройств для учета с помощью android, поэтому попробуйте больше, чем просто одно устройство. До сих пор Vuforia занимался моим пикселем и четырьмя моими iOS-устройствами.

касается того, как решить вашу проблему:

Зайдите в настройки проигрывателя для единства и смотреть на ориентацию. Здесь есть несколько вариантов, и мое приложение использует только портфолио, поэтому я принудительно создаю портрет, и, похоже, он работает нормально (ни одна из проблем, с которыми мне пришлось столкнуться с вышеупомянутым сценарием).Ранее Vuforia НЕ поддерживала автоматическое вращение, поэтому вам нужно убедиться, что у вас есть последняя версия, так как кажется, что это то, что вам нужно. Если автоматический поворот установлен и он не работает правильно, возможно, вам придется учитывать это конкретное устройство (не делайте этого для всех устройств, пока вы не проверите эти устройства). Для учета этого устройства используйте if (или создайте оператор case, если у вас есть несколько экземпляров этой проблемы с разными устройствами), а затем отражать или переводить по мере необходимости. Кроссплатформенные системы разработки (например, единство) не всегда получают все совершенное, поскольку в принципе нет стандарта. В этих случаях вам приходится напрямую учитывать их, создавая в этом метод и аргумент case, чтобы вы могли чисто и модульно манипулировать всеми необходимыми устройствами. Это боль, но она бьет для всех устройств отдельно.

Еще одна вещь - убедитесь, что вы проверили конфигурационный файл vuforia, так как там есть некоторые настройки, такие как зеркало камеры и настройки направления. Кажется, что они являются общедоступными, поэтому вы должны также иметь возможность сценариев для них в вашем случае в случае, если вам нужно использовать «Flip Horizontally» для одного телефона, но не для другого.

Смежные вопросы