美文网首页
【Unity Shader入门精要学习】透明(三)

【Unity Shader入门精要学习】透明(三)

作者: 小王子称号发放NPC | 来源:发表于2019-09-15 14:41 被阅读0次

    透明度混合

    透明度混合原理

    这种方法可以得到真正的半透明效果,它会使用当前片元的透明度作为混合因子,与已经存储在颜色缓冲中的颜色值进行混合,得到新的颜色。但是透明度混合需要关闭深度写入,需要小心的处理物体的渲染顺序。

    混合的实现

    (一)原理

    当片元着色器产生一个颜色的时候,可以选择与颜色缓冲中的颜色进行混合。这样一来,混合就和两个操作数有关:源颜色(source color)目标颜色(destination color)源颜色用S表示,指的是从片元着色器产生的颜色值,目标颜色,用D表示,指的是从颜色缓冲区中取得的颜色值。对它们进行混合后得到的输出颜色,用O表示,它会重新写入到颜色缓冲区中,RGBA四个通道均可以进行混合。在Unity中使用Blend命令设置混合状态(同时也开启了混合)

    (二)混合等式、参数

    混合是一个逐片元的操作,且是不可编程的,但却是高度可配置的。也就是我们可以设置混合时使用的运算操作、混合因子等来影响混合效果。
    已知两个操作数:源颜色S目标颜色D,想要得到输出颜色O,就必须使用一个等式来计算,我们把这个等式称为混合等式(blend equation)。当进行混合时,我们需要两个混合等式:一个用于混合RGB通道,一个用于混合A通道。当设置混合状态时,实际上就是在设置混合等式中的操作因子。默认情况下,混合等式的操作都是加操作(可以换),然后在设置混合因子。因为需要两个等式,一个用于混合RGB,一个用于混合A,所以需要4个因子(每个等式两个)。

    混合因子命令
    混合公式
    混合因子

    (三)混合操作

    不仅可以是加操作来对混合进行操作,还可以使用减操作等等。可以使用ShaderLab的BlendOp BlendOperation命令,即混合操作命令

    混合操作
    混合操作
    混合操作命令通常与混合因子命令一起工作的。但需注意的是MinMax混合操作,当使用这两个命令时,混合因子是不起作用的,它们仅会判断源颜色,和目标颜色。
    常见的混合效果
    常见的混合效果

    相关文章

      网友评论

          本文标题:【Unity Shader入门精要学习】透明(三)

          本文链接:https://www.haomeiwen.com/subject/vlwuyctx.html