CarmenSandiego/Assets/Shaders/SDF The Chase.shader
Jamie Greunbaum d2072c4fcf - Added a title animation for The Chase.
- Lightning Round SFX no longer play in nested NetworkEventTarget.All function.
2026-03-09 01:46:11 -04:00

109 lines
3.0 KiB
Plaintext

// Upgrade NOTE: replaced 'mul(UNITY_MATRIX_MVP,*)' with 'UnityObjectToClipPos(*)'
// Upgrade NOTE: replaced 'mul(UNITY_MATRIX_MVP,*)' with 'UnityObjectToClipPos(*)'
// Unity built-in shader source. Copyright (c) 2016 Unity Technologies. MIT license (see license.txt)
// Simplified Diffuse shader. Differences from regular Diffuse one:
// - no Main Color
// - fully supports only 1 directional light. Other lights can affect it, but it will be per-vertex/SH.
Shader "Carmen/SDF/The Chase"
{
Properties
{
_MainTex ("SDF", 2D) = "white" {}
[ShowAsVector2] _Skew ("Skew", Vector) = (0.0, 0.0, 0.0, 0.0)
_LeftColour ("Left Colour", Color) = (1.0, 0.0, 0.0, 1.0)
_RightColour ("Right Colour", Color) = (0.0, 0.0, 1.0, 1.0)
_LineColour ("Line Colour", Color) = (0.0, 0.0, 0.0, 1.0)
_LineThickness ("Line Thickness", float) = 0.25
}
SubShader
{
Tags { "Queue"="Overlay" "RenderType"="Opaque" "CanUseSpriteAtlas"="True" }
LOD 200
Pass {
Cull Back
Lighting Off
ZWrite Off
ZTest Always
CGPROGRAM
#include "UnityCG.cginc"
#pragma target 4.5
#pragma vertex vert
#pragma fragment frag
UNITY_DECLARE_TEX2D(_MainTex);
float4 _MainTex_ST;
half4 _Skew;
half4 _LeftColour;
half4 _RightColour;
half4 _LineColour;
float _LineThickness;
struct Data
{
float4 vertex : POSITION;
float2 uv : TEXCOORD0;
};
struct V2F
{
float4 position : SV_POSITION;
float2 uv : TEXCOORD0;
};
V2F vert(Data v)
{
V2F o;
// Skew and scale as needed
float4x4 skewmatrix = float4x4(
1.0, _Skew.x, 0.0, 0.0,
_Skew.y, 1.0, 0.0, 0.0,
0.0, 0.0, 1.0, 0.0,
0.0, 0.0, 0.0, 1.0
);
o.position = mul(skewmatrix, v.vertex);
o.position = mul(UNITY_MATRIX_P,
mul(UNITY_MATRIX_MV, float4(0.0, 0.0, 0.0, 1.0))
+ float4(o.position.x, o.position.y, 0.0, 0.0)
* float4(
length(unity_ObjectToWorld._m00_m10_m20),
length(unity_ObjectToWorld._m01_m11_m21),
1.0, 1.0));
o.uv = TRANSFORM_TEX(v.uv, _MainTex);
return o;
}
fixed4 frag(V2F i) : SV_TARGET
{
half texsample = UNITY_SAMPLE_TEX2D(_MainTex, i.uv).r;
half alphastep = step(texsample, _LineThickness);
if (alphastep < 0.5) discard;
half linestep = step(texsample, 0.1);
return lerp(
_LineColour,
lerp(_LeftColour, _RightColour, i.uv.x % 1.0),
linestep);
}
ENDCG
}
}
FallBack "Diffuse"
}