一日一Shader·Blend【SS_31】

各种Blend组合所实现的效果:

  1. Blend DstColor Zero //源颜色 x 目标颜色 + 目标颜色 x 0,即multiplicative  
  2. Blend DstColor SrcColor //源颜色 x 目标颜色 + 目标颜色 x 源颜色 ,即2x multiplicative【正片叠底的效果】
  3. Blend SrcAlpha OneMinusSrcAlpha  //源颜色 x 源通道  +  目标颜色 x(1 - 源通道)【可以受源通道影响变完全透明,但Queue要为3000】
  4. Blend SrcAlpha One // 源颜色 x 源通道   +  目标颜色 ,即additive blending ,带通道的叠加模式(常用的ADD模式)【可以受源通道影响变完全透明,但Queue要为3000】
  5. Blend One One //源颜色 + 目标颜色  ,即additive ,正常的叠加模式【不可受源通道影响变完全透明】
  6. Blend OneMinusDstColor One //源颜色 x (1-目标颜色)  +  目标颜色   ,即soft additive  【不可受源通道影响变完全透明】           

  7. Blend Zero SrcAlpha //源颜色 x 0+目标颜色 x 源通道

shader脚本:

Shader "MyShader/SS_31"  
{  
    Properties{          
        _MainTex("Texture", 2D) = ""{}  
		[Enum(UnityEngine.Rendering.BlendMode)] _SrcBlend("Src Blend Mode", Float)  = 1
		[Enum(UnityEngine.Rendering.BlendMode)] _DstBlend("Dst Blend Mode", Float)  = 1
    }  
    SubShader
    {		
		CGINCLUDE
		#include "UnityCG.cginc"		
		sampler2D _MainTex;
		fixed4 _MainTex_ST;
		struct appdata
        {
			fixed4 vertex:POSITION;
 	        fixed2 uv : TEXCOORD0;
		};
		struct v2f
        {
			fixed4 pos : SV_POSITION;
			fixed2 uv : TEXCOORD0;	
        };
		v2f vert(appdata v)
		{
			v2f o;
			o.pos = UnityObjectToClipPos(v.vertex);			
			o.uv = TRANSFORM_TEX(v.uv, _MainTex);					
			return o;
		}
		fixed4 frag (v2f i) : SV_Target
        {
            fixed4 col = tex2D(_MainTex, i.uv);				
            return col;
        }
		ENDCG
		Pass
        { 	
			Tags{ "LightMode" = "UniversalForward" }
			Blend[_SrcBlend][_DstBlend]
            CGPROGRAM 
			#pragma vertex vert
			#pragma fragment frag			
            ENDCG
        }
    }
}  

返回目录:https://blog.csdn.net/yzy1987523/article/details/107561997

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值