【发布时间】:2018-03-01 20:44:36
【问题描述】:
在一个只需要一个纸板查看器的环境中,我一直在尝试让相机缓慢、连续地朝着用户正在查看的方向前进。
我通过大量的试验和错误发现,通常在非 VR 环境中有效的方法在 WebVR 中无效,我假设是因为透视相机的行为可能已经被覆盖了?
所以如下:
function render() {
camera.translateZ(-0.02);
renderer.render( scene, camera );
}
不起作用,相机保持静止。所以我考虑将相机添加到另一个对象并移动该对象:
var cube = new THREE.Mesh( geometry, material );
scene.add( cube );
cube.add(camera);
...
function render() {
cube.translateZ(-0.02);
cube.rotation.copy(camera.rotation);
renderer.render( scene, camera );
}
上述排序工作,相机随着立方体移动但旋转关闭。透过纸板观察器并朝北看,似乎为了让相机向东移动,我必须将观察器向东旋转 180 度,以便我朝南。
我想我可能对四元数和欧拉旋转感到困惑,或者我错过了 vector3 定位的技巧?
任何想法都非常感谢!
【问题讨论】:
标签: javascript three.js google-cardboard webvr