glLoadMatrixf似乎无法正常工作

时间:2014-08-31 20:01:32

标签: c++ opengl

我遇到了glLoadMatrixf的问题。它似乎没有加载 适当给定矩阵。我正在通过使用检查矩阵来调试它 glGetFloatv()

float modelMatrix[16] = {
  1, 0, 0, 0,
  0, 1, 0, 0,
  0, 0, 1, 0,
  0, 0, 5, 1
};

glMatrixMode(GL_MODELVIEW);

glLoadMatrixf(modelMatrix);

GLfloat m[16];
glGetFloatv(GL_MODELVIEW_MATRIX, m);

在Visual Studio 2013中进行调试时,m将返回

m 0x004aeb50 {-107374176., -107374176., -107374176., -107374176., 
              -107374176., -107374176., -107374176., ...}

这让我相信矩阵没有正确加载。

我正在使用OpenGL版本4.0.12874,freeglut和glew。根据我的搜索 在线,这是加载自定义矩阵的标准方法。我很茫然。 任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:1)

最初,我在初始化窗口时调用glutInitContextVersion(4, 1);。这样做导致在每次适用的GL呼叫之后显示错误1282。

我将init更改为glutInitContextVersion(3, 1);,现在一切正常。 glGetError现在在所有适用的GL呼叫后返回0。