Up until now I haven't been too concerned with jME's coordinate system as everything I've done has basically been relative to everything else, and so long as those relationships were kept I wasn't concerned if it was x, y, z or positive/negative.
Now, I'm trying to do something a little more precise and I note something that runs contrary to how I thought jME's coordinate system works.
To explain, let's say that I have a camera at 0,25,-25 looking at 0,0,0 (giving one the perspective of having a sheet of paper, so to speak, on a desk in front of you, and looking at its center). I'm not concerned with the up/down Y axis in this explanation, since it doesn't figure into this question. Let's say that I want to drop a box into the scene at 15,0,15. I expect that the coordinates are set up such that if both x and z are positive then the box would appear to the forward right of the center. However, that is not the case. It appears to the forward ~left~ of the center. And, of course, everything else follows this scheme.
Is this normal? I really don't care in the end, but if I'm sketching something out on graph paper (like an overhead view of a map that I want to use as my low tech world designer ; - ) that I can think in terms of the jME coordinate system.
If this is not normal… then wth? What controls the coordinate system?
well yes X+ is right X- is left, that's just the way it is
I assume you're considering 'Forward' as further away from the camera, right?
Normally, a positive Z means (in your case) that it's closer to the camera…
Be sure to take a look at the FAQhttp://www.jmonkeyengine.com/wiki/doku.php?id=the_faq
Q. Why are the X and Z co-ordinates reversed ?
A. You need to turn the camera round 180 degrees:
cam.setAxes(new Vector3f(-1f, 0, 0), new Vector3f(0, 1, 0), new Vector3f(0, 0, -1f));
Yes I think it depends on how your camera is set up. This is the way SimpleGame has it:
Vector3f loc = new Vector3f( 0.0f, 0.0f, 25.0f );
Vector3f left = new Vector3f( -1.0f, 0.0f, 0.0f );
Vector3f up = new Vector3f( 0.0f, 1.0f, 0.0f );
Vector3f dir = new Vector3f( 0.0f, 0f, -1.0f );
So by default you are looking along -z. Anything you can see with a positive x will be to the right. If you turn around (like by doing lookat 0,0,0 when you're positioned along -z), then anything in that direction with a positive x will appear to the left.
Thanks for the answers! Order (or at least understanding) has been restored the the universe!