1
我在從資源文件夾中加載紋理時出現問題。如果我執行完全相同的過程從資源文件夾加載相同的紋理,一切工作正常。此外,來自資產的圖像似乎正在正確加載,因爲當我從位圖對象獲取寬度和高度屬性時,這些對應於磁盤上文件的尺寸。然而,試圖渲染紋理的結果是純黑的。Android OpenGL ES 2.0紋理顯示爲全黑色
// [...]
int [] tmpId = new int[1];
GLES20.glGenTextures(1, tmpId, 0);
int id = tmpId[0];
InputStream in = null;
try {
in = context.getAssets().open(resource);
}
catch (IOException e)
{
e.printStackTrace();
}
Bitmap bitmap = BitmapFactory.decodeStream(in);
GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, id);
GLUtils.texImage2D(GLES20.GL_TEXTURE_2D, 0, bitmap, 0);
GLES20.glTexParameteri(GLES20.GL_TEXTURE_2D, GLES20.GL_TEXTURE_MIN_FILTER, GLES20.GL_NEAREST);
GLES20.glTexParameteri(GLES20.GL_TEXTURE_2D, GLES20.GL_TEXTURE_MAG_FILTER, GLES20.GL_NEAREST);
GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, 0);
bitmap.recycle();
我錯過了什麼,是否有規則適用於不同於資源的資產?我似乎無法弄清楚爲什麼這不起作用。
圖像是512x512 PNG格式與透明度。