2

我使用 iOS7 Beta 5 提取了 Xcode 5 的最新 beta 版本,以检查与我的一个使用 OpenGL ES 2.0 的应用程序的兼容性。在新模拟器中启动我的应用程序后,我看到一个非常变色的屏幕。不是说整个屏幕都变色了,只有 GLView。红色变成了蓝色,蓝色变成了蓝色,绿色变成了蓝色。

我在谷歌上下搜索,甚至没有结果。下面是一个足球场的渲染,以显示变色。田径进球尤其明显。

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)

在此处输入图像描述

现在的样子 (iOS7)

在此处输入图像描述

4

1 回答 1

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];
于 2013-08-26T21:11:07.957 回答