Axes differences between all other 3D Design Tools and ThreeJs

Hello everyone,
Z axes represents height in all other 3D Design Tools like Blender, Maya, AutoCad, SketchUp etc… But in ThreeJs Y axis is getting higher towards the upside.
Is there anything that I should fix here or I need to change my point of view?

Others:



and ThreeJs:

You may also want to pay attention to handiness, as the 3D zoo has all kinds of animals:

6 Likes

So ThreeJs is in ( Right-Handed + y-up) right?

OK, for whom who wants to swap those here is the code

// z-up
camera.up = new THREE.Vector3(0,0,1)

I’ve been down this road… and I have feelings…
Consider using whatever up axis/handedness is appropriate in your tool. Trying to coerce them into your preference is an actual nightmare. I used to think Z up was The One True Way… and made heroic efftorts to keep it that way and I wasted so much time. The blender exporter for GLTF automatically converts Z up to Y up. (there’s a checkbox you can toggle) but this is both a hint and warning. :smiley: The list of things you have to hack to force a change in up vector is long and tedious. It’s all fun and games until you need to rotate a skybox shader… or orbitcontrols… etc. etc.
I know intuitively it seems that X/Y should be the ground plane, but instead try to think of X and Y to be the camera viewing plane. If you want part of your app to still have X,Y in some other orientation, you can always put it under a different node with a 90 degree rotation, and you can keep your Z up logic for just that thing. You can even set your scene node.rotation to compensate if that’s your jam, (though even doing it at this high level can introduce some problems.)
Just 2c from someone with the scars.

2 Likes

I appreciate your sincere response. However, since I’m working with data parsed from a 3D design app where Z is up, having consistent upward-facing axes is crucial for my task. :metal:t2:

Yeah. Re-read the part in my post about inserting a node.

Just swapping the up vector on the camera means that environment maps or matcaps will be rotated 90degrees. Many of the controls like orbitcontrols/trackball controls may need additional tweaks to accommodate. See you on the other side. :smiley: