将相机移动到侧面并旋转它 [Autodesk forge viewer]

Move camera to sides and rotate it [Autodesk forge viewer]

我正在尝试将相机向左、向右、向后和向前移动并左右旋转。

这是我试过的旋转方式:

function onRotateLeftButtonClicked(event) {
    event.preventDefault();
    var target = viewer.navigation.getTarget();
    var q = new THREE.Quaternion();
    q.setFromAxisAngle(new THREE.Vector3(0, 0, 1), 0.1);

    target.applyQuaternion(q);
    viewer.navigation.setTarget(target);
    orientUp();
}

向左移动:

function onLeftButtonClicked(event) {
    event.preventDefault();
    _camera.translateX(-1);
    orientUp();
}

前锋:

function onForwardButtonClicked(event) {
    event.preventDefault();
    _camera.translateZ(-1);
    orientUp();
}

但这只在某些时候有效,其他时候旋转完全混乱,沿 z 轴左右旋转,向前和向后旋转相机沿 z 轴 180 度。

那么你应该如何控制相机呢?

PS:我用第一人称视角。

注意相反的方向显然是对称的。 _cameraviewer.getCamera()

它看起来在你的每一个操纵相机,navigation.setView是不是叫?在另一个线程中,还讨论了相机操作: Controlling camera in Forge viewer

在帖子中,我们的同事 Cyrille 提到了 the sample he produced,其中手机摄像头非常适合 VR。您可以在以下位置找到相关代码: https://github.com/cyrillef/google-cardboard-vr/blob/2015c7e9c653422d1c466ff129dc1d503f8218c0/www/js/VRTool.js

我还提到了我制作的一个小样本,我manipulated the camera by mobile。相关代码 https://github.com/xiaodongliang/Forge-Viewer-Mobile-Sensor/blob/master/www/main-js/MobileGyro.js

你能看看这些是否对你的问题有所帮助吗?如果它不起作用,你能提供一个你的代码项目的小样本吗?如果有任何隐私数据,您可以通过电子邮件 forge.help@autodesk.com 与我们联系。