2012-11-16 63 views
1

我想在Unity中做一個簡單的漫反射着色器,雖然有全局的阿爾法值。所以你添加一個紋理(沒有alpha),然後在着色器中定義一個alpha值(在0和1之間浮動)。然後整個紋理是透明的。全局阿爾法的統一漫反射着色器

這是我已經有了,這只是最基本的漫反射着色器,可以形象,雖然我被困在加入阿爾法。

Properties 
{ 
    _Alpha ("Alpha", Range (0.0,1.0)) = 0.0 
    _MainTex ("Base (RGB) Transparency (A)", 2D) = "" { } 
} 

SubShader 
{ 
    Pass 
    { 
     SetTexture [_MainTex] { combine texture } 
    } 
} 

感謝,

回答

1

這已經有一段時間,因爲我做任何這一點,但我覺得你想要的東西,如:

SubShader 
{ 
    Tags { "Queue" = "Transparent" } 

    Pass 
    { 
     Blend SrcAlpha OneMinusSrcAlpha 

     SetTexture [_MainTex] { 
      constantColor (1, 1, 1, [_Alpha]) 
      combine texture * constant 
     } 
    } 
} 

請注意,您可以下載內置從here統一着色器,他們是非常有用的學習。

+1

這幾乎成功!它必須是「constantColor(1,1,1,[_Alpha])」否則紋理是黑色的。謝謝! –

+0

很高興幫助。固定。 – user673679

+0

真棒,我開始明白這個shaderlab的東西,我認爲在Unity中最難的事情之一:P –

相關問題