Rotating the Camera
To perform a first-person rotation, you rotate the your camera's look and up around eye. To orbit the point you're looking at, you rotate eye and up around look.
The camera's pitch rotation is around its local horizontal axis, which is perpendicular to its eye->look and up vectors. Its roll rotation is around its eye->look vector.
The camera is gimbal-locked by default. This means that its yaw rotation spins around the World-space Y-axis. This is helpful to avoid disorientation and makes the rotation easier to control with the mouse. When you disable gimbal lock, the camera's yaw rotation spins around its up vector, which allows it to rotate freely, like a trackball.
Rotation degrees are incremental, ie. relative to the camera's current position.
Recall that as you rotate, translate and pan the camera, the only state that xeometry remembers is the camera's current eye, look and up values (ie. it doesn't remember any rotation angles).
Disabling gimbal locking:
Rotating the camera's eye about look, pivoting around up:
Rotate the camera's eye about look, pivoting around the axis orthogonal to eye->look and up:
Rotating the camera's look about eye, pivoting around the World-space Y-axis if gimbal locking is enabled, otherwise pivoting around up:
Rotating the camera's look about eye, pivoting around the World-space Y-axis if gimbal locking is enabled, otherwise pivoting around the axis orthogonal to eye->look and up: