如何设置摄像机的初始位置(Three.js / VR)?

时间:2019-01-02 13:53:07

标签: three.js virtual-reality perspectivecamera oculusgo

如果我没有将摄像机的初始位置设置为,则Web浏览器和Oculus Go浏览器的行为会有所不同(请参见下图)。

print_r(get_school($admin_school_code))

Initial camera position in WEB browser

图片。 1-相机在网络浏览器(例如Google Chrome)中的初始位置

Initial camera position in VR browser

图片。 2-VR浏览器(例如Oculus Go的默认浏览器)中摄像机的初始位置

看起来```cpp c++ codes goes here... ``` 的场景知道它在哪个环境中运行并自动调整了相机位置。如何更改相机的初始位置?

目前,我正在做这样的事情:

const camera = new THREE.PerspectiveCamera( 45, width / height, 1, 1000 );
// camera position is Vector3(0, 0, 0)
scene.add( camera );

但同样,它不能解决在不同环境中处于不同位置的问题。

1 个答案:

答案 0 :(得分:0)

我相信这是参考空间的行为。如果您使用参考空间类型*-floor,则设备会知道您的身高。然后将摄像机y设置到设备y的位置,这很有意义。因为我找不到从哪里获取设备高度的位置,所以我只是将参考空间类型设置为local。

this.renderer.xr.setReferenceSpaceType( 'local' );

对我来说,scene.add(cameraHolder)是必需的,否则相机将无法接收位置/旋转。旧的HMD将摄像机连接到“头部”模型,然后您将转动头部而不是摄像机。