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

Unity内置Shader能否同时支持Cutout与可调控的Transparency效果?

实现支持Cutout与独立透明度调控的Unity内置Shader

当然可以实现这类Shader。核心是将Cutout的裁剪逻辑和非裁剪区域的透明度调控拆分开,用独立参数控制,避免互相干扰。下面是基于Unity内置Standard Cutout Shader修改的版本,完全符合你的需求:

Shader "Custom/Standard Cutout with Opacity" {
    Properties {
        _Color ("Color", Color) = (1,1,1,1)
        _MainTex ("Albedo (RGB)", 2D) = "white" {}
        _Glossiness ("Smoothness", Range(0,1)) = 0.5
        _Metallic ("Metallic", Range(0,1)) = 0.0
        _Cutoff ("Alpha Cutoff", Range(0,1)) = 0.5
        _Opacity ("Non-Cutout Opacity", Range(0,1)) = 1.0 // 新增:控制非裁剪区域的整体透明度
    }
    SubShader {
        Tags { "RenderType"="TransparentCutout" "Queue"="AlphaTest" "IgnoreProjector"="True" }
        LOD 200

        CGPROGRAM
        // 采用Standard光照模型,开启alpha测试,同时支持透明度混合
        #pragma surface surf Standard alphatest:_Cutoff alpha:blend

        #pragma target 3.0

        sampler2D _MainTex;

        struct Input {
            float2 uv_MainTex;
        };

        half _Glossiness;
        half _Metallic;
        fixed4 _Color;
        fixed _Opacity; // 声明透明度参数

        void surf (Input IN, inout SurfaceOutputStandard o) {
            // 采样纹理并叠加颜色
            fixed4 c = tex2D (_MainTex, IN.uv_MainTex) * _Color;
            o.Albedo = c.rgb;
            // 金属度和光滑度保持原逻辑
            o.Metallic = _Metallic;
            o.Smoothness = _Glossiness;
            
            // 关键:先通过alpha测试裁剪像素(仅判断原纹理alpha是否低于_Cutoff)
            // 裁剪后,非透明区域的最终alpha = 原alpha * _Opacity
            o.Alpha = c.a * _Opacity;
        }
        ENDCG
    }
    FallBack "Standard/Cutout"
}

关键逻辑说明:

  • Cutout效果保留:通过alphatest:_Cutoff指令,Unity会自动对片元的alpha值进行裁剪判断——只要原纹理的alpha低于_Cutoff,该像素就会被丢弃,完全保留Cutout的硬边缘效果。
  • 独立透明度调控:新增的_Opacity参数仅作用于通过裁剪的像素,将其最终alpha值乘以_Opacity,实现非裁剪区域的整体透明度调节,且不会改变Cutout的阈值判断逻辑。
  • 渲染队列设置:保持Queue="AlphaTest"确保Cutout的正确渲染顺序,同时开启alpha:blend支持透明度混合,让_Opacity的调节生效。

内容的提问来源于stack exchange,提问作者WILEz

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 07:58:19