iOS OpenGLES 2.0混合了iOS 9和iOS 10之间的差异

时间:2017-04-04 18:15:21

标签: ios opengl-es-2.0 glkit

我正在使用OpenGLES 2中具有透明度的纹理实现正常的UIKit混合。

在iOS 9.3.5上,在iPad mini上的混合工作正确,适用于具有预乘alpha和后续混合功能的纹理:

glBlendFunc(GL_ONE, GL_ONE_MINUS_SRC_ALPHA);

在iOS 10.3.1上,混合在iPad Air上可以正确显示具有非预乘alpha和相同混合功能的纹理。

纹理通过以下行加载:

[glkTextureLoader textureWithContentsOfFile:path 
         options: @{ GLKTextureLoaderApplyPremultiplication : @NO /* @YES here for iOS 9 */ }
        queue:dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0)
        completionHandler:^(GLKTextureInfo * _Nullable textureInfo, 
                                   NSError * _Nullable outError) {
                                                                    ...
                                                                 }

什么可能导致渲染上的这种差异?

0 个答案:

没有答案