我想知道是否有人可以帮助我学习如何正确使用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吗?
谢谢
答案 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};
现在全部工作 - 谢谢。