Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Мультимедия, OpenGL/DirectX > Вопрос о glulookat


Автор: Salatovec 30.12.2008, 03:20
Здравствуйте, столкнулся с проблемой - имеется шар и функция глюлукат след. вида: 
gluLookAt(Cx+Xpos,Cy+Ypos,Cz+Zpos,Xpos,Ypos,Zpos,0,1,0);

Шар перемещаю по оси Y вниз и на экране он, как и должен, летит вниз. Но если я вращаю камеру и смотрю на шар снизу - то шар не летит в камеру, а летит вниз. Как я понял оси перемещаются вместе с камерой. А как их закрепить?

З.Ы. извиняюсь если некорректно поставил вопрос, но я надеюсь проблема ясна =\

Заранее спасибо! 

Автор: Rickert 30.12.2008, 05:39
Нет, ничего не ясно. Опишите переменные для начала: какая за что отвечает, какая меняется.

Автор: Salatovec 30.12.2008, 17:43
Xpos,Ypos,Zpos это координаты шара, меняется Ypos от 0 до 400 с шагом 10.
Cx,Cy,Cz это координаты положения камеры, меняются Cy и Cz, т.к. камеру я вращаю по вертикальной оси, по формулам
Cy = 20*sin(angleV);
Cz = 20*cos(angleV);
где angleV+=M_PI/180 или angleV-=M_PI/180;

Автор: Gongex 14.2.2009, 15:54
давай я тебе кину исходник для перемещения в 3Д уровне.Я скачивал его на другом сайте.
Дело в том что у тебя Пи и /180 этого мало,потому что в моем исходнике перменных 10-15 для движения в 3Д мире. Чувствительность мыши,велчина передвижения,угол по х,угол по игрек....
дофига,Надо быть физиком что бы такое сделать.

Добавлено через 7 минут и 28 секунд
И еще,ты не прав.Там не координаты шара....там 9 переменных в глюлокАТ...первые три-это откуда смотрим,вторые три -куда смотрим....Элементарнее тебе сделать 

gluLookAt(Mx,My,Mz,Cx,Cy,Cz,0,1,0);

if VK_LEFT {Cx=Cx-1}
if VK_UP  {Cy=Cy+1}

И шар буде двигаться ,и ты будеть стоять смотреть на месте.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)