设备上的IOS Open GL ES 2.0倒置(BGRA)纹理,但模拟器上的RGBA

时间:2015-11-29 18:28:15

标签: ios opengl-es textures

我创建默认" ios游戏"在Xcode上投影并尝试绑定纹理。所有工作都在Ipad Simulator上正确,但是当我连接真实设备时,纹理颜色已经反转。

模拟器可以:

 glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, ww, hh, 0, GL_RGBA, GL_UNSIGNED_BYTE, data);

这对于真正的ipad设备来说还可以:

 glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, ww, hh, 0, GL_BGRA, GL_UNSIGNED_BYTE, data);

除了漫反射颜色总是正确的(如RGBA)。

这是着色器:

varying lowp vec4 colorVarying;
varying lowp vec2 TexCoordOut;
uniform sampler2D Texture; 

void main(){
  gl_FragColor = colorVarying * texture2D(Texture, TexCoordOut);
}

这是正常的吗?有可能以某种方式将纹理默认格式设置为rgba吗?那个设备(例如Iphone 6)不会显示rgba颜色,而另一个设备(例如Ipad Air)会显示bgra吗?

0 个答案:

没有答案