2013-08-17 37 views
2

我用iOS7 Beta 5取出了Xcode 5的最新测试版,以检查与使用OpenGL ES 2.0的其中一个应用程序的兼容性。在新模拟器中启动我的应用程序后,我遇到了非常变色的屏幕。不是说整个屏幕变色了,只有GLView。红人变蓝,蓝调变蓝,绿变蓝。OpenGL纹理iOS7中的变色

我搜索了上下谷歌没有结果甚至接近。下面是足球场的渲染,以显示变色。田径目标尤其明显。

GL启用选项

glEnable(GL_CULL_FACE); 
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); 
glEnable(GL_BLEND); 
glEnableVertexAttribArray(GLKVertexAttribTexCoord0); 
self.effect.texture2d0.enabled = true; 
glEnable(GL_DEPTH_TEST);//Only when drawing field goals 

应该怎么看(iOS6的)

enter image description here

现在它的外观(iOS7)

enter image description here

+0

你提交了一个错误? –

+0

DavidRönnqvist:不是吗? @JoshCaswell:我很困惑你的评论。我发布这个,因为我只是希望找到答案,我做到了:) – Stuartsoft

回答

0

一定有改变GLKit处理的方式在iOS7中加载纹理。我用简单的单层PNG替换了其中的几个纹理,没有问题。 作为解决方法,我能够将PSD中的每个纹理导出为TIFF格式,而不会出现变色或图像质量损失。 TIFF似乎是要走的路; GLKit对格式没有任何问题,它很高兴地支持透明度,奇怪的是我碰到变色的另一个问题。

texturename = tracktexture1.name; 
glDeleteTextures(1, &texturename); 
tracktexture1 = [GLKTextureLoader textureWithContentsOfFile:[[NSBundle mainBundle]pathForResource:[NSString stringWithFormat:@"%@%i",trackname, 1] ofType:@"tiff"] options:options error:&error];