Я узнал из многих источников и путем повторной реализации функции и самостоятельного изучения матриц, что gluLookAt() эквивалентен вращению, за которым следует перевод в обратную координату глаза. Реализация аналогична в OpenGL, MESA, Cogl и т. д., и хороший обзор здесь: http://pic.dhe.ibm.com/infocenter/aix/v7r1/topic/com.ibm.aix.opengl/doc/openglrf/gluLookAt.htm
Однако рассмотрим случай, когда цель наблюдения находится в начале координат, т. е. (0, 0, 0), а виртуальная камера немного смещена относительно оси Z, например, (2, 2, 10). Результат gluLookAt() должен иметь начало в центре поля зрения. Начальный шаг вращения не имеет значения, но более поздний шаг смещения смещает начало координат от центра!
Можете ли вы объяснить мое неправильное представление о gluLookAt()?