似乎不像 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/