Ok. So I got the correct orientation, while again, having to add +90d to the UP axis, which is now X, I think.
camera.rotation.reorder("YXZ");
cameraRotation = ( Math.round( THREE.Math.radToDeg( camera.rotation.z ) % 360 ) ) + ' ' + ( Math.round( THREE.Math.radToDeg( camera.rotation.y ) ) + 90 % 360 )
+ ' ' + ( Math.round( THREE.Math.radToDeg( camera.rotation.x ) % 360 ) );
This yields the correct result! But… why? Blender uses XYZ Euler
and Terragen uses XYZ Euler
just +Y UP and +Z Forward being the difference, but this is set in the FBX. So why is the order Three.js uses XYZ
wrong?
What does this mean for people choosing any other Euler order and detecting this problem?