LWJGL有些纹理不起作用

时间:2014-05-28 14:58:57

标签: opengl lwjgl

我正在尝试用LWJGL制作游戏。 所以我的相机设置正确,现在我想建一个有工作门的房子。 房子的前面是纹理的,但当我尝试将纹理放在门上时,它不起作用。

主要课程

Texture wall_2 = loadTexture("wall_2");
Texture door = loadTexture("door");

在Gameloop内部

        glLoadIdentity();
        cam.setView();
        House_Test.drawHouse(wall_2,door);
        Ground.drawGround(ground);

House_Test:

    public static void drawHouse(Texture tex, Texture tür){

    walls.draw(tex);
    roof.draw(tex);

    door.draw(tür);

     }

门的绘制方法:

    public static void draw(Texture door) {  
    glBegin(GL_QUADS);
    GL11.glClear(GL_COLOR_BUFFER_BIT);
        door.bind();
        glTexCoord2f(0,0);glVertex3f(-2,2, -15);
        glTexCoord2f(0,1);glVertex3f(-2,-3, -15);
        glTexCoord2f(1,1);glVertex3f(2,-3, -15);
        glTexCoord2f(1,0);glVertex3f(2,2, -15);

    glEnd();

}

1 个答案:

答案 0 :(得分:0)

您的纹理未正确绑定。我无法在glBindTexture()door.bind()之间调用glBegin()调用(我假设glEnd()最终调用)。如果您调用glGetError(),则在这种情况下应该返回无效的操作错误。在致电door.bind()之前将通话移至glBegin()

此外,对glClear()的调用也需要移到glBegin() / glEnd()之外。虽然,如果你这样做,墙壁将被绘制,然后清除(擦除),然后门将被绘制。所以你可能想在所有绘图之前放置glClear()