ColorMask与Blend

Shader "N/T" {
    Properties {
        _Color ("Texture to blend", Color) = (1,1,1,1)
    }
    SubShader {
        Tags { "Queue" = "Transparent" }
        ColorMask R
        Pass {
            Blend DstColor one
            CGPROGRAM
            #include "UnityCG.cginc"
            //#pragma exclude_renderers gles
            #pragma vertex vert
			#pragma fragment frag

			float4 _Color;
			float4 vert( appdata_base v ) : POSITION 
			{
				return mul( UNITY_MATRIX_MVP, v.vertex );
			}

			float4 frag(float4 pos:POSITION):COLOR
			{
				return _Color;
			}
			ENDCG
        }
    }
    Fallback Off
}


_Colr为(1,1,1,1)时,ColorMask R情况下,最终颜色计算方式

(1,0,0) * (bgColor.r,bgColor.g,bgColr.b)   +  (bgColor.r,bgColor.g,bgColr.b) * (1,1,1)

最终颜色 = frag计算结果 * 帧缓冲中已有颜色 + 帧缓冲中已有颜色*1


注意一点在ColorMaskR 条件下 frag计算结果由(1,1,1)变为(1,0,0)



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值