Мне в углу окна OpenGL надо нарисовать оси, повернутые под углом как камера смотрит, но без сдвига камеры
Я делаю так:
glPushMatrix();
glViewport(0,0,w/4,h/4);
::glMatrixMode(GL_PROJECTION);
::glPushMatrix();
::glLoadIdentity();
double Aspect = (double)w/(double)h;
::glOrtho(-2*Aspect,2*Aspect,-2,2,-200,2000);
Рисую в координатах (0,1)
А потом
glPopMatrix();
glMatrixMode(GL_MODELVIEW);
glPopMatrix();
glPopAttrib();
glViewport(0,0,w,h);
glPopMatrix();
Рисует под углом каким нужно, но сдвигает так как и сдвинута камера. Как мне оставить только поворот без сдивига?
Спасибо
Здравствуйте, Аноним, Вы писали:
А>Мне в углу окна OpenGL надо нарисовать оси, повернутые под углом как камера смотрит, но без сдвига камеры
А>Я делаю так:
А>А>glPushMatrix();
А> glViewport(0,0,w/4,h/4);
А> ::glMatrixMode(GL_PROJECTION);
А> ::glPushMatrix();
А> ::glLoadIdentity();
А> double Aspect = (double)w/(double)h;
А> ::glOrtho(-2*Aspect,2*Aspect,-2,2,-200,2000);
А>
А>Рисую в координатах (0,1)
А>А потом
А>А>glPopMatrix();
А> glMatrixMode(GL_MODELVIEW);
А> glPopMatrix();
А> glPopAttrib();
А> glViewport(0,0,w,h);
А> glPopMatrix();
А>
А>Рисует под углом каким нужно, но сдвигает так как и сдвинута камера. Как мне оставить только поворот без сдивига?
А>Спасибо
Мне кажется ты чтото перемудрил с glPushMatrix() и glPopMatrix().
Здравствуйте, Аноним, Вы писали:
А>Мне в углу окна OpenGL надо нарисовать оси, повернутые под углом как камера смотрит, но без сдвига камеры
А>Я делаю так:
А>
А>glPushMatrix();
А> glViewport(0,0,w/4,h/4);
А> ::glMatrixMode(GL_PROJECTION);
А> ::glPushMatrix();
А> ::glLoadIdentity();
А> double Aspect = (double)w/(double)h;
А> ::glOrtho(-2*Aspect,2*Aspect,-2,2,-200,2000);
А>
А>Рисую в координатах (0,1)
А>А потом
А>А>glPopMatrix();
А> glMatrixMode(GL_MODELVIEW);
А> glPopMatrix();
А> glPopAttrib();
А> glViewport(0,0,w,h);
А> glPopMatrix();
А>
А>Рисует под углом каким нужно, но сдвигает так как и сдвинута камера. Как мне оставить только поворот без сдивига?
А>Спасибо
Попробуй рисовать в модельно-видовой матрице а не в матрице проекций. Потому что если ты сразу после первого куска кода начнешь модифицировать матрицу, то изменения будут применимы ко всей сцене.