半透明物体混合渲染(Alpha Blending)
当时只道是寻常
比较早之前遇到一个问题,用tilemap拼接的地图,如果有半透明图片,那么在拼接处会有缝隙。这是由于拼接处是2个半透明像素的叠加,加完后和边缘的其他像素透明度不一样。
当时就在想两个半透明物体叠加后的颜色应该是怎样确定的。自己想了半天最终得出结论:
设图a透明度 x, 图b透明度y,(0<=x,y<=1)
那么 a为空的程度 1-x,b为空的程度1-y
a,b都为空的程度(1-x)*(1-y)
a,b不都为空的程度 1-(1-x)*(1-y) = a,b混合后的 透明度。
当时恰好得出了这个正确的结论…最近看书才发现,原来一切早已经有了公式!
人应当正视自己过去是个菜逼,所以那篇博客也懒得删了
formula:A Over B
这个公式就叫颜色A覆盖在颜色B上的颜色C:
α a A + ( 1 − α a ) α b B = α c C \alpha_{a}\ A + (1-\alpha_{a}) \alpha_{b}\ B = \alpha_{c}\ C αa A+(1−αa)αb B=α