android - PowerVR SGX540 Android 纹理问题

标签 android opengl-es opengl-es-2.0 powervr-sgx

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

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

某些纹理已正确加载... 但其他纹理是完全黑色的....

我已经确保我所有的纹理都是二次幂, 但它们不是方形的,可以是矩形的,例如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 知道您不想调整它们的大小。

关于android - PowerVR SGX540 Android 纹理问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12047253/

相关文章:

java - LibGDX Tablelayout 菜单不显示

java - glCreateShader 和 glCreateProgram 在 android 上失败

ios - 同时渲染到纹理和渲染到渲染缓冲区

Android achartengine 简单饼图

Android imageview 显示绿色图像

android - OpenGL ES 2.0 与 OpenGL 3 - 异同

javascript - 为什么我不能使用 uniform1f 而不是 uniform4f 来设置 vec4 制服?

debugging - OpenGL ES 2.0 调试

android - Google Fit - 与 Google Play 服务的连接丢失

android - 使用 RecyclerView Android 加载列表中的所有数据