私はopnegl(古いもの、現代のopenglの人には申し訳ありません)で遊んでおり、マトリックスを理解しglRotatef
、glTranslatef
などをに置き換えようとしていglLoadMatrixf
ます。
回転なし、平行移動なし、スケールなしで行列を設定する方法がわかりません。単位行列を使用できると思いましたが、機能しません。
次のようなマトリックスが必要です。
glPushMatrix();
{
drawMyCube();
}
glPopMatrix();
は次のように書くことと同じです:
glPushMatrix();
{
glLoadMatrixf( myCubeTransform.getTranspose() );
drawMyCube();
}
glPopMatrix();
次のようなものがある場合:
/* 1: */ // glLoadMatrixf( myCubeTransform.getTranspose() );
/* 2: */ // glLoadIdentity();
そもそも myCubeTranform Matrix4 クラスを使用することを考えました (そして、行優先の行列クラスを使用しているため、opengl の列優先の順序に一致させるには getTranspose() を使用する必要があります) が、機能しないため、以前glLoadIdentity
は私のMatrix4クラスを台無しにしないようにしてください(マトリックスコードのバグですか?)そして..どちらも機能しません。
だから私の質問:変換なし、回転なし、スケールなしで変換行列を設定する方法は?
「動作しない」とは、キューブが原点 (あるべき場所) にないことを意味します。実は全然見えない(多分視錐台の外に描かれている?)