如何偏移openGL对象,同时仍保持像I';我直视着它?

如何偏移openGL对象,同时仍保持像I';我直视着它?,opengl,matrix,perspective,Opengl,Matrix,Perspective,我的大脑已经融化了,因为我一直在这个问题上 我需要在x和y方向上将一个立方体从原点偏移两倍,但是保持单点透视,就像我正直视它一样 每次我平移立方体时,它就好像投影来自原点一样 我想不出怎么做 //this is here to draw a graph glMatrixMode (GL_PROJECTION); glLoadIdentity(); glOrtho(-10,10,-10,10,-10,10); glBegin(GL_LINES); glVertex3f(-10,

我的大脑已经融化了,因为我一直在这个问题上

我需要在x和y方向上将一个立方体从原点偏移两倍,但是保持单点透视,就像我正直视它一样

每次我平移立方体时,它就好像投影来自原点一样

我想不出怎么做

//this is here to draw a graph  
glMatrixMode (GL_PROJECTION);  
glLoadIdentity();  
glOrtho(-10,10,-10,10,-10,10);  
glBegin(GL_LINES);  
glVertex3f(-10, 0,0);  
glVertex3f(10, 0 ,0);  
glVertex3f(0, -10,0);  
glVertex3f(0, 10 ,0);  
glEnd();  



glPushMatrix();  
glLoadIdentity();  
glFrustum(-2.0, 2.0, -2.0, 2.0, 5, 100);

gluLookAt( 0,0,-6,
       0, 0, 0,
       0.0, 1.0, 0.0);
glutWireCube (.5);

glPopMatrix();

glFlush();

执行此操作时,您将保持
GL\u投影
模式处于活动状态。至少如果我理解您的要求,您希望在设置视口时使用
glu投影
(例如,使用
glOrtho
),但对于实际图形,您希望在
glu MODELVIEW
模式下工作。

您正在投影矩阵上使用gluLookAt。这是错误的,gluLookAt将应用于modelview矩阵。

矩阵模式与绘图调用无关。但是OP在投影矩阵上使用gluLookAt,这是错误的。gluLookAt将用于modelview矩阵。感谢您的回复。我找到了使用多个视口解决问题的方法。我先创建主视口,然后在左下角创建一个较小的视口。感谢yalls的评论,现在我的glulookat正在影响我的modelview矩阵。