Change the coordinate system


I used y-axis up but I try to change to a z-axis up system because the server I use for the client-server game is using that.

What I did is:

-all code where the direction is affected (hopefully)

-change the camera definition (up, left, direction)

so that it looks like :

cam.setFrustumPerspective(50,(float) display.getWidth() /

(float) display.getHeight(), 1, 8000);

Vector3f loc = new Vector3f(0.0f, 0.0f, 25.0f);

Vector3f left = world.camLeftVector;

Vector3f up = world.skyVector;

Vector3f dir = world.camDirectionVector;

cam.setFrame(loc, left, up, dir);


skyVector = new Vector3f(0.0f, 0.0f, 1.0f);

camDirectionVector = new Vector3f(0.0f, 1.0f, 0.0f);

camLeftVector = new Vector3f(-1.0f, 0.0f, 0.0f);

Now I can only see objects in the lower half of the screen except the plane that is used as the terrain.

Is there anything else I have to do as it looks like a culling problem?

One more effect: If you rotate the camera left or right using the mouse you can see a flickering like the camera would rotate on the view axis and snaps back. It's also put to a horizontal view when moved forward or backward so the vertical angle is set to 0.

I added lots of debug code and I'm sure it's none of my code that "corrects" the camera angle.

Maybe the up or left axis is hardcoded somewhere? Has anybody tried to change the coord system before?

I found the problem. Deep down in the code there was a shallow copy of cam.getDirection() and in the copy the vector was manipulated.

So jME does not have a problem with a different coordinate system.

All effects are gone. So if you find very strange behavior check your cam positioning code :wink: