如何正确使用glMultMatrix - iPhone - OpenGL ES

时间:2012-02-18 12:32:46

标签: iphone objective-c xcode opengl-es 3d

我想知道是否有人可以帮助我学习如何正确使用glMultMatrix。

我的应用程序中有以下渲染代码,但是看起来我不能只将带有矩阵的C结构提供给glMultMatrix:

-(void)render
{

matrixStruct matrices[] = {1, 0, -0, -9.37988, 0, -0.651537, 0.758617, 1133.64, 0, 0.758617, 0.651537, 129730, 0, 0, 0, 1};


// clear the matrix
glPushMatrix();
glLoadIdentity();

//scale
glScalef(0.00001, 0.00001, 0.00001);

    glMultMatrixf(matrices);

[mesh render];

//restore the matrix
glPopMatrix();
}

我从http://www.opengl.org/sdk/docs/man/xhtml/glMultMatrix.xml的文档中了解到我需要提供的内容:

void glMultMatrixd( const GLdouble *    m);
void glMultMatrixf( const GLfloat *     m);

m
Points to 16 consecutive values that are used as the elements of a 4 × 4 column-major        matrix.

我不确定如何格式化矩阵并将其传递给glMultMatrix。我还需要在调用render之前启用glMatrixMode吗?

谢谢

1 个答案:

答案 0 :(得分:0)

解决了 - 我需要传递一系列花车:

e.g

float matrices [] = {1,0,0,0,0,1,0,0,0,0,1,0,-578.556,7068.92,48.6953,1};

现在全部工作 - 谢谢。