I created a room (actually a box) where the viewer was placed within and could rotate the view. Everything seemed to work fine, but after rotating past a certain point, the floor and ceiling appeared to become separated. THey were not rotating together anymore. How could they seem to be rotating together for a while and then suddenly, at a seemingly arbitrary point, start rotating at different rates (or possibly the floor stopped rotating completely.)? I was using the lookat function and I always loaded the identity matrix at the beginning of my dispaly routine.
Check to see if there are any glError’s after your camera setup. Also, if you are using gluLookAt for your camera matrix, you will need to make certain that the up vector and the point the camera looks at are not in the same direction.