假设在RT上去渲染一个Pixel,RT的背景颜色是B,按顺序去写颜色,先写A1, 再写A2,那么最终的到的颜色
Art = (A1 Blend (A2 Blend B))
展开 :
A2 Blend B = A2 * f2 + B * f2'
A1 Blend (A2 Blend B) = A1 * f1 + (A2 * f2 + B * f2') * f1'
得到 :
Art = A1 * f1 + (A2 * f2 + B * f2') * f1' = A1 * f1 + A2 * f2 * f1' + B * f2' * f1'
令
C = A1 * f1 + A2 * f2 * f1'
T = f2' * f1'
得到 Art= C + T * B
问题来了,如果你拿一张RT渲染到 RawImage 上,按照以上的公式来推导,得到:
Bi = UI 的背景颜色
A = Art Blend Bt = Art * frt + Bt * frt' = (C + T * B) * frt + Bt * frt'
但是实际上,我们真正需要的只是想把RT上的黑色背景替换为UI的背景,再覆盖到UI上而已,也就是
A = C + T * Bi
那我们要实现A = C + T * Bi,要怎么做。
这里的做法就是,把C, T 都存到RT上