【问题标题】:PowerVR SGX540 Android texture issuePowerVR SGX540 Android 纹理问题
【发布时间】: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


【解决方案1】:

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

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

【讨论】:

  • 嗨,我只使用了一个位图,例如 Bitmap.createBitmap(256, 256, Bitmap.Config.RGB_565);其余部分使用 ETC1Util.createTexture(inputsrteam ); 直接从 inputsrteam 加载为 ETC 纹理;
  • 我还检查了我的一些 mip 贴图的尺寸小于 2,例如 1*1
猜你喜欢
  • 2011-11-12
  • 1970-01-01
  • 1970-01-01
  • 2011-08-01
  • 2011-09-28
  • 2013-03-09
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多