2011-10-03 133 views
2

我正在尝试学习JOGL绑定的过程。这些教程似乎过时了,所以我总是试图拼凑出每一个有效的东西。JOGL纹理问题

我在尝试将简单的纹理应用到方形平面时遇到了问题。

我有一个204 x 204的图像叫做box.png。

在我的init()我这样做,以获得纹理加载:

 try { 
      InputStream stream = getClass().getResourceAsStream("box.png"); 
      TextureData data = TextureIO.newTextureData(gl.getGLProfile(), 
       stream, 100, 200, false, "png"); 
      boxTexture = TextureIO.newTexture(data); 
     } catch (IOException exc) { 
      exc.printStackTrace(); 
      System.exit(1); 
     } 

然后我尝试运用我的纹理做在我的显示下列():

 gl.glEnable(GL.GL_TEXTURE_2D); 

     boxTexture.enable(gl); 
     boxTexture.bind(gl); 

     gl.glBegin(GL2.GL_QUADS); 
     // Front Face 
     gl.glTexCoord2f(0.0f, 0.0f); 
     gl.glVertex3f(-1.0f, -1.0f, 1.0f); // Bottom Left Of The Texture and Quad 
     gl.glTexCoord2f(1.0f, 0.0f); 
     gl.glVertex3f(1.0f, -1.0f, 1.0f); // Bottom Right Of The Texture and Quad 
     gl.glTexCoord2f(1.0f, 1.0f); 
     gl.glVertex3f(1.0f, 1.0f, 1.0f); // Top Right Of The Texture and Quad 
     gl.glTexCoord2f(0.0f, 1.0f); 
     gl.glVertex3f(-1.0f, 1.0f, 1.0f); 

     gl.glEnd(); 

是有没有任何问题可以解释我失败的原因?

+0

嗨,你解决了吗? – elect

回答

2

我唯一能想到的就是纹理不是2的幂。将纹理的大小改为256x256,然后看它是否有效。根据你的图形卡,它将会或不会被支持(它应该是如果卡不古老)。