CarmenSandiego/Assets/Shaders/Marker.shader
Jamie Greunbaum c11a39d065 - Added markers to show players where to stand during round 2.
- Added a brick material and lined the walls of the alleyway with it.
- Added a concrete walkway to the alleyway.
- Map dots, map borders, and The Chase title are all now anti-aliased.
- Improved the look of the concrete material.
- Wood textures no longer use a transparency render queue.
2026-03-27 04:15:15 -04:00

82 lines
2.1 KiB
Plaintext

Shader "Carmen/SDF/Marker"
{
Properties
{
_MainTex ("SDF", 2D) = "white" {}
_BorderColour ("Border Colour", Color) = (1.0, 1.0, 1.0, 1.0)
_BorderSize ("Border Size", Range(0.05, 0.95)) = 0.95
_FillColour ("Fill Colour", Color) = (0.0, 0.0, 0.0, 1.0)
_FillSize ("Fill Size", Range(0.05, 0.95)) = 0.66666666666666
}
SubShader
{
Tags { "Queue"="Transparent" "RenderType" = "Transparent" }
LOD 200
Pass {
Cull Back
Lighting Off
Blend SrcAlpha OneMinusSrcAlpha
Offset -1, -1
CGPROGRAM
#include "UnityCG.cginc"
#pragma target 4.5
#pragma vertex vert
#pragma fragment frag
UNITY_DECLARE_TEX2D(_MainTex);
float4 _MainTex_ST;
half4 _BorderColour;
half _BorderSize;
half4 _FillColour;
half _FillSize;
struct Data
{
float4 vertex : POSITION;
float2 uv : TEXCOORD0;
};
struct V2F
{
float4 position : SV_POSITION;
float2 uv : TEXCOORD0;
};
V2F vert(Data v)
{
V2F o;
o.position = UnityObjectToClipPos(v.vertex);
o.uv = TRANSFORM_TEX(v.uv, _MainTex);
return o;
}
fixed4 frag(V2F i) : SV_TARGET
{
half sdf_sample = UNITY_SAMPLE_TEX2D(_MainTex, i.uv).r;
half border_halfchange = (abs(ddx(sdf_sample)) + abs(ddy(sdf_sample))) / 2.0;
half border_loweredge = (1.0 - _BorderSize) - border_halfchange;
half border_upperedge = (1.0 - _BorderSize) + border_halfchange;
half border_mask = saturate((sdf_sample - border_loweredge) / (border_upperedge - border_loweredge));
half fill_halfchange = (abs(ddx(sdf_sample)) + abs(ddy(sdf_sample))) / 2.0;
half fill_loweredge = (1.0 - _FillSize) - fill_halfchange;
half fill_upperedge = (1.0 - _FillSize) + fill_halfchange;
half fill_mask = saturate((sdf_sample - fill_loweredge) / (fill_upperedge - fill_loweredge));
half3 blend_colour = lerp(_BorderColour, _FillColour, fill_mask);
return fixed4(blend_colour, border_mask);
}
ENDCG
}
}
Fallback "VRChat/Mobile/Standard Lite"
}