2016-08-04 38 views
0

我想显示一个窗口的纹理(三维) 这是我的代码Lwjgl正在改变我的纹理的颜色?

try { 
     texture = TextureLoader.getTexture("PNG", new FileInputStream(new File("res\\window.png"))); 
    } catch (FileNotFoundException e) { 
     e.printStackTrace(); 
    } catch (IOException e) { 
     e.printStackTrace(); 
    } 
    GL11.glEnable(GL11.GL_TEXTURE_2D); 
    texture.bind(); 
    GL11.glBegin(GL11.GL_QUADS); 
    GL11.glTexCoord2f(0, 0); 
    GL11.glVertex3f(0, 0, 0); 
    GL11.glTexCoord2f(1, 0); 
    GL11.glVertex3f(10, 0, 0); 
    GL11.glTexCoord2f(1, 1); 
    GL11.glVertex3f(10, 10, 0); 
    GL11.glTexCoord2f(0, 1); 
    GL11.glVertex3f(0, 10, 0); 
    GL11.glEnd(); 
    GL11.glDisable(GL11.GL_TEXTURE_2D); 

这才是真正的形象:

window.png

而现在这里的问题:LWJGL或者是在做什么,都会彻底改变质地的颜色? 这是图像获取的显示方式:

displayed.png

没有错误,什么都没有。

+0

这是过时的OpenGL,您应该避免它 – elect

回答

0

您设置的颜色与图像的颜色相乘。在绘制图像之前将您的颜色设置为白色:

GL11.glColor3f(1.0, 1.0, 1.0);