在Three.js中,使用WebVR时,如何移动相机位置?

问题描述 投票:0回答:2

我正在尝试调整现有的 Three.js 项目以与 WebVR 配合使用。我已经取得了不错的进展——我可以在 VR 中环视场景,但我无法将相机位置从它生成的初始位置移开(看起来接近

0,0,0
,看起来就像在那里)是预定义的
userHeight
会被考虑在内)

一旦我调用

renderer.vr.setDevice( vrDisplay )
,似乎就创建了一个新相机,并且我的场景正在使用的现有相机不再使用。我想继续使用该相机,或者至少继承它的大部分属性。

我注意到有一个

renderer.vr.getCamera()
方法(链接到源代码),但我还没有找到任何如何使用它的示例或文档(或者我是否应该使用它)。奇怪的是,这个方法接受
camera
作为参数,这对于
getter
来说有点不直观。看看代码,这个函数似乎应该被称为
setCamera
,这让我有点困惑。我尝试调用该函数并传入我现有的
camera
但没有效果。

如有任何帮助,我们将不胜感激。我正在使用 Three.js R91 在最新版本的 Android/Chrome 上使用 Google Daydream View

three.js google-vr webvr daydream
2个回答
2
投票

swirlybuns,Mugen87 解决方案只要将用户添加到场景即可工作

var user = new THREE.Group();
user.position.set(0,0,0);
camera = new THREE.PerspectiveCamera( 70, window.innerWidth / window.innerHeight, 0.1, 1000 );
camera.position.y = 1.6;
user.add( camera );
scene.add(user);

以及渲染循环中

user.position.setZ(camera_z_pos);
camera_z_pos -= current_velocity;

测试于 三.js v102 铬移动 v75


0
投票

请问问题解决了吗?我最近也遇到这个问题

© www.soinside.com 2019 - 2024. All rights reserved.