【发布时间】:2013-09-09 10:31:25
【问题描述】:
我正在玩 opnegl(旧的,对不起现代的 opengl 家伙),我正在尝试理解矩阵并将glRotatef、glTranslatef 等替换为glLoadMatrixf。
我不明白如何设置一个不旋转、不平移、不缩放的矩阵。我以为我可以使用单位矩阵,但它不起作用。
我想要一个这样写的矩阵:
glPushMatrix();
{
drawMyCube();
}
glPopMatrix();
相当于写:
glPushMatrix();
{
glLoadMatrixf( myCubeTransform.getTranspose() );
drawMyCube();
}
glPopMatrix();
如果我有类似的东西:
/* 1: */ // glLoadMatrixf( myCubeTransform.getTranspose() );
/* 2: */ // glLoadIdentity();
首先我想使用 myCubeTranform Matrix4 类(我使用的是行主顺序矩阵类,所以我必须 getTranspose() 来匹配 opengl 列主顺序)但它不起作用,所以我使用glLoadIdentity 确保不会弄乱我的 Matrix4 类(矩阵代码中的一些错误?)并且.. 它也不起作用。
所以我的问题是:如何设置一个没有平移、没有旋转、没有缩放的变换矩阵?
“不起作用”是指我的立方体不在原点(我想要的位置)。实际上,我根本看不到它(可能是在视锥体之外绘制的?)
【问题讨论】: