OpenGL ES纹理起源在不同的手机上从上/左到下/左是不同的
OpenGL ES texture origin differs from top/left to bottom/left on different phones
我目前正在开发一个基于ndk的OpenGL ES 2.0应用程序。我正在使用libjpeg加载纹理,垂直翻转它(如OpenGL标准所说)。它在三星Galaxy SII, HTC Desire HD等(+ Windows的SDL实现)上运行良好。但在一些手机上(比如根据Android Market用户的报告,三星Galaxy S GT-I9000),有一个Android特有的老问题,原点位于图像的上方/左侧,而不是底部/左侧。我如何确定,我应该翻转纹理或不在运行时?
我想渲染一些测试模式的纹理,然后分析输出,但这是太复杂的解决方案。一定有更简单的方法。
谢谢!
看起来我已经自己解决了这个问题。我已经开始使用压缩的ETC1纹理而不是未压缩的,这有助于解决这个奇怪的问题。
我想问一下你的问题…
我在gt-i9000设备和所有其他使用PowerVR SGX540或PowerVR SGX530 gpu的设备上加载纹理时遇到了一些问题。
我正在使用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);
相关文章:
- OpenInventor从9.8升级到10.4.2后,GLSL纹理返回零
- SFML纹理像播放器
- OpenGL大的3D纹理(>2GB)非常慢
- UE4-如何在给定4个屏幕坐标的情况下缩放纹理或材质
- OpenGL ES 2.0将纹理绘制到屏幕上是行不通的
- SDL + OpenGL ES 2.0 使用着色器显示纹理
- 如何使用着色器在 opengl es 中渲染四边形内部的部分纹理
- 在使用PI上的OpenGL ES绘制之前,如何旋转纹理
- 在 OpenGL ES for Android 中运行时创建大型纹理的最有效方法
- OpenGL ES - 纹理球体
- 在 Android NDK 上创建映射/直接 OpenGL ES 纹理
- OpenGL ES 2 如何渲染到纹理并提取用于 GPGPU 测试的数据
- OpenGL ES 3 (iOS) 纹理奇特 - 想知道为什么
- 在 OpenGL-ES 中使用 Android NDK 上的C++创建具有"glTexImage2D"的纹理会导致问题
- OpenGL ES纹理起源在不同的手机上从上/左到下/左是不同的
- 用c++在OpenGL ES中显示纹理有问题
- 在OpenGL ES 2.0中测量渲染到纹理性能
- 纹理在OpenGL ES 2.0中没有显示
- OpenGL ES 3.1 -无法用glTexImage2D创建不可变纹理
- Android:如何动态改变OpenGL ES纹理图像