《Unity Shader 入门精要》读书笔记—透明度混合
综述
在我阅读过的文献中,我了解到两种模拟透明度的方法,一种是基于checkerboard遮罩的透明效果,另一种是基于透明度混合的透明效果。
checkerboard的原理类似于人们穿着的薄纱,而透明度混合基于的是纯粹的色彩调和。
Unity Shader与透明度混合
当我们想要在Unity Shader中实现透明度混合效果,那么我们可能会用到如下命令:
语义 | 描述 |
---|---|
Blend Off | 关闭混合 |
Blend SrcFactor DstFactor | 开启混合并设置混合因子 |
Blend SrcFactor DstFactor,SrcFactorA DstFactorA | 类似于上一个,单独处理了Alpha通道 |
BlendOp BlendOperation | 使用BlendOperation进行自定义处理 |
本节使用了表里第二种方法,则得到的颜色为:
D s t C o l o r n e w = S r c A l p h a × S r c C o l o r + ( 1 − S r c A l p h a ) × D s t C o l o r o l d DstColor_{new}=SrcAlpha\times SrcColor+(1-SrcAlpha)\times DstColor_{old} DstColor