【问题标题】:Color is getting darker when using alpha channel / opacity使用 Alpha 通道/不透明度时颜色变暗
【发布时间】:2020-08-08 21:32:41
【问题描述】:

我在 opengl 中使用片段着色器绘制纹理。
我将颜色设置为 100% 红色和 50% 不透明度,但是当我阅读此颜色时,我发现它不再是 100% 红色。

gimp 也是如此。
我选择了 100% 的红色,但以 50% 的不透明度绘制它,当我使用颜色选择器工具时,它告诉我红色只有 80%。

有没有办法在opengl es 2.0中保留颜色值?

【问题讨论】:

  • 你使用Blending吗?没有不透明度,只有一个 Alpha 通道。 Alpha 通道和混合函数定义源颜色如何与目标缓冲区中的颜色混合(混合)。因此,如果启用了混合,则最终颜色等于源颜色。如果禁用混合,颜色和 Alpha 通道将被复制到目标而不进行任何操作。无论如何,问题尚不清楚,需要有关上下文的更多信息。你有一些代码吗?
  • 混合已启用,我禁用了它,现在它可以工作了!谢谢,如果你把这个写成答案,我会接受它

标签: colors opengl-es textures opengl-es-2.0 opacity


【解决方案1】:

颜色由Bending 函数和操作修改。您必须禁用混合。

没有不透明度,只有一个 Alpha 通道。 Alpha 通道和混合函数定义源颜色如何与目标缓冲区中的颜色混合(混合)。因此,如果启用了混合,则最终颜色等于源颜色。如果禁用混合,颜色和 Alpha 通道将被复制到目标而不进行任何操作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-11-17
    • 2013-11-13
    • 1970-01-01
    • 1970-01-01
    • 2012-01-02
    • 2012-11-05
    • 2012-12-24
    • 2010-12-30
    相关资源
    最近更新 更多