我對OpenGl完全陌生,所以要善良。 在我的應用程序中,我使用的是JPG和PNG紋理。在HTC Desire(android 2.2)或Xperia x8(android 2.1)上,一切都顯示正常,屏幕如下:http://imageshack.us/photo/my-images/534/xperia.png/)。但在較新的設備,如三星Galaxy Tab 10.1(安卓3.2)或三星Galaxy S3(安卓4.x)JPG紋理是由顏色分隔?並轉向:http://imageshack.us/photo/my-images/855/samsungbs.png/。儘管如此,PNG總是顯示正常。Android OpenGL ES爲什麼JPG紋理在某些設備上顯示錯誤?
我正在使用GLSurfaceView進行繪製。而我的代碼負責製作的質感看起來是這樣的:
gl.glBindTexture(GL10.GL_TEXTURE_2D, textures[i]);
gl.glTexParameterf(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_MAG_FILTER, GL10.GL_NEAREST);
gl.glTexParameterf(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_MIN_FILTER, GL10.GL_NEAREST);
gl.glTexParameterf(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_WRAP_S, GL10.GL_REPEAT);
gl.glTexParameterf(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_WRAP_T, GL10.GL_REPEAT);
if (bitmaps[i].hasAlpha()) {
GLUtils.texImage2D(GL10.GL_TEXTURE_2D, 0, GL10.GL_RGBA, bitmaps[i], 0);
} else {
GLUtils.texImage2D(GL10.GL_TEXTURE_2D, 0, GL10.GL_RGB, bitmaps[i], 0);
}
通過「位圖[I] .hasAlpha()」我試圖區分給定的位圖是JPG或PNG。我哪裏可以錯了?
如果你擺脫alpha檢查並使用RGBA,會發生什麼? – Geobits
@Aetherna請問您可以再次上傳您的示例圖片嗎?鏈接已經死亡。我可能有類似的問題,如果我可以通過檢查圖像進行驗證,那就太好了。非常感謝! –