我有许多RGBA像素,每个像素都有一个alpha分量.
所以我有一个像素列表:(p0 p1 p2 p3 p4 ... pn)其中p_0_是前像素,p_n_是最远的(在后面).
最后(或任何)像素不一定是不透明的,因此得到的混合像素也可以某种方式透明.我从列表的开头到结尾混合,反之亦然(是的,它是光线追踪).因此,如果任何时刻的结果变得不透明,我可以用足够正确的结果停止.我将以这种方式应用混合算法:((((p0 @ p1)@ p2)@ p3)...)
任何人都可以建议我正确的混合配方不仅适用于R,G和B,还适用于A组分吗?
UPD:我想知道如何确定混合颜色的确定过程可以有很多公式吗?它是某种近似吗?对我来说,这看起来很疯狂:公式并没有那么不同,我们真正获得了效率或优化.任何人都可以澄清这个吗?
Alpha混合是比您想象的更深入的主题之一.这取决于alpha值在你的系统中意味着什么,如果你猜错了,那么你最终会得到看起来很好的结果,但这会显示出奇怪的文物.
查看Porter和Duff的经典论文" Compositing Digital Images ",以获得精彩,可读的讨论和所有公式.你可能想要"over"运算符.
听起来你正在做更接近体积渲染的事情.有关公式和参考,请参阅图形常见问题解答,问题5.16"如何执行体绘制?".