表面剔除与移动

Shader "Custom/Shader0" {
    Properties
    {
        _Tex("Texture",2D) = "white"{}
    }
    SubShader 
    {
        Pass
        {
            cull Off //Cull Off 即为关掉三角形剪裁 Cull Front 为前面(外部)剪裁 Cull Back 为后面(内部)剪裁
            CGPROGRAM
            #pragma vertex vert
            #pragma fragment frag
            #include "UnityCG.cginc"

            
            sampler2D _Tex;

            struct vertexOutput
            {
                float4 pos:POSITION;
                float4 coords:TEXCOORDO;
                float2 uv:TEXCOORD1;
            };
            float4 _Tex_ST;
            vertexOutput vert(appdata_base v)
            {
                vertexOutput  output;
                output.pos = mul(UNITY_MATRIX_MVP,v.vertex);
                output.coords = v.texcoord;
                output.uv = TRANSFORM_TEX(v.texcoord,_Tex);
                return output;
            }
            float4 frag(vertexOutput input):COLOR
            {
          //当坐标的y值大于0.5的时候擦除片段  
if(input.coords.y>0.5) { discard; } float ux = input.uv.x +(-1*_Time); float2 uv_earth = float2(ux,input.uv.y); float4 texCol = tex2D(_Tex,uv_earth); return texCol;//float4(0.0,input.coords.y,0.0,1.0);//texCol; } ENDCG } } FallBack "Diffuse" }

posted @ 2014-11-27 15:08  kadajEvo  阅读(74)  评论(0)    收藏  举报