1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
|
# Built-in shader from Unity 5.0.0b19:
# Surface/Rim
# internal variant: DIRECTIONAL DIRLIGHTMAP_OFF DYNAMICLIGHTMAP_OFF LIGHTMAP_OFF SHADOWS_OFF
# This shader GLSL dump is put under MIT license
[require]
GLSL >= 1.10
[vertex shader]
uniform vec4 unity_SHAr;
uniform vec4 unity_SHAg;
uniform vec4 unity_SHAb;
uniform vec4 unity_SHBr;
uniform vec4 unity_SHBg;
uniform vec4 unity_SHBb;
uniform vec4 unity_SHC;
uniform mat4 _Object2World;
uniform mat4 _World2Object;
uniform vec4 _MainTex_ST;
varying vec2 xlv_TEXCOORD0;
varying vec3 xlv_TEXCOORD1;
varying vec3 xlv_TEXCOORD2;
varying vec3 xlv_TEXCOORD3;
void main ()
{
vec4 v_1;
v_1.x = _World2Object[0].x;
v_1.y = _World2Object[1].x;
v_1.z = _World2Object[2].x;
v_1.w = _World2Object[3].x;
vec4 v_2;
v_2.x = _World2Object[0].y;
v_2.y = _World2Object[1].y;
v_2.z = _World2Object[2].y;
v_2.w = _World2Object[3].y;
vec4 v_3;
v_3.x = _World2Object[0].z;
v_3.y = _World2Object[1].z;
v_3.z = _World2Object[2].z;
v_3.w = _World2Object[3].z;
vec3 tmpvar_4;
tmpvar_4 = normalize(((
(v_1.xyz * gl_Normal.x)
+
(v_2.xyz * gl_Normal.y)
) + (v_3.xyz * gl_Normal.z)));
vec4 tmpvar_5;
tmpvar_5.w = 1.0;
tmpvar_5.xyz = tmpvar_4;
vec3 x2_6;
vec3 x1_7;
x1_7.x = dot (unity_SHAr, tmpvar_5);
x1_7.y = dot (unity_SHAg, tmpvar_5);
x1_7.z = dot (unity_SHAb, tmpvar_5);
vec4 tmpvar_8;
tmpvar_8 = (tmpvar_4.xyzz * tmpvar_4.yzzx);
x2_6.x = dot (unity_SHBr, tmpvar_8);
x2_6.y = dot (unity_SHBg, tmpvar_8);
x2_6.z = dot (unity_SHBb, tmpvar_8);
gl_Position = (gl_ModelViewProjectionMatrix * gl_Vertex);
xlv_TEXCOORD0 = ((gl_MultiTexCoord0.xy * _MainTex_ST.xy) + _MainTex_ST.zw);
xlv_TEXCOORD1 = tmpvar_4;
xlv_TEXCOORD2 = (_Object2World * gl_Vertex).xyz;
xlv_TEXCOORD3 = ((x1_7 + x2_6) + (unity_SHC.xyz * (
(tmpvar_4.x * tmpvar_4.x)
-
(tmpvar_4.y * tmpvar_4.y)
)));
}
[fragment shader]
uniform vec3 _WorldSpaceCameraPos;
uniform vec4 _WorldSpaceLightPos0;
uniform vec4 _LightColor0;
uniform sampler2D _MainTex;
uniform vec4 _RimColor;
uniform float _RimPower;
varying vec2 xlv_TEXCOORD0;
varying vec3 xlv_TEXCOORD1;
varying vec3 xlv_TEXCOORD2;
varying vec3 xlv_TEXCOORD3;
void main ()
{
vec4 c_1;
vec4 tmpvar_2;
tmpvar_2 = texture2D (_MainTex, xlv_TEXCOORD0);
c_1.w = 0.0;
c_1.xyz = (tmpvar_2.xyz * xlv_TEXCOORD3);
vec4 c_3;
c_3.xyz = ((tmpvar_2.xyz * _LightColor0.xyz) * (max (0.0,
dot (xlv_TEXCOORD1, _WorldSpaceLightPos0.xyz)
) * 2.0));
c_3.w = 0.0;
c_1.xyz = ((c_1 + c_3).xyz + (_RimColor.xyz * pow (
(1.0 - clamp (dot (normalize(
normalize((_WorldSpaceCameraPos - xlv_TEXCOORD2))
), xlv_TEXCOORD1), 0.0, 1.0))
, _RimPower)));
c_1.w = 1.0;
gl_FragData[0] = c_1;
}
|