42 lines
1.1 KiB
Plaintext
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"
|
|
}
|