【发布时间】:2012-08-21 01:12:05
【问题描述】:
我正在尝试在我的 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);
【问题讨论】:
-
您是否使用 bitmapFactory 来解码您的资源?有时它会根据屏幕密度缩小/放大图像。
-
嗨,蒂姆,不是 BitmapFactory...但是使用 ETC 纹理和 ETC1Util.createTexture()...我现在检查了所有纹理的尺寸,它们都是预期的 2 的幂...
-
令人惊讶的是,有些纹理可以完美加载,而有些则不能
标签: android opengl-es opengl-es-2.0 powervr-sgx