OpenGL和GLUT不理解
我完全不理解opengl+glut的工作原理。。。。 请解释一下他为什么那样做=( 我有简单的代码 void display() { glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); glPushMatrix(); ChessboardSurrogate.Draw(6,8,50, 0,0); // draw chessboard(6x8) in (0,0,0) edge per cell 50 glPopMatrix(); glPushMatrix(); //glutSolidCube(100); //!!!!! glPopMatrix(); glLoadIdentity(); gluLookAt( 0.0, 0.0, -testSet::znear*2, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0); glMultMatrixf(_data->m); // my transformation matrix glutSwapBuffers(); } 无效显示() { glClear(GL_颜色_缓冲_位| GL_深度_缓冲_位); glPushMatrix(); 棋盘代理。绘制(6,8,50,0,0);//在每个单元格50的(0,0,0)边上绘制棋盘(6x8) glPopMatrix(); glPushMatrix(); //glutSolidCube(100);/!!!!! glPopMatrix(); glLoadIdentity(); gluLookAt(0.0,0.0,-测试集::znear*2, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0); glMultMatrixf(_data->m);//我的变换矩阵 glutSwapBuffers(); } 我得到了预期的结果 然后我取消了对SolidCube(100)的注释。在任何情况下,我甚至会推/弹出当前矩阵,然后用身份矩阵覆盖它。我想我会看到与cude相同的结果图像…。!我看到了什么…&*^-$%为什么 如果我添加代码 glRotatef(angleX,1.0,0.0,0.0); glRotatef(angleY,0.0,1.0,0.0); glRotatef(angleX,1.0,0.0,0.0); glRotatef(角度,0.0,1.0,0.0); 在狼吞虎咽之前,我会在现场看到棋盘。。。。。OpenGL和GLUT不理解,opengl,glut,Opengl,Glut,我完全不理解opengl+glut的工作原理。。。。 请解释一下他为什么那样做=( 我有简单的代码 void display() { glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); glPushMatrix(); ChessboardSurrogate.Draw(6,8,50, 0,0); // draw chessboard(6x8) in (0,0,0) edge per
这可能只是答案的一半,但你究竟为什么要在画图后设置矩阵?你希望它做什么 因此: 此外,始终确保设置了正确的矩阵:
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
gluLookAt()...
最后,除非Draw()方法更改modelview矩阵,否则Push/PopMatrix是无用的,应该避免使用(出于性能和可移植性的原因,因为它已被弃用)
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
gluLookAt()...