我创建默认" 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吗?