白盒

2012-09-13 18 views
1

我使用的是最近JOGL 2.0版本白盒

我的場景設置了正投影與我想的紋理添加到場景中的底部。紋理是1600 x 100 PNG文件。

如果我使用1000 x 1000 PNG文件,紋理呈現良好,但是當我使用1600 x 100紋理時,我會得到一個白色框。

我已經建立了使用

gl.glMatrixMode(GL2.GL_PROJECTION); 
gl.glPushMatrix(); 
gl.glOrtho(0, 1, 0, 1, 0, 1); 

gl.glMatrixMode(GL2.GL_MODELVIEW); 
gl.glPushMatrix(); 
gl.glLoadIdentity(); 

我加載使用

texture = TextureIO.newTexture(new File("image.png") ,false); 

我畫使用

gl.glEnable(GL.GL_TEXTURE_2D); 
TextureCoords tc = texture.getImageTexCoords(); 

texture.bind(gl); 

gl.glBegin(GL2.GL_QUADS); 

gl.glTexCoord2d(tc.left(),tc.top());gl.glVertex2d(0.0,0.1);  
gl.glTexCoord2d(tc.left(),tc.bottom());gl.glVertex2d(0.0,0.0);  
gl.glTexCoord2d(tc.right(),tc.bottom());gl.glVertex2d(1.0,0.0);  
gl.glTexCoord2d(tc.right(),tc.top()); gl.glVertex2d(1.0,0.1); 

gl.glEnd(); 
gl.glDisable(GL.GL_TEXTURE_2D); 

回答

1

你得到一個原因紋理質感的正投影白盒是因爲你的顯卡確實支持這麼大的圖像。 1600 x 1600像素太大,1600 x 100太大以至於現代標準。我建議你使用1024 x 128.

爲了最大的兼容性,我建議你使用紋理與二的冪。例如32×64,128×512或甚至1024×1024.僅僅因爲一個數可以被二整除並不意味着二的冪。當你2^x時,二的冪。

提示找到兩個冪數(計算器):只需輸入[2] [*] [2] [=] [=] [=] ...其中[]代表您的輸入。