轮廓线

Shader "Custom/Shader4" {
    Properties {
        _Color ("Main Color", Color) = (1,1,1,1)
        _OutlineColor ("Outline Color", Color) = (0,0,0,1)    //改变这个能改变轮廓边的颜色
        _Outline ("Outline width", Range (0.0, 0.03)) = 0.008    //改变这个能改变轮廓边的粗细
        _MainTex ("Base (RGB)", 2D) = "white" {}
        _Emission("Emmisive Color",Color) = (0,0,0,0)//自发光(可以不用)
    }
    CGINCLUDE
    #include "UnityCG.cginc"
    struct appdata
    {
        float4 vertex :POSITION;
        float3 normal:NORMAL;
    };

    struct v2f
    {
        float4 pos:POSITION;
        float4 color:COLOR;
    };

    uniform float _Outline;
    uniform float4 _OutlineColor;
    v2f vert(appdata v)
    {
        v2f o;
        o.pos = mul(UNITY_MATRIX_MVP, v.vertex);

        float3 norm   = mul ((float3x3)UNITY_MATRIX_IT_MV, v.normal);
        float2 offset = TransformViewToProjection(norm.xy);

        o.pos.xy += offset * o.pos.z * _Outline;
        o.color = _OutlineColor;
        return o;
    }

    ENDCG
    SubShader
    {
        Tags{"Queue" = "Transparent"}
        Pass{
            Name "OUTLINE"
            Tags{"LightMode" = "Always"}
            Cull Off
            ZWrite Off
            ZTest Always
            ColorMask RGB
            Blend SrcAlpha OneMinusSrcAlpha

            CGPROGRAM
            #pragma vertex vert
            #pragma fragment frag

            half4 frag(v2f i):COLOR
            {
                return i.color;
            }
            ENDCG
        }
        Pass{
            Name "BASE"
            ZWrite On
            ZTest LEqual
            Blend SrcAlpha OneMinusSrcAlpha
            Material{
                Diffuse[_Color]
                Ambient[_Color]
                Emission[_Emission]
            }
            Lighting On
            SetTexture[_MainTex]
            {
                ConstantColor[_Color]
                Combine texture*constant
            }
            SetTexture[_MainTex]
            {
                Combine previous * primary DOUBLE
            }
        }
    }
    FallBack "Diffuse"
}

posted @ 2014-11-26 15:21  kadajEvo  阅读(408)  评论(0)    收藏  举报