Opengl LWJGL某些纹理不工作
我想用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
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它现在正在工作,但纹理颜色不是它应该的颜色。(因为现在我有一个蓝色的门,这与纹理中的颜色不同^^^)。您应该发布一个新的问题,并包括用于上传纹理的代码。