首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

opengl中pushmatrix(),popmatrix()前后有关问题

2013-07-09 
opengl中pushmatrix(),popmatrix()前后问题今天看了一段nehe的代码发现如下glMatrixMode(GL_PROJECTION)g

opengl中pushmatrix(),popmatrix()前后问题
今天看了一段nehe的代码
发现如下
glMatrixMode(GL_PROJECTION);
glPushMatrix();
glLoadIdentity();
glOrtho(0,800,0,600,-1,1);
glMatrixMode(GL_MODELVIEW);
glPushMatrix();glLoadIdentity();
。。。
。。。
。。。
glMatrixMode(GL_PROJECTION);
glPopMatrix();
glMatrixMode(GL_MODELVIEW);
glPopMatrix();
为什么先压的PROJECTION矩阵却要先POP PROJECTION矩阵呢?栈不是先入后出吗?我把最后modelview和projection调换位置后确实出现绘图错误,也就是这段代码肯定正确。求问? OpenGL 栈 pushmatrix popmatrix
[解决办法]

引用:
看改成下面的顺序是不是一样

glMatrixMode(GL_PROJECTION);
glPushMatrix();
glLoadIdentity();
glOrtho(0,800,0,600,-1,1);
glPopMatrix();

glMatrixMode(GL_MODELVIEW);
glPushMatrix(); 
glLoadIdentity();
glPopMatrix(); 


GL_PROJECTION 和 GL_MODELVIEW 代码处理上是不相干的,当然逻辑上是一体的

下面的顺也应该是没问题的
glMatrixMode(GL_MODELVIEW);
glPopMatrix(); 
glMatrixMode(GL_PROJECTION);
glPopMatrix();

热点排行