ShadowGun代码

http://blog.csdn.net/candycat1992/article/details/42061701   不知道有没有案例  不怎么会用 


Shader "MADFINGER/Transparent/GodRays" {  
  
Properties {  
    _MainTex ("Base texture", 2D) = "white" {}  
    _FadeOutDistNear ("Near fadeout dist", float) = 10    
    _FadeOutDistFar ("Far fadeout dist", float) = 10000   
    _Multiplier("Multiplier", float) = 1  
    _ContractionAmount("Near contraction amount", float) = 5  
}  
  
      
SubShader {  
    Tags { "Queue"="Transparent" "IgnoreProjector"="True" "RenderType"="Transparent" }  
      
    Blend One One  
//  Blend One OneMinusSrcColor  
    Cull Off Lighting Off ZWrite Off Fog { Color (0,0,0,0) }  
      
    LOD 100  
      
    CGINCLUDE     
    #include "UnityCG.cginc"  
    sampler2D _MainTex;  
      
    float _FadeOutDistNear;  
    float _FadeOutDistFar;  
    float _Multiplier;  
    float _ContractionAmount;  
      
      
    struct v2f {  
        float4  pos : SV_POSITION;  
        float2  uv      : TEXCOORD0;  
        fixed4  color   : TEXCOORD1;  
    };  
      
    v2f vert (appdata_full v)  
    {  
        v2f         o;  
        float3  viewPos = mul(UNITY_MATRIX_MV,v.vertex);  
        float       dist        = length(viewPos);  
        float       nfadeout    = saturate(dist / _FadeOutDistNear);  
        float       ffadeout    = 1 - saturate(max(dist - _FadeOutDistFar,0) * 0.2);  
          
        ffadeout *= ffadeout;  
          
        nfadeout *= nfadeout;  
        nfadeout *= nfadeout;  
          
        nfadeout *= ffadeout;  
          
        float4 vpos = v.vertex;  
          
        vpos.xyz -=   v.normal * saturate(1 - nfadeout) * v.color.a * _ContractionAmount;  
                          
        o.uv        = v.texcoord.xy;  
        o.pos   = mul(UNITY_MATRIX_MVP, vpos);  
        o.color = nfadeout * v.color * _Multiplier;  
                          
        return o;  
    }  
    ENDCG  
  
  
    Pass {  
        CGPROGRAM  
        #pragma vertex vert  
        #pragma fragment frag  
        #pragma fragmentoption ARB_precision_hint_fastest         
        fixed4 frag (v2f i) : COLOR  
        {             
            return tex2D (_MainTex, i.uv.xy) * i.color;  
        }  
        ENDCG   
    }     
}  
}  

















Shader "Custom/Blinking GodRays" {  
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值