начало координат ВСЕГДА в камере. твой драгоценный gluLookAt ничо другого не делает кроме как перемещает и поворачивает МИР.
// Перемещаем относительно камеры
glRotatef -scenerotY, 1,0,0
glRotatef scenerotX, 0,1,0
glTranslatef xtrans, 0, ztrans
//Перемещаем относительно своих координат!
glTranslatef x, y, z
glRotated RotateSpeed, RotateX,RotateY,RotateZ
|
вообще то нет. умножение матриц не коммутативно (т.е. AxB != BxA), это должно быть всем известно с институтской скамьи.
Если ты сначала повернеш мир, а потом его переместиш, то он у тебя переместится в другую точку (мир то уже перевернут).
а вот если ты его сначала переместиш а потом перевернеш, то он переместится туда, куда тебе надо.