Я работаю над переносом существующего проекта three.js в WebVR + Oculus Rift. В основном, это приложение принимает STL-файл в качестве ввода, создает на нем THREE.Mesh
и отображает его на пустой сцене. Мне удалось заставить его работать в Firefox Nightly с плагином VREffect до трёх.js и VRControls. Проблема, которую я имею, это модели, представленные в VR, на самом деле не 3D. А именно, когда я перемещаю HMD назад и вперед, активная трехмерная модель не приближается/больше, и я не вижу разных сторон модели. Похоже, что модель представляет собой довольно плоское фоновое изображение, прикрепленное к его положению. Если я добавлю THREE.AxisHelper
к сцене, он правильно преобразуется при перемещении HMD.Как сделать THREE.Mesh выглядеть объемным с помощью WebVR?
Первоначально в приложении использовались THREE.OrbitControls
, а модели были повернуты и перемещены правильно.
Существует довольно много исходного кода, поэтому я буду размещать некоторые фрагменты по запросу.
Это действительно странно. Вы все еще используете OrbitControls? Является ли модель добавлена в сцену напрямую или добавлена в камеру? Похоже, вы добавили модель в камеру, поэтому она перемещается вместе с камерой, а это значит, что вы не можете видеть ее с разных точек зрения. – brianpeiris
, вероятно, вам нужно использовать 'DeviceOrientationControls' – gaitat
@brianpeiris, да, точно. У меня такое впечатление, но я добавляю сетку в сцену, затем добавляю камеру на сцену. Это странно, потому что я не мог найти демоверсии, где это рекомендуется делать. Но, в моем случае камера вообще не движется, если не добавить ее на сцену. И я не использую OrbitControls, потому что, когда включен режим VR, на дисплеях Oculus нет курсора, поэтому события мыши игнорируются. На самом деле, я бы хотел использовать OrbitControls, потому что иногда они могут пригодиться, но, похоже, это невозможно с текущей реализацией WebVR. – Ivan