bloggerAds

2017年5月23日 星期二

Alpha效果

最近測試了shader alpha的效果,
先貼個程式碼先~

Shader "WilsonTest" {
    Properties {    //{1}
        _MainTex ("_MainTex", 2D) = "white" {}
        _Alpha ("_Alpha", Range(0,1)) = 0.5
    }

    SubShader {
        Tags {"Queue"="Transparent"}  //{2}
        LOD 200
        Blend SrcAlpha OneMinusSrcAlpha //{3}

        Pass {
            CGPROGRAM
            #pragma vertex vert
            #pragma fragment frag
            #include "UnityCG.cginc"

            sampler2D _MainTex;   //{4}
            float _Alpha;

            struct v2f
            {
                float2 uv : TEXCOORD0;
                float4 pos : SV_POSITION;
            };

            float4 _MainTex_ST;
            v2f vert(float4 pos : POSITION, float2 uv : TEXCOORD0)
            {
               v2f o;
               o.pos = mul (UNITY_MATRIX_MVP, pos);
               o.uv = TRANSFORM_TEX(uv, _MainTex);
               return o;
            }

            fixed4 frag(v2f i) : SV_Target
            {
               fixed4 tex = tex2D(_MainTex, i.uv);
               tex.a = _Alpha;    //{5}
               return tex;
            }
            ENDCG
        }
    }
}


{1} 宣告了圖片及Alpha的參數
{2} 將Queue設置為Transparent
{3} 使用Alpha
{4} 使shader中可以使用Editor設置的代碼
{5} 設置圖片Alpha

看個結果吧!
alpha設置為1時:



















alpha設置為0.5時:

沒有留言:

張貼留言