cla*_*amp 10 transparency alpha blending colors
假设alpha为1表示完全不透明,0表示完全透明.假设我有两个黑色图像,其透明度为50%(alpha = 0.5).
如果它们相互叠加,那么透明度是0.75,对吗?
如果它们的alpha值为0.25,那么结果将是0.5左右,对吗?
如果它们的α值为0.9,那么结果将是0.97左右,对吗?
你怎么能得到这些数字?
换句话说,我正在寻找一个从另外两个alpha值获得结果alpha值的函数.
float alpha = f(float alphaBelow, float alphaAbove)
{
//TODO implement
}
Run Code Online (Sandbox Code Playgroud)
float blend(float alphaBelow, float alphaAbove)
{
return alphaBelow + alphaAbove - alphaBelow * alphaAbove;
}
Run Code Online (Sandbox Code Playgroud)
此函数假设两个参数均为0..1,其中0表示完全透明,1表示完全不透明.
这个答案在数学上与Jason的答案相同,但这是您在参考资料中找到的实际公式.
float blend(float alphaBelow, float alphaAbove)
{
return alphaBelow + (1.0 - alphaBelow) * alphaAbove;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5440 次 |
| 最近记录: |