我正在尝试将相机向左,向右,向后和向前移动并向左和向右旋转。
这是我尝试轮换的内容:
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();
}
FOWARD:
function onForwardButtonClicked(event) {
event.preventDefault();
_camera.translateZ(-1);
orientUp();
}
但这仅在某些情况下有效,而其他时候旋转完全混乱,左右旋转沿z轴向前和向后将摄像机沿z轴翻转180度。
那你怎么这样控制相机呢?
PS:我是在第一人称视角中这样做的。
注意相反的方向显然是对称的。 _camera
为viewer.getCamera()
。
答案 0 :(得分:0)
它看起来在你对相机的每个操作中,都没有调用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与我们联系。