Конференция "Игры" » OpenGL Связь между командами gluLookAt и glRotate
 
  • Unknown user (19.06.08 11:48) [0]
    Я использую команду gluLookAt для позиционирования камеры, но мне надо знать углы поворота сцены. То есть, зная позицию наблюдателя EyePos и координаты точки наблюдения ObservePos нужно перейти к углам поворота сцены относительно координатных осей AngleX,AngleY,AngleZ (к эквиваленту использования команд glRotate, glTranslate). И обратная задача, зная углы разворота сцены AngleX,AngleY,AngleZ относительно координатных осей и позицию центра сцены ScenePos, найти координаты EyePos и ObservePos.
  • @!!ex © (19.06.08 19:03) [1]
    var
    mvMatrix: array[0..15] of GLDouble;
    glGetDoublev(GL_MODELVIEW_MATRIX,@mvMatrix);



    Спасет отца русской демократии.
  • Unknown user (19.06.08 20:05) [2]

    > var
    > mvMatrix: array[0..15] of GLDouble;
    > glGetDoublev(GL_MODELVIEW_MATRIX,@mvMatrix);
    >
    > Спасет отца русской демократии.


    Это еще не все, что делать дальше?
  • @!!ex © (19.06.08 20:22) [3]
    > [2] Unknown user   (19.06.08 20:05)

    Дальше из матрицы получать угол и все остальное пожеланию.
    Вот только из курса ЛА и АГ, вы должны знать, что решений - бесчисленное множество, т.к. количество комбинаций углов, которые могут привести к текущему состояни - бескоенчно велико.
    Гугли на тему: Углы Эйлера.
  • Sapersky (20.06.08 13:06) [4]
    Если мы изначально знаем вектор направления камеры (ObservePos - EyePos), то не проще ли получить из него углы банальными арктангенсами? Или это будут не те углы?
 
Конференция "Игры" » OpenGL Связь между командами gluLookAt и glRotate
Есть новые Нет новых   [134430   +2][b:0][p:0.001]