【问题标题】:In Three.js, while using WebVR, how do I move the camera position?在 Three.js 中,使用 WebVR 时,如何移动相机位置?
【发布时间】:2018-09-03 10:17:18
【问题描述】:

我正在尝试调整我现有的 three.js 项目以使用 WebVR。我已经取得了不错的进展——我可以在 VR 中环顾场景,但我无法将相机位置从它产生的初始位置移开(似乎接近0,0,0,似乎在那里是一个预定义的userHeight 被考虑在内)

一旦我调用renderer.vr.setDevice( vrDisplay ),就好像创建了一个新相机,而我的场景使用的现有相机不再使用。我想继续使用那台相机,或者至少继承它的大部分属性。

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

感谢任何帮助。我正在使用 Three.js R91 在最新版本的 Android/Chrome 上使用 Google Daydream View

【问题讨论】:

标签: three.js google-vr webvr daydream


【解决方案1】:

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 chrome mobile v75

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-20
    相关资源
    最近更新 更多