オブジェクトの位置と回転を変換する前に、loadIdentity() を使用してモデルとテクスチャをレンダリングします。
Translatef と Rotatef を別の方法で使用して、単純なカメラを回転させようとしています (1 つの角度、キャラクターは常に中央にあります)。フロアクワッドは移動または回転していません。ゲームの無限ループでビューを操作しようとしています:
while (!Display.isCloseRequested()) {
Display.sync(60);
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glTranslatef(test, 0, 0);
drawScene();
processKeyboard();
Display.update();
}
drawScene() {
glLoadIdentity();
glBindTexture(GL_TEXTURE_2D,animationTexture.getTextureID());
GL11.glPushMatrix();
glTranslatef(ax, ay, az);
glRotatef(rotatex, 1, 0, 0);
glRotatef(rotatey, 0, 1, 0);
glRotatef(rotatez, 0, 0, 1);
glScalef(scalex, scaley, scalez);
GL11.glCallList(this.objectlist);
GL11.glPopMatrix();
}
このコードを編集して簡単なビュー編集を機能させる方法はありますか、それともモデルの位置を設定する別の方法を見つける必要がありますか?
編集: 質問は終了しました... 世界で最も簡単な解決策を見つけました。プロジェクト内のすべての描画クラスから glLoadIdentity() コマンドを削除する必要がありました。PushMatrix のみを使用すると、Push と Pop Matrix コマンド間のコマンドに対してのみビュー パラメータがリセットされます。