Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/opengl/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Opengl LWJGL某些纹理不工作_Opengl_Lwjgl - Fatal编程技术网

Opengl LWJGL某些纹理不工作

Opengl LWJGL某些纹理不工作,opengl,lwjgl,Opengl,Lwjgl,我想用LWJGL做一个游戏。 所以我的相机设置正确,现在我想建造一个有工作门的房子。 房子的正面是有纹理的,但是当我试着把纹理放在门上时,它不起作用 主类 Texture wall_2 = loadTexture("wall_2"); Texture door = loadTexture("door"); 在游戏循环中 glLoadIdentity(); cam.setView(); House_Test.drawHouse(wall_2,doo

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

主类

Texture wall_2 = loadTexture("wall_2");
Texture door = loadTexture("door");
在游戏循环中

        glLoadIdentity();
        cam.setView();
        House_Test.drawHouse(wall_2,door);
        Ground.drawGround(ground);
室内试验:

    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();

}

您的纹理未正确绑定。
glBindTexture()
调用(我假设
door.bind()
最终调用)不能在
glBegin()
glEnd()之间调用。如果调用
glGetError()
,在这种情况下,它将返回一个无效的操作错误。在调用
glBegin()
之前,将调用移动到
door.bind()


此外,对
glClear()
的调用也需要移到
glBegin()
/
glEnd()
之外。但是,如果这样做,墙将被绘制,然后清除(擦除),然后门将被绘制。因此,您可能希望将
glClear()
放在所有绘图之前。

谢谢:D它现在正在工作,但纹理颜色不是它应该的颜色。(因为现在我有一个蓝色的门,这与纹理中的颜色不同^^^)。您应该发布一个新的问题,并包括用于上传纹理的代码。