You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

请求协助将Unity中的灰度Shader修改为透明Shader

修改Unity灰度Shader以支持透明效果

要让你的灰度Shader具备透明效果,需要调整渲染状态并保留/控制Alpha通道,以下是修改后的完整代码及关键说明:

修改后的Shader代码

Shader "Custom/DesaturateWithTransparency"
{
    Properties
    {
        _MainTex ("Base (RGB)", 2D) = "black" {}
        _Brightness ("Brightness", Float) = 1.0
        _Opacity ("Opacity", Range(0.0, 1.0)) = 1.0 // 可选:整体透明度控制参数
    }

    SubShader
    {
        Tags { "Queue"="Transparent" "RenderType"="Transparent" "IgnoreProjector"="True" }
        LOD 100

        Pass
        {
            ZTest Always Cull Off ZWrite Off
            Fog { Mode off }
            Blend SrcAlpha OneMinusSrcAlpha // 开启透明混合

            CGPROGRAM
            #pragma vertex vert_img
            #pragma fragment frag
            #pragma fragmentoption ARB_precision_hint_fastest
            #include "UnityCG.cginc"

            uniform sampler2D _MainTex;
            uniform float _Brightness;
            uniform float _Opacity;

            fixed4 frag (v2f_img i) : COLOR
            {
                float4 mainColor = tex2D(_MainTex, i.uv);
                // 计算灰度值
                float3 greyScale = dot(mainColor.rgb, float3(0.3, 0.59, 0.11)) * _Brightness;
                mainColor.rgb = greyScale;
                // 应用整体透明度(如果不需要这个控制,直接保留原mainColor.a即可)
                mainColor.a *= _Opacity;

                return mainColor;
            }
            ENDCG
        }
    }

    Fallback off
}

关键修改点说明

  • 添加透明相关标签:Tags { "Queue"="Transparent" "RenderType"="Transparent" } 告诉Unity将该Shader归入透明渲染队列,保证渲染顺序符合透明对象的显示逻辑
  • 开启透明混合:Blend SrcAlpha OneMinusSrcAlpha 是标准的透明混合规则,源颜色的Alpha值决定自身透明度,背景颜色会根据Alpha值与当前颜色混合
  • 可选整体透明度控制:新增_Opacity属性,可在Unity Inspector面板中直接调整整体透明度;若不需要该功能,删除对应属性和mainColor.a *= _Opacity;代码即可,Shader会直接使用原纹理的Alpha通道
  • 调整Shader路径:将原Hidden/Desaturate改为Custom/DesaturateWithTransparency,方便在Unity面板中快速找到该Shader

内容的提问来源于stack exchange,提问作者Đạt Đức Lê

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 14:05:23