본문으로 바로가기

Unity sprite texture shader

category Technical Report/Unity Shader 2016. 8. 9. 20:23
반응형

  




   
Properties {

   
    [PerRendererData] _MainTex ("Base Texture", 2D) = "white" {}


전처리 된 데이터를 받아옵니다.


    _TintColor ("Emission Color", Color) = (1, 1, 1, 1)
    _Intensity ("Emissive Intensity", Range(0, 5)) = 1
 
   
}

Category {
   
    Tags { "Queue"="Transparent" "IgnoreProjector"="True" "RenderType"="Transparent"


            "PreviewType"="Plane"

PreviewType indicates how the material inspector preview should display the material. By default materials are displayed as spheres, but PreviewType can also be set to “Plane” (will display as 2D) or “Skybox” (will display as skybox).

mateiral 미리보기 표시 선언( sphere가 아닌 plane으로 고정)


           "CanUseSpriteAtlas"="True"}


셰이더가 스프라이트를 위한것임을 선언.


Set CanUseSpriteAtlas tag to “False” if the shader is meant for sprites, and will not work when they are packed into atlases (see Sprite Packer).

 



    Blend OneMinusDstColor One
    AlphaTest Greater .01

   
    Lighting Off
    ZWrite Off
   
    SubShader {
       
        Pass {
       
            CGPROGRAM

            #pragma vertex vert
            #pragma fragment frag
           
            #include "UnityCG.cginc"

            fixed4 _TintColor;
            fixed _Intensity;
            sampler2D _MainTex;

       
                       
            struct appdata_t {
           
                float4 vertex : POSITION;
                fixed4 color : COLOR;
           
               
                float2 texcoord : TEXCOORD0;
            };

            struct v2f {
           
                float4 vertex : SV_POSITION;
                fixed4 color : COLOR;
                float2 texcoord : TEXCOORD0;

           
                                   
            };
           
            float4 _MainTex_ST;

            v2f vert (appdata_t v)
           
            {
                v2f o;
               
                o.vertex = mul(UNITY_MATRIX_MVP, v.vertex);
                               
                o.color = v.color;

                o.texcoord = TRANSFORM_TEX(v.texcoord,_MainTex);

           

                               
               
                return o;
            }

                       
            fixed4 frag (v2f i) : SV_Target
            {
               
            
                fixed4 c =  _Intensity * i.color * _TintColor * tex2D(_MainTex, i.texcoord) ;
                           
               
                c.rgb *= c.a;

                return c;
            }
            ENDCG
        }
    }   
}

}

반응형

'Technical Report > Unity Shader' 카테고리의 다른 글

Unity 5.5 texture option  (0) 2016.12.18
Unity Graphics hardware capabilities and emulation  (0) 2016.09.05
UE4 25 tips for Unreal Engine 4(2)  (0) 2016.07.10
UE4 25 tips for Unreal Engine 4(1)  (2) 2016.07.09
Unity GLSL base shader  (0) 2016.06.03