Loading files
This file is pinned to the selected release. Download the original to open it in your design tool.
f6b8e5137This file is pinned to the selected release. Download the original to open it in your design tool.
Shader "Unlit/Outline Only" {
Properties {
_Color ("Color", Color) = (1,1,1,1)
_Outline ("Outline Color", Color) = (1,1,1,1)
_Width ("Outline Width", Float) = 0.01
}
CGINCLUDE
#include "UnityCG.cginc"
#pragma fragmentoption ARB_precision_hint_fastest
#pragma target 2.0
float4 _Color;
float4 _Outline;
float _Width;
struct appdata {
float4 vertex : POSITION;
float3 normal : NORMAL;
};
struct v2f_n {
float4 vertex : SV_POSITION;
float3 normal : TEXCOORD0;
};
struct v2f {
float4 vertex : SV_POSITION;
};
v2f_n vert_rev_extrude(appdata v) {
v2f_n o;
o.vertex = UnityObjectToClipPos(v.vertex + float4(_Width * -1.0 * v.normal, 0));
o.normal = v.normal;
return o;
}
v2f vert(appdata v) {
v2f o;
o.vertex = UnityObjectToClipPos(v.vertex);
return o;
}
v2f vert_extrude(appdata v) {
v2f o;
o.vertex = UnityObjectToClipPos(v.vertex + float4(_Width * 1.0 * v.normal, 0));
return o;
}
fixed4 frag(v2f_n i) : SV_Target {
fixed4 color = fixed4(1,1,1,1);
float litAmount = dot(normalize(i.normal.xyz), normalize(float3(1, 1.3, 0)));
color = litAmount * 0.25 + color;
color *= _Color;
return color;
}
fixed4 frag_outline(v2f i) : SV_Target{
return _Outline;
}
ENDCG
SubShader {
Tags { "Queue"="Transparent" "RenderType"="Opaque" }
LOD 100
Pass {
Cull Back
ColorMask 0
CGPROGRAM
#pragma vertex vert
#pragma fragment frag
ENDCG
}
Pass{
Cull Front
CGPROGRAM
#pragma vertex vert_extrude
#pragma fragment frag_outline
ENDCG
}
}
}