BITFALL/Assets/Plugins/CW/Shared/Common/Required/Shaders/ShapeOutline.shader

59 lines
1.0 KiB
Plaintext

Shader "Hidden/CW/ShapeOutline"
{
Properties
{
}
SubShader
{
Cull Off
Pass
{
CGPROGRAM
#pragma vertex Vert
#pragma fragment Frag
#include "UnityCG.cginc"
struct appdata
{
float4 vertex : POSITION;
float2 uv : TEXCOORD0;
};
struct v2f
{
float2 uv : TEXCOORD0;
float4 vertex : SV_POSITION;
};
sampler2D _CW_ShapeTex;
float4 _CW_ShapeChannel;
float4 _CW_ShapeCoords;
float4 _CW_ShapeColor;
void Vert (in appdata i, out v2f o)
{
o.vertex = UnityObjectToClipPos(i.vertex);
o.uv = i.uv;
}
fixed4 Frag (v2f i) : SV_Target
{
float u = lerp(_CW_ShapeCoords.x, _CW_ShapeCoords.z, i.uv.x);
float v = lerp(_CW_ShapeCoords.y, _CW_ShapeCoords.w, i.uv.y);
float shape = dot(tex2D(_CW_ShapeTex, float2(u, v)), _CW_ShapeChannel);
float side = shape + abs(ddx(shape)) + abs(ddy(shape));
if (shape >= 0.5f || side < 0.5f)
{
discard;
}
return _CW_ShapeColor;
}
ENDCG
}
}
}