gpt4 book ai didi

opengl - 线性光模式的 Alpha 混合层

转载 作者:行者123 更新时间:2023-12-04 00:45:40 25 4
gpt4 key购买 nike

我正在重新创建一些 Photoshop 混合,并尝试使用线性光模式。在 Photoshop 中,您会有一个 100% 不透明度的背景层,然后是一个 50% 不透明度的顶层,其混合模式设置为线性光。

我确实找到了有关如何进行线性光混合的信息,但它仅在两个图层的不透明度都为 100% 时才有效。

这是执行线性光模式的着色器代码,当图层的不透明度均为 100% 时,它会给出与 Photoshop 相同的结果:

#define BlendLinearDodgef           BlendAddf
#define BlendLinearBurnf BlendSubstractf

#define BlendAddf(base, blend) min(base + blend, 1.0)
#define BlendSubstractf(base, blend) max(base + blend - 1.0, 0.0)


#define BlendLinearLightf(base, blend) (blend < 0.5 ? BlendLinearBurnf(base, (2.0 * blend)) : BlendLinearDodgef(base, (2.0 * (blend - 0.5))))

我看过http://en.wikipedia.org/wiki/Alpha_compositing但仍有问题。

如何让混合模式适用于半透明图层?

最佳答案

您应该阅读 PDF spec了解当 alpha 不是 100% 时如何使用混合模式。具体请参见第 7.2 节“基本合成计算”。第 414 页上的公式应该说明您需要什么:

Cr= (1-as/ar) * Cb + (as/ar) * [(1-ab) * Cs + ab * B(Cb,Cs)]

关于opengl - 线性光模式的 Alpha 混合层,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10713120/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com