传统上,在 3D 投影中,Y 轴是代表“上下”的轴。我学会了用其他引擎把它想象成那个轴是 Z 轴。我想知道的是Three.JS中是否有办法使 Z 轴成为“上/下”轴。如果是这样,有什么后果吗?
这是我想要的图表:
传统上,在 3D 投影中,Y 轴是代表“上下”的轴。我学会了用其他引擎把它想象成那个轴是 Z 轴。我想知道的是Three.JS中是否有办法使 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。
编辑:
为了说明一个例子,这里是您创建的 jsfiddle,lookAt
在设置up
矢量后稍作修改以调用:http: //jsfiddle.net/NycWc/1/
以下将达到您想要的结果
THREE.Object3D.DefaultUp.set(0, 0, 1);
根据文档
.DefaultUp : Vector3
对象的默认向上方向,也用作 DirectionalLight、HemisphereLight 和 Spotlight 的默认位置(创建从上向下发光的灯光)。默认设置为 ( 0, 1, 0 )。
我对一个对象有这个问题。这是我修复它的方法。
object.rotation.z = 90 * Math.PI/180;
object.rotation.x = -90 * Math.PI/180;
这改变了它的方向,就像你问的那样。
xyz 坐标系应始终使用右手定则设置。创建自己的约定根本不是一个好的计划,并且会引起很多混乱。您可以随意旋转坐标系,但不要改变轴的方向。如果你真的想做你展示的东西,你可以制作一个 x,y,-z 坐标系。