传统上,在3D投影中,Y轴是表示“上下”的轴。我学会了用其他引擎来思考它,因为该轴是Z轴。我想知道的是Three.JS中是否有一种方法可以使Z轴成为“上/下”轴。如果是的话,会有什么后果吗?
这是我想要的图表:
答案 0 :(得分:41)
您可以更改相机而不是整个坐标系。例如:
var WIDTH = 1024;
var HEIGHT = 768;
var VIEW_ANGLE = 45;
var ASPECT = WIDTH / HEIGHT;
var NEAR = 0.1;
var FAR = 10000;
camera = new THREE.PerspectiveCamera(VIEW_ANGLE, ASPECT, NEAR, FAR);
camera.position.z = 300;
camera.up = new THREE.Vector3( 0, 0, 1 );
scene.add(camera);
这会更改摄像机的up
向量以使用Z-UP。
修改强>:
为了举例说明,在设置lookAt
向量后,您创建的jsfiddle稍加修改以调用up
:http://jsfiddle.net/NycWc/1/
答案 1 :(得分:5)
以下内容将达到您想要的结果
THREE.Object3D.DefaultUp.set(0, 0, 1);
.DefaultUp:Vector3
对象的默认向上方向,也用作DirectionalLight,HemisphereLight和Spotlight(创建自上而下发光的灯光)的默认位置。 默认设置为(0,1,0)。
答案 2 :(得分:2)
我遇到了这个问题。这就是我修复它的方法。
object.rotation.z = 90 * Math.PI/180;
object.rotation.x = -90 * Math.PI/180;
这改变了它的方向,正如你所要求的那样。
答案 3 :(得分:0)
应始终使用右手规则设置xyz坐标系。创建自己的约定根本不是一个好的计划,会引起很多混乱。您可以随意旋转坐标系,但不要更改轴的方向。如果你真的想做你展示的东西,你可以制作一个x,y,-z坐标系。