RenderTexture在不透明色上叠加半透明变成半透明

屏幕画布没有透明度,

但是render texutre 有 就是那个普通的rgba混合 shader不对,和photoshop的效果不一样。

在背景上画个字,就完蛋了。

顶一顶。

这个就是photoshop的normal正常混合
Alpha compositing - Wikipedia
https://en.wikipedia.org/wiki/Alpha_compositing#Alpha_blending

这个问题的解决,先把RenderTexture获得,然后在RenderTexture得到的Sprite下方再垫一个黑色背景,就和画布的观感一样,精确颜色值也会一样。

OpenGL的src_alpha + one_minus_src_alpha在计算的时候直接使用dst_color * one_minus_src_alpha,没有使用dst_color * dst_alpha * one_minus_src_alpha,所以这个方案可行有效。