Files
AppleHillsProduction/Assets/Shaders/TrashMaze/RevealStamp.shader
2025-12-10 12:13:35 +01:00

65 lines
1.8 KiB
Plaintext

Shader "Hidden/TrashMaze/RevealStamp"
{
Properties
{
_StampPos ("Stamp Position", Vector) = (0.5, 0.5, 0, 0)
_StampRadius ("Stamp Radius", Float) = 0.2
}
SubShader
{
Tags { "Queue"="Overlay" "RenderType"="Opaque" }
// Additive blend to accumulate stamps
Blend One One
ZTest Always
ZWrite Off
Cull Off
Pass
{
HLSLPROGRAM
#pragma vertex vert
#pragma fragment frag
#include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Core.hlsl"
struct Attributes
{
float4 positionOS : POSITION;
float2 uv : TEXCOORD0;
};
struct Varyings
{
float4 positionCS : SV_POSITION;
float2 uv : TEXCOORD0;
};
float4 _StampPos;
float _StampRadius;
Varyings vert(Attributes input)
{
Varyings output;
output.positionCS = TransformObjectToHClip(input.positionOS.xyz);
output.uv = input.uv;
return output;
}
half4 frag(Varyings input) : SV_Target
{
// Calculate distance from stamp center
float dist = distance(input.uv, _StampPos.xy);
// Binary circle: 1.0 inside radius, 0.0 outside
float alpha = dist < _StampRadius ? 1.0 : 0.0;
// Return white with calculated alpha (additive blend accumulates)
return half4(alpha, alpha, alpha, alpha);
}
ENDHLSL
}
}
}