我正在尝试在我的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);
正如Tim所建议的,android可以帮助调整图像大小,以匹配不同设备的dpi。
加载图像后,请检查图像的大小,以确保它们仍然是二次幂。将资源文件放在res/drawable-nodpi
中应该会让android知道你不想调整它们的大小。