52 lines
1.2 KiB
Plaintext
52 lines
1.2 KiB
Plaintext
Shader "MixedReality/PassthroughLine" {
|
|
Properties{
|
|
_LineLength("Line Length", float) = 1
|
|
|
|
} SubShader {
|
|
Tags{"RenderType" = "Transparent"} LOD 100
|
|
|
|
Pass {
|
|
ZWrite Off
|
|
BlendOp RevSub, Min
|
|
Blend Zero One, One One
|
|
|
|
CGPROGRAM
|
|
// Upgrade NOTE: excluded shader from DX11; has structs without semantics (struct v2f members
|
|
// center)
|
|
//#pragma exclude_renderers d3d11
|
|
#pragma vertex vert
|
|
#pragma fragment frag
|
|
|
|
#include "UnityCG.cginc"
|
|
|
|
struct appdata {
|
|
float4 vertex : POSITION;
|
|
float2 uv : TEXCOORD0;
|
|
float3 normal : NORMAL;
|
|
};
|
|
|
|
struct v2f {
|
|
float2 uv : TEXCOORD0;
|
|
float4 vertex : SV_POSITION;
|
|
};
|
|
|
|
v2f vert(appdata v) {
|
|
v2f o;
|
|
o.vertex = UnityObjectToClipPos(v.vertex);
|
|
o.uv = v.uv;
|
|
return o;
|
|
}
|
|
|
|
float _LineLength;
|
|
|
|
fixed4 frag(v2f i) : SV_Target {
|
|
float UVfadeRange = 0.2;
|
|
fixed widthAlpha = 1 - smoothstep(0.5 - UVfadeRange, 0.5, abs(i.uv.y - 0.5));
|
|
fixed lengthAlpha = 1 - smoothstep(0.5 - (UVfadeRange / _LineLength), 0.5, abs(i.uv.x - 0.5));
|
|
return float4(0, 0, 0, 1-(widthAlpha * lengthAlpha));
|
|
}
|
|
ENDCG
|
|
}
|
|
}
|
|
}
|