Just got an issue with a 3D first person view I'm trying to create for use with LWJGL. I've got 3 vectors representing the side, up and forward axes set at (1, 0, 0), (0, 1, 0) and (0, 0, 1) respectively. When rotating the view I perform a "rotation around an arbitrary axis" about the vector representing the axis I want.
It's all working as expected, but I want the camera to rotate around a fixed Y axis (0, 1, 0) as it does in most FPS games, but at the moment it's just rotating around the up vector, whichever way it's pointing. The issue here is that X axis rotations changed the direction of the Y axis, so it won't stay at (0, 1, 0). Is there any way around this? Here's my current camera class for reference: http://www.java-gaming.org/?action=pastebin&id=684
Thanks in advance for any help