在Three.js中切换相机类型时,相机的方向未保留

时间:2018-08-28 00:02:18

标签: javascript three.js

All of the code

您好,我在透视相机和正交相机之间切换时遇到问题。我的目标是能够有一个开关,以在两种相机类型之间轻松地来回切换,同时保留相机的位置和方向。这是相关的代码(第98行):

{{1}}

我的问题是,对于某些摄影机旋转,透视摄影机和正交摄影机之间的切换会导致所得摄影机的方向不同。我以为这是四元数属性的问题,但是将其更改为先前的值似乎没有任何效果。

我似乎无法弄清楚该如何解决。我将不胜感激,谢谢您!

编辑:我已经弄清楚了,但是我现在正在做某件事,所以稍后我将使用我的解决方案进行更新

1 个答案:

答案 0 :(得分:0)

执行以下操作:

orthoCamera=orthographic camera instance
orthoControls=document.body.appendChild(renderer.domElement);
orthoControls=new THREE.TrackballControls(orthoCamera,renderer.domElement);
perspectiveCamera=perpsective camera instance
perspectiveControls=new THREE.TrackballControls(perspectiveCamera,renderer.domElement);
...
display.add(guiOptions.display,"orthoCamera").name("Orthographic Camera");
...
function animate() {
    requestAnimationFrame(animate);
    orthoControls.update();
    perspectiveControls.update();
    if (guiOptions.display.orthoCamera){
        renderer.render(scene, orthoCamera)
    }
    else{
        renderer.render(scene, perspectiveCamera)
    }
}

这两个控件同时处于活动状态,并且在摄影机视图之间切换只是在要进行渲染的巫婆摄影机之间进行切换。