我有一个webVR项目,它使用resetPose来重置场景的起源,但是现在显然已经不推荐了。我用它来重置相机,这样用户就可以再次看到场景的中心。
我假设这个函数不太难复制:你要么把场景旋转,要么相机转到新的原点。然而,我对webVR没有那么丰富的经验,更重要的是THREE.js。
我试着用相机来控制场景的中心,但我认为问题是webVR控制了它,所以我不能就这样移动它。
摄像机和场景的初始化示例
// Create a three.js camera.
camera = new THREE.PerspectiveCamera(75, window.innerWidth / window.innerHeight, 0.1, 10000);
camera.name = "Perspective Camera";
var group = new THREE.Group();
group.name = "Camera Group";
group.rotateY(Math.PI);
group.add(camera);
group.position.set(0, configuration.sphereRadius, 0);
group.permanent = true;
scene.add(group);
// Apply VR headset positional data to camera.
controls = new THREE.VRControls(camera);发布于 2022-09-29 14:02:41
根据关于这个问题浸入式web/webxr对resetPose方法的支持。他们声称,设备有硬件按钮强制重置姿态或复位姿态应由应用程序处理。Three.js没有这样的方法。
这里是简单,但肮脏的方式重置姿态(重新,复位相机)退出虚拟现实并再次进入它。
async function recenter() {
if (renderer.xr.isPresenting) {
let session = renderer.xr.getSession();
let buttonVR = document.getElementById("VRButton");
await session.end();
buttonVR.click();
}
}https://stackoverflow.com/questions/51023434
复制相似问题