Files
2026-09-28 14:58:25 +02:00

20 lines
733 B
HLSL

#ifndef PORTAL_MEADOW_REGION_INCLUDED
#define PORTAL_MEADOW_REGION_INCLUDED
// Uniforms are supplied by each shader's UnityPerMaterial buffer.
float MeadowRegionFade(float3 originalWS)
{
if (_MeadowRegion.w <= 0) return 1;
float3 local = mul(_MeadowWorldToLocal, float4(originalWS, 1)).xyz;
float distanceToEdge = _MeadowRegion.w - length(local.xz - _MeadowRegion.xz);
clip(distanceToEdge);
return saturate(distanceToEdge / max(_MeadowEdgeFade, 0.001));
}
float ClipMeadowRegion(float3 originalWS, float2 pixel)
{
float fade = MeadowRegionFade(originalWS);
float threshold = frac(52.9829189 * frac(dot(floor(pixel), float2(0.06711056, 0.00583715))));
clip(fade - threshold);
return fade;
}
#endif