IOS7更新后OpenGL Alpha混合错误

更新到IOS 7后,我发现启用了GL_BLEND的图像渲染出现错误,混合函数被设置为GL_ONE,GL_ONE_MINUS_SRC_ALPHA ..我检查了没有更新到IOS 7的设备不显示此问题。

我所看到的解释。 - 具有任何不为零的字母的图像呈现为不透明(不透明)。

这导致了艺术周围出现的白色轮廓,这些轮廓是为了隐藏锯齿状边缘而混合到完整的阿尔法。

在这里输入图像描述

注意组成这个小家伙的每个部件周围的渲染伪像。

另外需要注意的是,艺术图像不会压缩到PVR4。

再次请记住,这一切都工作在IOS7之前,没有图形错误。

谢谢你的帮助..

渲染注释:glEnable(GL_BLEND)glBlendEquation(GL_FUNC_ADD)glBlendFunc(GL_ONE,GL_ONE_MINUS_SRC_ALPHA)

看着这个之后..我已经开始认为预编译的alpha会改变一些东西。 我不知道iOS 7中可能发生了什么变化。仍然在研究这个问题。

解决我的理解是,调用textureWithContentsOfFile并不是说你想在我们的情况下GLKTextureLoaderApplyPremultiplication似乎仍然会产生一个预乘alpha的图像。 通过在选项中加入YES,我们希望它能这样做。现在iOS7上的所有功能都可以正常工作。


如果您正在使用加载纹理的方法-textureWithContentsOfFile:options:error of GLKTextureLoader ,那么您可以尝试将GLKTextureLoaderApplyPremultiplication设置为YES添加到选项字典中。

NSDictionary * options = @{GLKTextureLoaderApplyPremultiplication:@YES};

NSError *err;
GLKTextureInfo *ti = [GLKTextureLoader textureWithContentsOfFile:path options:options error:&err];
链接地址: http://www.djcxy.com/p/34007.html

上一篇: OpenGL Alpha Blend Error after IOS7 update

下一篇: dark colors dont work properly