Shader Blend混合效果

作者: 狼之独步 | 来源:发表于2016-12-30 15:42 被阅读702次

    Shader Blend混合效果
    1、Blend SrcAlpha OneMinusSrcAlpha 正常模式(透明度混合)

    这里写图片描述 2、Blend OneMinusDstColor One 柔和相加(soft Additive) 这里写图片描述 3、Blend DstColor Zero 正片叠底 (Multiply)相乘 这里写图片描述 4、Blend DstColor SrcColor 两倍相乘 (2X Multiply) 这里写图片描述 5、 变暗
    BlendOp MinBlend One One
    1
    2

    1
    2

    这里写图片描述

    6、变亮
    BlendOp MaxBlend One One
    1
    2

    1
    2

    这里写图片描述 7、Blend OneMinusDstColor One 滤色 这里写图片描述 8、Blend One One 线性变淡 这里写图片描述
    测试代码
    Shader "Wp/Blend"{ Properties{ _Color("Color", Color) = (1, 1, 1, 1) _MainTex("MainTex", 2D) = "White" {} _AlphaScale("AlphaScale", Range(0, 1)) = 1 } SubShader{ Tags{ "Queue" = "Transparent" "Ignoreprojector" = "True" "RenderType" = "Transparent" } Pass{ ZWrite off// Blend SrcAlpha OneMinusSrcAlpha// Blend OneMinusDstColor One// Blend DstColor Zero// Blend DstColor SrcColor// BlendOp Max// Blend One One// Blend OneMinusDstColor One Blend One One CGPROGRAM #pragma vertex vert #pragma fragment frag fixed4 _Color; sampler2D _MainTex; float4 _MainTex_ST; float _AlphaScale; struct a2v{ float4 pos : POSITION; float4 normal : NORMAL; float texcoord : TEXCOORD0; }; struct v2f{ float4 pos : SV_POSITION; float3 worldNormal : TEXCOORD0; float3 worldPos : TEXCOORD1; float4 uv : TEXCOORD2; }; v2f vert(a2v v){ v2f o; o.pos = mul(UNITY_MATRIX_MVP, v.pos); return o; } fixed4 frag(v2f i) : SV_Target{ return fixed4(_Color.rgb, _Color.a * _AlphaScale); } ENDCG } } Fallback "Diffuse"}
    

    相关文章

      网友评论

        本文标题:Shader Blend混合效果

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