简体   繁体   English

Alpha混合和UIView背景色

[英]Alpha blending and UIView background color

When I draw semitransparent textures with OpenGL, it looks like that I get them blended with EAGLView backgroundColor. 当我使用OpenGL绘制半透明纹理时,看起来像是将它们与EAGLView backgroundColor混合了。

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

opaque property is set to YES. opaque属性设置为YES。

Now that image looks red, when I change to black it turns to gray(blended with black), to white it becomes white (even semitransparent black). 现在该图像看起来是红色的,当我变成黑色时,它变成灰色(与黑色混合),到白色时它变成白色(甚至是半透明的黑色)。 What can it be? 会是什么

my blending function setting is: src BFP_SRC_ALPHA, dest ONE_MINUS_SRC_ALPHA I tried also(possibly something like premultiplied alpha): src ONE dest GL_ONE_MINUS_SRC_ALPHA - it gives good result, but I get problems when drawing semitransparent quad(not texture). 我的混合功能设置是:src BFP_SRC_ALPHA,目标ONE_MINUS_SRC_ALPHA我也尝试过(可能是预乘alpha):src ONE目标GL_ONE_MINUS_SRC_ALPHA-它给出了很好的结果,但是在绘制半透明四边形(不是纹理)时出现问题。

问题是在预乘alpha中使用src ONE dest GL_ONE_MINUS_SRC_ALPHA,并且args也必须与预乘alpha一起glColor4f(r * a,g * a,b * a,a)

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM