传统上,在3D投影中,Y轴是表示“上下”的轴。我学会了用其他引擎思考它,因为该轴是Z轴。我想知道的是在Three.JS中有没有办法让Z轴成为“上/下”轴。如果是这样,是否会有任何后果?Three.JS旋转投影使y轴成为z轴
这里是我想要什么图:
传统上,在3D投影中,Y轴是表示“上下”的轴。我学会了用其他引擎思考它,因为该轴是Z轴。我想知道的是在Three.JS中有没有办法让Z轴成为“上/下”轴。如果是这样,是否会有任何后果?Three.JS旋转投影使y轴成为z轴
这里是我想要什么图:
您可以更改摄像头而不是整个坐标系。例如:
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。
编辑:
一个例子来说明,这里就是你创建稍加修改设置up
矢量之后调用lookAt
的的jsfiddle:http://jsfiddle.net/NycWc/1/
感谢您的回答!我现在没有时间测试它,但很快就会尝试。这对其他相机方法有什么影响吗?我仍然能够正常使用'lookAt'吗? –
嗯,我会认为lookAt仍然有效,因为它使用了相机的向上矢量:https://github.com/mrdoob/three.js/blob/master/src/cameras/Camera.js#L32 – jterrace
也许我我做错了什么,但我期望相机升高,而不是它似乎离开http://jsfiddle.net/NycWc/ –
我有这个问题与对象。这是我如何修复它。
object.rotation.z = 90 * Math.PI/180;
object.rotation.x = -90 * Math.PI/180;
这改变了它的方向,就像你问的那样。
我正在寻找一种方法来改变整个坐标系,以便改变位置y和z将使我所描述的改变。 –
的XYZ坐标系应始终设置与右手的规则。创建自己的约定并不是一个很好的计划,会造成很多混乱。您可以随意旋转坐标系,但不要更改轴的方向。如果你真的想做你显示的内容,你可以制作一个x,y,-z坐标系。
对我来说,右边的图片在错误的位置上有“x”和“y”。他们不应该交换? – aarman
你能指点我到哪里我可以阅读更多关于这个公约?我从来没有遇到过: -/ – Kuba