如何使用透视相机将对象的视图设置为正交投影?

时间:2018-02-09 12:57:41

标签: javascript three.js perspectivecamera

我正在尝试创建一个Gizmo(3D立方体),用于显示3D空间中相机的旋转。我正在使用three.js

我创建了一个立方体并将其指定为主摄像机的子节点。通过这种结构,我可以在局部世界中旋转立方体,减去它的全局旋转。因此,它消除了相机旋转对立方体的影响,并且立方体仍然朝向世界坐标。

问题是我正在使用透视摄像头,我的立方体位于屏幕的左下角。这会在立方体视图中创建深度,并提供有关世界空间中摄像机方向的错误信息。

以下是一些视图示例

corner view

top view

这是一种消除相机旋转的方法。

var geometry = new THREE.BoxGeometry( 1, 1, 1 );
var material = 
 new THREE.MeshLambertMaterial({color: 0x282828, transparent: true, opacity: 
0.4});
var cube = new THREE.Mesh( geometry, material );
camera.add(cube)
this.rotationUpdate=function(){
    var worldRot=cube.getWorldRotation();
    worldRot._x+=offset;
    worldRot._y+=offset;
    worldRot._z+=offset;
    cube.rotateX(-worldRot._x);
    cube.rotateY(-worldRot._y);
    cube.rotateZ(-worldRot._z);
    debugger;
}

所以我的问题是,如何操作旋转方法,使立方体在正交相机上被投影。

0 个答案:

没有答案