【问题标题】:Alpha blending and UIView background colorAlpha 混合和 UIView 背景颜色
【发布时间】:2013-08-04 21:25:07
【问题描述】:

当我使用 OpenGL 绘制半透明纹理时,看起来我将它们与 EAGLView backgroundColor 混合在一起。

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

opaque 属性设置为 YES。

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

我的混合函数设置是:src BFP_SRC_ALPHA, dest ONE_MINUS_SRC_ALPHA 我也尝试过(可能类似于预乘 alpha): src ONE dest GL_ONE_MINUS_SRC_ALPHA - 效果不错,但在绘制半透明四边形(不是纹理)时出现问题。

【问题讨论】:

    标签: ios opengl-es blending


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 2020-07-28
      • 2021-06-06
      • 1970-01-01
      • 1970-01-01
      • 2013-04-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多