Skip to content

Commit 089f1b2

Browse files
Outline shader.
1 parent e065ebe commit 089f1b2

File tree

1 file changed

+68
-0
lines changed

1 file changed

+68
-0
lines changed

outline.shader

Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
Shader "Outline"
2+
{
3+
Properties
4+
{
5+
_Color ("Mesh color", Color) = (0,0,1,1)
6+
[Toggle] _enable("Outline enable", Float) = 1
7+
_outline_thickness ("Outline thickness", Float ) = 0.05
8+
_outline_color ("Outline color", Color) = (0,0,0,1)
9+
}
10+
SubShader
11+
{
12+
Tags {"RenderType"="Opaque"}
13+
Pass
14+
{
15+
Name "Outline"
16+
Cull Front
17+
CGPROGRAM
18+
#pragma vertex vertex_shader
19+
#pragma fragment pixel_shader
20+
#pragma target 3.0
21+
22+
float _outline_thickness,_enable;
23+
float4 _outline_color;
24+
25+
float4 vertex_shader (float4 vertex:POSITION,float3 normal:NORMAL):SV_POSITION
26+
{
27+
return UnityObjectToClipPos(float4(vertex.xyz+normal*_outline_thickness,1));
28+
}
29+
30+
float4 pixel_shader(float4 vertex:SV_POSITION):COLOR
31+
{
32+
if (_enable==1)
33+
{
34+
return float4(_outline_color.rgb,0);
35+
}
36+
else
37+
{
38+
discard;
39+
return 0;
40+
}
41+
}
42+
ENDCG
43+
}
44+
45+
Pass
46+
{
47+
Name "FORWARD"
48+
Tags {"LightMode"="ForwardBase"}
49+
CGPROGRAM
50+
#pragma vertex vertex_shader
51+
#pragma fragment pixel_shader
52+
#pragma target 3.0
53+
54+
float4 _Color;
55+
56+
float4 vertex_shader (float4 vertex:POSITION):SV_POSITION
57+
{
58+
return UnityObjectToClipPos(vertex);
59+
}
60+
61+
float4 pixel_shader(float4 vertex:SV_POSITION):COLOR
62+
{
63+
return _Color;
64+
}
65+
ENDCG
66+
}
67+
}
68+
}

0 commit comments

Comments
 (0)