2012-07-14 31 views
1

我使用OpenGLES2在iOS 4.3.3上启用了多重采样支持,渲染结果非常糟糕,就好像颜色在RGB565而不是ARGB8888一样。开启OpenGLES2和MultiSampling后,iOS 4.3.3上的任何人都会遇到奇怪的alpha混合错误?

问题是,要么关闭多重采样,要么将相同的ipa部署到iOS 5设备(这表明我确实打开了多重采样),但问题不会发生,除非关闭多重采样会使它非常丑陋(这也表明多样本在大多数情况下都有效)。

测试用例非常简单,只需在正投影模式下渲染一个贴图,颜色格式为RGBB8888。

任何人都曾遇到同样的问题?这是Apple SDK的错误吗?

顺便说一句,我使用的SDK是一个附带的Xcode 4.3.2,IOS的部署目标设定为4.0

+0

你能发表截图吗?听起来像你可以向苹果提交错误。 – 2012-07-14 10:16:36

+0

错误:http://imageshack.us/photo/my-images/12/img0003vg.png/ – 2012-07-15 08:34:04

+0

右:http://imageshack.us/photo/my-images/560/img0004bg.png/ – 2012-07-15 08:34:53

回答

0

原来根本原因是eaglLayer.drawableProperties设置为kEAGLColorFormatRGB565。

但是,当开启/关闭多重采样时,为什么结果如此不同呢?

我在想如果这是由采样缓冲区(RGBA8)和表面缓冲区(RGB565)的不同颜色格式引起的,那么我将采样缓冲区改为GL_RGB565,但问题仍然没有解决。

也许这是关于glResolveMultisampleFramebufferAPPLE没有很好实施?无论如何,这个问题在iOS 5设备上不存在。

+0

我是有一个奇怪的类似问题,我使用renderInContext:从CoreGraphics重新捕获屏幕上的PNG图像,一些alpha通道变得纯白色。这是一个核心图形问题? – 2013-01-18 06:38:59