UnityGame/Library/PackageCache/com.unity.render-pipelines.universal/Shaders/2D/Include/SpriteMaskShared.hlsl
2024-10-27 10:53:47 +03:00

44 lines
895 B
HLSL

#if !defined(SPRITE_MASK_SHARED)
#define SPRITE_MASK_SHARED
// alpha below which a mask should discard a pixel, thereby preventing the stencil buffer from being marked with the Mask's presence
half _Cutoff;
TEXTURE2D(_MainTex);
SAMPLER(sampler_MainTex);
struct Attributes
{
float4 positionOS : POSITION;
half2 texcoord : TEXCOORD0;
};
struct Varyings
{
float4 positionCS : SV_POSITION;
half2 uv : TEXCOORD0;
};
Varyings MaskRenderingVertex(Attributes input)
{
Varyings output;
output.positionCS = TransformObjectToHClip(input.positionOS.xyz);
output.uv = input.texcoord;
return output;
}
half4 MaskRenderingFragment(Varyings input) : SV_Target
{
half4 c = SAMPLE_TEXTURE2D(_MainTex, sampler_MainTex, input.uv);
// for masks: discard pixel if alpha falls below MaskingCutoff
clip(c.a - _Cutoff);
return half4(1, 1, 1, 0.2);
}
#endif