2012-11-16 3 views
1

글로벌 알파 값을 가지고 있지만 Unity에서 간단한 디퓨즈 셰이더를 만들려고합니다. 그래서 (알파가없는) 텍스처를 추가 한 다음 셰이더에서 알파 값을 정의합니다 (0에서 1 사이의 float). 전체 텍스처는 투명합니다.글로벌 알파가 포함 된 유니티 디퓨즈 쉐이더

이것은 내가 이미 가지고있는 것입니다. 알파를 추가하는 데 막혔지만, 이미지를 구현할 수있는 가장 기본적인 확산 쉐이더 일뿐입니다.

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 –