2011-10-04 50 views
1

我目前正在开发基于NDK的OpenGL ES 2.0应用程序。我使用libjpeg垂直翻转它(如OpenGL标准所述)来加载纹理。它在三星Galaxy SII,HTC Desire HD等(+ Windows的SDL实施)上运行良好。但在某些手机上(例如Android Market用户报告的三星Galaxy S GT-I9000),在图像的顶部/左侧,而不是底部/左侧,有一个旧的Android特定问题。我如何确定,我应该翻转纹理还是不在运行时?OpenGL ES纹理来源不同于顶部/左侧到底部/左侧不同的手机

我想过渲染一些测试模式到纹理,然后分析输出,但这是太复杂的解决方法。必须有一些更简单的方法。

谢谢!

回答

1

看起来像我自己解决了这个问题。我已经开始使用压缩的ETC1纹理而不是未压缩的纹理,这有助于解决这个奇怪的问题。

0

我要问你关于你的问题......

我有一些问题,GT-I9000设备上加载的纹理和使用的PowerVR SGX540 PowerVR的或GPU SGX530所有其他设备。

我正在使用ETC纹理。他们在所有其他设备上工作,但在这些设备上,一些纹理像黑色...

是否有任何特定的设置说明您正在使用glTexParameterf(...)函数?

我使用这些:

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);     
相关问题