Files
2024-11-20 15:21:28 +01:00

42 lines
1.1 KiB
Plaintext

Shader "Scanner/CameraScanning/GroundHalo" {
Properties {
_MainTex ("Main", 2D) = "white" {}
_Color ("Color", Color) = (1,1,1,1)
_Center ("Center", Vector) = (0,0,0,0)
_Radius ("Radius", Float) = 0.5
_HaloColor ("Halo Color", Color) = (1,0,0,1)
_HaloWidth ("Halo Width", Float) = 2
_HaloPower ("Halo Power", Float) = 32
_HaloSpeed ("Halo Speed", Float) = 1
}
SubShader {
Tags { "RenderType" = "Opaque" }
CGPROGRAM
#pragma surface surf Standard fullforwardshadows
#pragma target 3.0
sampler2D _MainTex;
fixed4 _Color, _Center, _HaloColor;
float _Radius, _HaloWidth, _HaloPower, _HaloSpeed;
struct Input {
float2 uv_MainTex;
float3 worldPos;
};
void surf (Input IN, inout SurfaceOutputStandard o)
{
float d = distance(_Center, IN.worldPos);
float t = _HaloWidth * abs(sin(_Time.y * _HaloSpeed));
float rng = _Radius + t;
o.Albedo = tex2D(_MainTex, IN.uv_MainTex).rgb * _Color;
if (d > _Radius && d < rng)
o.Emission = _HaloColor * pow(d / rng, _HaloPower);
else
o.Emission = 0;
}
ENDCG
}
FallBack "Diffuse"
}