您的位置:首页 > 其它

【Shader】人物选中高亮状态

2016-06-15 14:38 423 查看
Shader  

"OutLine/RedOutLine"  

{  

    Properties  

    {  

        _Switch("Value",Range(0,1)) = 0  

        _MainTex("Texture",2D) = "white"{}  

        _BumpMap("Bumpmap",2D) = "bump" {}  

        _RimColor("RimColor",Color) = (0.26,0.19,0.16,0.0)  

        _RimPower("RimPower",Range(0.5,8.0)) = 3.0  

    }  

        SubShader  

    {  

        Tags{  

        "RenderType" = "Opaque"  

    }  

        CGPROGRAM  

 

#pragma surface surf Lambert  

  

    struct  

        Input {  

        float2 uv_MainTex;  

        float2 uv_BumpMap;  

        float3 viewDir;  

    };  

    sampler2D _MainTex;  

    sampler2D _BumpMap;  

    float4 _RimColor;  

    float _RimPower;  

    float _Switch;  

    void  

        surf(Input IN, inout SurfaceOutput o) {  

        o.Albedo =  

            tex2D(_MainTex, IN.uv_MainTex).rgb;  

        o.Normal =  

            UnpackNormal(tex2D(_BumpMap, IN.uv_BumpMap));  

        half rim = 0;  

        if (_Switch != 0)  

        {  

             rim = 1.0 - saturate(dot(normalize(IN.viewDir), o.Normal));  

        }  

          

          

  

          

          

        //saturate  

        //限制值于[0,1]之间  

            o.Emission = _RimColor.rgb * pow(rim, _RimPower);  

    }  

    ENDCG  

    }  

  

        Fallback "Diffuse"  

}  
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: