iOS9 Opengl ES texture 渲染问题?


升级到iOS9之后,发现游戏的动画引擎部分渲染出了问题。在渲染一个texture的时候,没有像素的地方直接变成黑色,正常情况下应该是透明的。

如图:

clipboard.png

在模拟器上一切都是正常,只有在真机上才会出现这样的问题,有人知道是为什么吗?

opengl-es ios ios9

的撒娇的肯定撒 9 years, 2 months ago

找到原因了。
iOS9之前包里面PNG图片都有进行alpha预乘处理,在iOS9中貌似就没有预乘了。
而cocos2dx默认png都是有进行alpha预乘的,导致的结果就是用处理alpha预乘过的PNG的方法来处理实际没有aplha预乘的图片。

解决办法:

  1. 不使用PNG,使用pvr.ccz之类的不包含alpha预乘逻辑的图片格式来代替。

  2. 手动标示没有进行alpha预乘。

iOS9实在是太坑爹了。

各种悲剧419 answered 9 years, 2 months ago

Your Answer