OpenGL矩阵堆栈

时间:2012-03-28 19:38:23

标签: opengl matrix stack

如果我打电话

float before[16];
float during[16];
float after[16];
glGetFloatv(GL_MODELVIEW_MATRIX, before);
glPushMatrix();
glGetFloatv(GL_MODELVIEW_MATRIX, during);
glPopMatrix();
glGetFloatv(GL_MODELVIEW_MATRIX, after);

之前和之后的值是不同的。我是否想念一些东西,我原以为这些功能都不能修改矩阵。 Pop似乎是罪魁祸首,因为在此期间是相等的。

1 个答案:

答案 0 :(得分:0)

他们应该是相同的。 glPushMatrix推送当前矩阵的副本,之后不应该影响前一个矩阵,并且在glPopMatrix之后将再次变为当前矩阵。

检查glGetError。如果矩阵堆栈溢出,可能会发生一些不好的事情。