2011-10-03 243 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,然後看它是否有效。根據你的圖形卡,它將會或不會被支持(它應該是如果卡不古老)。