Затемнить игровой объект, который пересекает границу тумана
Я создал туман из необработанного изображения и материала с помощью пользовательского шейдера.
Теперь я хочу затемнить некоторые игровые объекты (спрайты), которые пересекают границу тумана.
Но я нуб в шейдерах. Как я могу это сделать? Напишите любые ссылки на руководства / учебники или некоторые идеи.
Картинка для наглядности:
Противотуманные шейдеры:
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"
}