1

我正在尝试在 Unity 中制作一个简单的漫反射着色器,尽管它具有全局 alpha 值。所以你添加一个纹理(没有 alpha),然后在着色器中定义一个 alpha 值(在 0 和 1 之间浮动。)然后整个纹理是透明的。

这是我已经拥有的,它只是您可以成像的最基本的漫反射着色器,尽管我一直在添加 alpha。

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

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

谢谢,

4

1 回答 1

1

我已经有一段时间没有这样做了,但我认为你想要这样的东西:

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

    Pass
    {
        Blend SrcAlpha OneMinusSrcAlpha

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

请注意,您可以从这里下载统一的内置着色器,它们非常有用,值得学习。

于 2012-11-16T13:51:53.637 回答