GL11.load Identity()GL11.Translated()和GL11.Rotatef()

时间:2012-12-03 18:31:24

标签: java opengl lwjgl

在翻译对象的位置和旋转之前,使用loadIdentity()渲染模型和纹理。

我试图在差异方法中使用Translatef和Rotatef来旋转我的简单相机(一个角度,角色总是在中间)并且四边形不移动或旋转。我试图在游戏的无限循环中操纵视图:

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命令之间的命令重置视图参数。

0 个答案:

没有答案