-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathbot.fragmentshader
37 lines (35 loc) · 930 Bytes
/
bot.fragmentshader
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
out vec4 color;
in vec2 uv;
in vec3 vNormal;
in float vEnergy;
uniform sampler2D tex;
void main(){
float fDotProduct = max(0.0, dot(vNormal, vec3(.577, -.577, .577))) * 0.6;
vec3 energyColor = vec3(1.0, 1.0, 1.0);
if (vEnergy < 0.25)
energyColor = vec3(0.50 + vEnergy * 2.0, 0.0, 0.0);
else if (vEnergy < 0.5)
energyColor = vec3(1.0, (vEnergy - 0.25) * 4.0, 0.0);
else if (vEnergy < 0.75)
energyColor = vec3(1.0 - (vEnergy - 0.5) * 4.0, 1.0, 0);
else
{
float r = (vEnergy - 0.75) * 4.0;
energyColor = vec3(r, 1.0, r);
}
vec3 rgb = texture(tex, uv).rgb;
for (int i = 0; i < 10; ++i)
{
if (rgb == vec3(i / 255.0, 0.0, 0.0))
{
if (matter > i / 10.0)
color = vec4(0.0, 1.0, 0.0, 1.0);
else
color = vec4(0.0, 0.0, 0.0, 1.0);
return;
}
}
rgb *= energyColor;
float a = texture(tex, uv).a;
color = vec4(rgb * fDotProduct + rgb * 0.4, a);
}