【问题标题】:Unity2D - Area Color InverseUnity2D - 区域颜色反转
【发布时间】:2021-10-25 12:53:32
【问题描述】:

我有几个问题:/

Unity 2D: Area Color Inverse Effect

着色器图可以做到这一点吗?

是否可以使用纹理的 Alpha 通道而不是网格?

谢谢。

【问题讨论】:

  • 可以,有一个节点one minus 可以帮助您获得反色效果。

标签: unity3d shader


【解决方案1】:

是的,可以使用着色器图,我会推荐这种方法,它可以让它变得非常简单。你只需要弄清楚你想如何通过你想要反转的区域。 但是,是的,有一个名为 One Minus 的节点,我认为这就是您要寻找的节点。

【讨论】:

    【解决方案2】:

    好的,所以找到了解决方案。

    无法使用着色器图,因为节点“场景颜色”不适用于 URP。

    团结不和谐帮我解决这个问题

    Shader "Unlit/invertColorArea"
    {
        Properties 
        {
            _Color ("Color", Color) = (1,1,1,1)
            _MainTex ("Albedo (RGB)", 2D) = "white" {}
            _Threshold ("Threshold", Range(0., 1.)) = 0
            _ThresholdDiscard ("ThresholdDiscard", Range(0., 1.)) = 0
        }
        SubShader 
        {
            Tags { "RenderType"="Transparent" "Queue"="Transparent" }
            Cull off
            Blend OneMinusDstColor Zero
    
            PASS
            {
                CGPROGRAM
    
                #pragma vertex vert
                #pragma fragment frag
                #pragma target 3.0 Alpha:Blend
    
                struct appdata
                {
                    float4 vertex : POSITION;
                    float2 uv : TEXCOORD0;
                };
    
                struct v2f
                {
                    float2 uv : TEXCOORD0;
                    float4 vertex : SV_POSITION;
                };
    
                sampler2D _MainTex;
                fixed4 _Color;
                float _Threshold;
                float _ThresholdDiscard;
    
                v2f vert (appdata v)
                {
                    v2f o;
                    o.vertex = UnityObjectToClipPos(v.vertex);
                    o.uv = v.uv;
                    return o;
                }
            
                fixed4 frag (v2f i) : SV_Target
                {
                    fixed4 col = tex2D(_MainTex, i.uv);
                    col.rgb = abs(_Threshold - col.rgb);
                    if(col.a < _ThresholdDiscard)
                        discard;
                    return col;
                }
    
                ENDCG
            }
        }
        FallBack "Diffuse"
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-01-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-08
      相关资源
      最近更新 更多