Привет, я работаю над проектом, и у меня возникла проблема Экран/земля дрожит, когда я переместил главный объект.Экран трясет, когда объект перемещается
Обычно, когда я переехал с кнопкой «w», я не получаю проблемы. Но если вы двигаетесь во время вращения камеры, у меня возникла проблема.
Чтобы увидеть: укажите степень 30 с помощью правой кнопки мыши. (Не отпустите кнопку) и держите кнопку w во время вращения объекта. вы увидите тряску на земле.
Я думаю, проблема в том, что мой расчет функции looat.
gluLookAt(sin(rot*PI/180)*(10-fabs(roty)/4) +movex ,3-(roty/2), cos(rot*PI/180)*(10-(fabs(roty)/4)) +movez , -sin(rot*PI/180)*6 + movex, roty, -cos(rot*PI/180)*6 +movez, 0, 1, 0);
Вот моя функция вращения. Я рисую все после этой функции.
void System::rotater(){
if(mouseStates[2][0]==1 && mx!= savex && mx!=mouseStates[2][1]){
rot += (mx-mouseStates[2][1]) * 90/glutGet(GLUT_WINDOW_WIDTH)/2;
if(rot>360)rot-=360;
if(rot<0)rot= 360+rot;
}
glRotatef(rot,0,1,0);
}
И последний мой вариант перемещения здесь:
if(a==87 || a==119){
movex -= sin(rot*PI/180)/3;
movez -= cos(rot*PI/180)/3;
}
Пожалуйста, не заставляйте людей загружать и выполнять неизвестные двоичные файлы. Поставьте полный исходный код через pastebin или репозиторий на gitourious, github и т. Д., Если нужно. ** НО БЕЗ БИНАРНЫХ ИСПОЛНЕНИЙ! ** – datenwolf
Хорошо, я отредактировал и добавил полный источник. – nadirg
Я думаю, что проблема касается функций sinus cosinus. Потому что я не могу видеть тряску без них gluLookAt (movex, 3- (roty/2), movez +5, movex, roty, movez, 0, 1, 0); , но мне нужно, чтобы они следовали за объектом сзади. – nadirg