Затемнить игровой объект, который пересекает границу тумана

Я создал туман из необработанного изображения и материала с помощью пользовательского шейдера.

Теперь я хочу затемнить некоторые игровые объекты (спрайты), которые пересекают границу тумана.

Но я нуб в шейдерах. Как я могу это сделать? Напишите любые ссылки на руководства / учебники или некоторые идеи.

Картинка для наглядности: картинакартина

Противотуманные шейдеры:

Shader "Custom/Fog" {
Properties{
    _Color("Main Color", Color) = (1,1,1,1)
    _MainTex("Base (RGB)", 2D) = "white" {} // Base (RGB)
}
    SubShader{
        Tags{ "Queue" = "Transparent" "RenderType" = "Transparent" "LightMode" = "ForwardBase" "IgnoreProjector" = "True" }
        Blend SrcAlpha  OneMinusSrcAlpha
        Lighting Off
        LOD 200

        CGPROGRAM

            #pragma surface surf NoLighting noambient alpha:blend

            fixed4 _Color;
            sampler2D _MainTex;

            struct Input {
                float2 uv_MainTex;
            };


            void surf(Input IN, inout SurfaceOutput o) {

                half4 baseColor = tex2D(_MainTex, IN.uv_MainTex);
                o.Albedo = _Color.rgb * baseColor.b;
                o.Alpha = _Color.a - baseColor.g;
            }
        ENDCG
   }
      FallBack "Diffuse"
}

0 ответов

Другие вопросы по тегам