math - alpha 混合如何在数学上逐个像素地工作?

似乎不像 RGB1*A1 + RGB2*A2 这么简单...值是如何裁剪的?加权?等等

这是一个上下文相关的问题吗?是否有不同的算法会产生不同的结果?还是一种标准实现?

我对特定于 OpenGL 的答案特别感兴趣,但来自其他环境的上下文也很有用。

最佳答案

我不知道 OpenGL,但是一个不透明度 A 的像素通常绘制在另一个像素上,如下所示:

result.r = background.r * (1 - A) + foreground.r * A
result.g = background.g * (1 - A) + foreground.g * A
result.b = background.b * (1 - A) + foreground.b * A

对多个像素重复此操作。

https://stackoverflow.com/questions/10768836/

相关文章:

php - 如何从一个函数返回多个值

sql - 更新引用另一个表

php - 解析 SOAP 负载的 XML 错误 : Reserved XML Name

c++builder - 如何使用 C++ Builder 打开带有按钮的新表单?

haskell - 包含不同类型的列表

mysql - SQL select count for more than one like

assembly - 为什么我们可以在16位模式下使用eRx,而在32位模式下不能使用rRx?

django - 来自模型的初始表单数据 - Django

php - 检查多个字符串是否为空

sql - 如何根据 Oracle SQL 中的日期进行过滤