美文网首页
【UE】UE Material Properties

【UE】UE Material Properties

作者: 离原春草 | 来源:发表于2021-03-10 17:24 被阅读0次

    因为目前打交道的项目使用的大多是UE引擎,因此经常会有一些与UE相关的知识需要做一些总结与回顾,方便后续遇到能快速回想起来,特此开了这个专辑,而本文是这个专辑中的第一篇,主要介绍UE中材质蓝图中输出节点上的相关属性,由于属性数目实在太多,因此很难也没有必要完全覆盖,这里只对其中一些比较晦涩难懂的部分做介绍。

    材质属性界面

    1. Material面板

    这个面板用于控制材质的渲染方式,包括Material Domain,Blend Mode等多个属性。

    1.1 Blend Mode

    Blend Mode是用于控制材质混合方式的一项属性,包括如下的一些选项:

    Blend Mode

    这些选项的含义在Material Blend Modes页面上可以找到定性的描述,但是这种介绍对于一个开发同学来说多多少少有些雾里看花的意味,因此迫切想要搞清楚这些Blend Mode的具体实现算法。

    经过一番搜索,我们在MobileBasePassPixelShader.usf与BasePassPixelShader.usf两个文件中找到了相关的处理逻辑,前者为移动端渲染实现,后者为PC延迟管线渲染实现,出于实用性考虑,我们这里以移动端渲染为例进行介绍。

    所有的Blend Mode是通过宏进行控制的,宏的前缀为MATERIALBLENDING_,比如Masked对应的宏为MATERIALBLENDING_MASKED。

    不同的Blend Mode在渲染时候的计算逻辑主要包含在函数FrameBufferBlendOp中:

    half3 FrameBufferBlendOp(half4 Source)
    {
        half4 Dest = FragColor;
    #if MATERIALBLENDING_SOLID
        return Source.rgb;
    #elif MATERIALBLENDING_MASKED
        return Source.rgb;
    // AlphaComposite will set both MATERIALBLENDING_TRANSLUCENT and MATERIALBLENDING_ALPHACOMPOSITE defines
    // so ensure  MATERIALBLENDING_ALPHACOMPOSITE gets first in line
    #elif MATERIALBLENDING_ALPHACOMPOSITE
        return Source.rgb + (Dest.rgb*(1.0 - Source.a));
    // AlphaHoldout will set both MATERIALBLENDING_TRANSLUCENT and MATERIALBLENDING_ALPHAHOLDOUT defines
    // so ensure  MATERIALBLENDING_ALPHAHOLDOUT gets first in line
    #elif MATERIALBLENDING_ALPHAHOLDOUT
        return (Dest.rgb*(1.0 - Source.a));
    #elif MATERIALBLENDING_TRANSLUCENT
        return (Source.rgb*Source.a) + (Dest.rgb*(1.0 - Source.a));
    #elif MATERIALBLENDING_ADDITIVE
        return Source.rgb + Dest.rgb;
    #elif MATERIALBLENDING_MODULATE
        return Source.rgb * Dest.rgb;
    #endif
    }
    

    MATERIALBLENDING_SOLID对应的是Opaque Mode,输出结果就是当前材质在当前像素上的输出color;

    MATERIALBLENDING_MASKED输出的也是当前材质在当前像素上输出的Color,不过不同的是对于这种mode,后面会根据Mask的数值判断是否需要调用clip指令,所以这种模式其实对应的就是我们常说的AlphaTest材质;

    至于其他的Blend Mode的实现在上面的函数中已经表述得非常清楚了,因此这里就不再赘述了。

    ——————————
    未完待续...

    相关文章

      网友评论

          本文标题:【UE】UE Material Properties

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