Я хотел бы использовать camera.getWorldDirection()
и получить доступ к указаниям на головном дисплее. Я смог сделать это с помощью предыдущего API webVR. Когда я использую новый HelioWebXRPolyfill.js
от THREE, я не могу получать текущие позиции.
Как я могу получить направление камеры с помощью webxr?
comment
Камера в новой реализации webXR, похоже, не имеет ссылки на фактический вид гарнитуры, она находится в стороне от него. Если я получаю camera.rotation и смотрю по сторонам с помощью гарнитуры, изменений нет. Я тоже ищу ответ на этот вопрос ?!
- person T0m   schedule 07.01.2020
comment
Я столкнулся с той же проблемой? Вы разрешили это?
- person Stanly   schedule 07.04.2020
Ответы (4)
Согласно API устройства WebXR, это следует делать с помощью объекта XRViewerPose < / а>.
Эта функция работает только с использованием HTTPS.
person
Hans Beemsterboer
schedule
25.01.2020
Кажется, что вызов renderer.xr.getCamera()
не полностью копирует различные свойства элемента камеры, которые camera.getWorldDirection()
ожидает найти. Я не уверен, откуда эта проблема (возможно, из-за полифила?), Но вы можете обойти ее, вычислив направление самостоятельно:
let xrCamera = this.renderer.xr.getCamera(sceneCamera)
let e = xrCamera.matrixWorld.elements
let direction = new THREE.Vector3(-e[8], -e[9], -e[10]).normalize()
person
ksimeon
schedule
10.01.2020
Я придумал простое решение. Просто родительский блок для камеры и используйте его вместо камеры.
camera.add( camerabox );
Это не работает:
var direction = new THREE.Vector3();
camera.getWorldDirection( direction );
Это ДЕЙСТВИТЕЛЬНО работает:
var direction = new THREE.Vector3();
camerabox.getWorldDirection( direction );
person
phil
schedule
20.01.2020
На самом деле это не работает с инструментами разработчика FireFox WebXR. Под камерой вы имели в виду прикрепление сетки с помощью BoxGeometry?
- person kgz; 03.12.2020
глобальная переменная
var cameraVector = new THREE.Vector3(); //define once and reuse it!
в вашем цикле рендеринга
let xrCamera = renderer.xr.getCamera(camera);
xrCamera.getWorldDirection(cameraVector);
//heading vector for webXR camera now within cameraVector
person
stereopan-com
schedule
05.08.2020