我对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。根据我的搜索
在线,这是加载自定义矩阵的标准方法。我很茫然。
任何帮助将不胜感激。

最佳答案

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

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

10-07 12:22