2

我正在尝试在我的 android 应用程序中加载一些纹理。

它适用于三星 Galaxy ace、s2 等所有设备,但任何使用 PowerVR SGX540 gpu 的设备,例如三星 Galaxy S-gti9000
都会有一些奇怪的伪影......

一些纹理加载正确......但其他纹理完全黑色......

我确保我所有的纹理都是二次方的,但它们不是正方形的,可以是矩形的,例如 64*128。

我正在使用以下纹理参数设置....

gl.glActiveTexture(GL10.GL_TEXTURE0);               
gl.glBindTexture(GL10.GL_TEXTURE_2D, glTextureId);
gl.glTexParameterf(gl.GL_TEXTURE_2D, gl.GL_TEXTURE_MIN_FILTER, gl.GL_LINEAR);
gl.glTexParameterf(gl.GL_TEXTURE_2D, gl.GL_TEXTURE_MAG_FILTER, gl.GL_LINEAR); 
gl.glTexParameterf(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_WRAP_S, GL10.GL_CLAMP_TO_EDGE);
gl.glTexParameterf(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_WRAP_T, GL10.GL_CLAMP_TO_EDGE);
4

1 回答 1

1

正如蒂姆建议的那样,它可能是 android 有助于调整图像大小以匹配不同设备的 dpi。

加载后检查图像的大小,以确保它们仍然是二次方。将资源文件放入res/drawable-nodpi应该让 android 知道您不希望它们调整大小。

于 2012-08-21T09:26:18.293 回答