Matrix 输出ModelView矩阵坐标

Matrix 输出ModelView矩阵坐标,matrix,opengl-es-2.0,Matrix,Opengl Es 2.0,在应用了各种变换之后,我试图在程序中数学上遵循ModelView矩阵(以及其他一些矩阵)的坐标。我想让程序输出这些坐标,但我不能完全实现 modelViewMatrix = GLKMatrix4MakeTranslation(-1.5f, 1.25f, -4.0f); modelViewMatrix = GLKMatrix4Scale(modelViewMatrix, 2.75, 2, 0); GLfloat MVMatrix[16]; if (not_printed) { g

在应用了各种变换之后,我试图在程序中数学上遵循ModelView矩阵(以及其他一些矩阵)的坐标。我想让程序输出这些坐标,但我不能完全实现

modelViewMatrix = GLKMatrix4MakeTranslation(-1.5f, 1.25f, -4.0f);
modelViewMatrix = GLKMatrix4Scale(modelViewMatrix, 2.75, 2, 0);

GLfloat MVMatrix[16];    
if (not_printed) {
    glGetFloatv(GL_MODELVIEW_MATRIX, MVMatrix);
    for (int i=0; i<16; i++) {
        printf("%f ", MVMatrix[i]);
    }
}
not_printed = 0;
modelViewMatrix=GLKMatrix4MakeTranslation(-1.5f,1.25f,-4.0f);
modelViewMatrix=GLKMatrix4Scale(modelViewMatrix,2.75,2,0);
GLM矩阵[16];
如果(未打印){
glGetFloatv(GL_MODELVIEW_矩阵,MVMatrix);

首先,GLK与OpenGL矩阵堆栈无关,它创建自己的矩阵,而不是与OpenGL的“当前”矩阵相乘

另一件我觉得特别奇怪的事情是,
GL\u MODELVIEW\u MATRIX
甚至是在OpenGL ES 2.0上下文中定义的,这是非标准的行为。OpenGL ES 2.0没有当前的颜色、当前的矩阵等。当它强制独占使用可编程管道时,它将这些东西去掉了

相反,您要做的是:

modelViewMatrix=GLKMatrix4MakeTranslation(-1.5f,1.25f,-4.0f);
modelViewMatrix=GLKMatrix4Scale(modelViewMatrix,2.75,2,0);
如果(未打印){

对于(inti=0;iPerfect)。非常感谢!