我正在开发一款使用OpenGL的小游戏。
我收到了gl_stack_underflow错误。我已经完成了代码,每个glPopMatrix都有一个glPushMatrix。还有什么想法可能导致这个错误?
答案 0 :(得分:2)
你有没有做过
glMatrixMode(GL_MODELVIEW);
/* ... */
glPushMatrix();
"均衡"
glMatrixMode(GL_PROJECTION);
/* ... */
glPopMatrix();
在推/弹操作时哪个矩阵处于活动状态很重要。
无论如何,你根本不应该使用OpenGL内置矩阵操作。使用GLM,Eigen或linmath.h之类的东西来构建矩阵作为程序数据结构的一部分,只需加载glLoadMatrix
所需的矩阵,或者当你最终选择着色器时glUniform
。< / p>
不,OpenGL内置矩阵操作不 GPU加速,因此使用它们没有任何好处。