2013-08-04 42 views
1

当我使用OpenGL绘制半透明纹理时,看起来像我将它们与EAGLView backgroundColor混合。Alpha混合和UIView背景颜色

((EAGLView*)my_view).backgroundColor = [UIColor redColor]; 

不透明属性设置为YES。

现在图像看起来红了,当我变成黑色时,它变成灰色(与黑色混合),变成白色(甚至半透明黑色)。 它可能是什么?

我的混合功能设置为:SRC BFP_SRC_ALPHA,什特ONE_MINUS_SRC_ALPHA 我也尝试过(可能像预乘alpha): SRC ONE DEST GL_ONE_MINUS_SRC_ALPHA - 它提供了不错的结果,但我得到画半透明四(没有纹理)当出现问题。

回答

0

问题是在预乘alpha使用的src ONE DEST GL_ONE_MINUS_SRC_ALPHA,和args必须与预乘alpha太glColor4f(R * A,G * A,B * A,A)