Skip to content

Commit 00b812f

Browse files
committed
adding shaders
1 parent 1aadb4f commit 00b812f

File tree

8 files changed

+231
-0
lines changed

8 files changed

+231
-0
lines changed

bin/shaders/base.fp

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
#version 120
2+
3+
varying vec3 Position;
4+
varying vec2 Wrap;
5+
6+
uniform sampler2D Texture;
7+
/*uniform vec4 LightBrightness = vec4(1.0, 1.0, 1.0, 1.0);*/
8+
9+
bool floatcmp(float a, float b, float e)
10+
{
11+
return abs(a-b) < e;
12+
}
13+
14+
void main()
15+
{
16+
vec4 color = texture2D(Texture, Wrap);
17+
18+
float e = 0.1;
19+
if(floatcmp(color.r, 1.0, e) &&
20+
floatcmp(color.g, 0.0, e) &&
21+
floatcmp(color.b, 1.0, e))
22+
{
23+
discard;
24+
}
25+
if(floatcmp(color.a, 0.0, e)) {
26+
discard;
27+
}
28+
/*gl_FragColor = vec4(LightAmbient.xyz * 0.1, color.a);*/
29+
gl_FragColor = vec4(0.0, 0.0, 0.0, color.a);
30+
}
31+

bin/shaders/base.json

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
{
2+
"type": "shader"
3+
}

bin/shaders/base.vp

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
#version 120
2+
3+
attribute vec3 VertexPosition;
4+
attribute vec2 VertexWrap;
5+
6+
varying vec3 Position;
7+
varying vec2 Wrap;
8+
9+
uniform mat4 ModelViewProjection;
10+
/*uniform mat4 ModelView;*/
11+
/*uniform mat4 NormalMatrix;*/
12+
13+
void main()
14+
{
15+
Position = VertexPosition;
16+
Wrap = VertexWrap;
17+
gl_Position = ModelViewProjection * vec4(VertexPosition, 1.0);
18+
}
19+

bin/shaders/basic.fp

Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
#version 120
2+
3+
/*varying vec3 VertexPosition;*/
4+
varying vec3 Position;
5+
varying vec2 Wrap;
6+
/*varying vec2 Normal;*/
7+
8+
uniform sampler2D Texture;
9+
uniform vec4 LightBrightness = vec4(1, 1, 1, 1);
10+
11+
// This color key stuff could be done on the CPU, and using a separate tex
12+
/*uniform vec4 ColorKeyLow;*/
13+
/*uniform vec4 ColorKeyHigh;*/
14+
/*uniform vec4 ColorReplaceLow;*/
15+
/*uniform vec4 ColorReplaceHigh;*/
16+
17+
#define M_PI 3.1415926535897932384626433832795
18+
#define M_TAU (M_PI * 2.0)
19+
20+
bool floatcmp(float a, float b, float e)
21+
{
22+
return abs(a-b) < e;
23+
}
24+
25+
bool colorcmp(vec4 a, vec4 b, float t)
26+
{
27+
return floatcmp(a.r,b.r,t) &&
28+
floatcmp(a.g,b.g,t) &&
29+
floatcmp(a.b,b.b,t);
30+
}
31+
32+
vec4 grayscale(vec4 c)
33+
{
34+
float v = (c.r + c.g + c.b) / 3.0;
35+
return vec4(v,v,v, c.a);
36+
}
37+
38+
vec4 evil(vec4 c)
39+
{
40+
if(colorcmp(c, vec4(1.0, 0.0, 0.0, 1.0), 0.2))
41+
return c;
42+
return grayscale(c);
43+
}
44+
45+
float avg(vec3 c)
46+
{
47+
return (c.r + c.g + c.b) / 3.0;
48+
}
49+
50+
void main()
51+
{
52+
vec4 color = texture2D(Texture, Wrap);
53+
float e = 0.1; // threshold
54+
if(floatcmp(color.r, 1.0, e) &&
55+
floatcmp(color.g, 0.0, e) &&
56+
floatcmp(color.b, 1.0, e))
57+
{
58+
discard;
59+
}
60+
if(floatcmp(color.a, 0.0, e)) {
61+
discard;
62+
}
63+
64+
gl_FragColor = color* LightBrightness;
65+
}
66+

bin/shaders/basic.json

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
{
2+
"type": "shader"
3+
}

bin/shaders/basic.vp

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
#version 120
2+
3+
attribute vec3 VertexPosition;
4+
attribute vec2 VertexWrap;
5+
6+
varying vec3 Position;
7+
varying vec2 Wrap;
8+
9+
uniform mat4 ModelViewProjection;
10+
uniform mat4 ModelView;
11+
uniform mat4 NormalMatrix;
12+
13+
void main()
14+
{
15+
/*Position = VertexPosition;*/
16+
gl_Position = ModelViewProjection * vec4(VertexPosition, 1.0);
17+
Wrap = VertexWrap;
18+
Position = gl_Position.xyz;
19+
}
20+

bin/shaders/fog.fp

Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
#version 120
2+
3+
/*varying vec3 VertexPosition;*/
4+
varying vec3 Position;
5+
varying vec2 Wrap;
6+
/*varying vec2 Normal;*/
7+
8+
uniform sampler2D Texture;
9+
uniform vec4 LightBrightness = vec4(1, 1, 1, 1);
10+
11+
// This color key stuff could be done on the CPU, and using a separate tex
12+
/*uniform vec4 ColorKeyLow;*/
13+
/*uniform vec4 ColorKeyHigh;*/
14+
/*uniform vec4 ColorReplaceLow;*/
15+
/*uniform vec4 ColorReplaceHigh;*/
16+
17+
#define M_PI 3.1415926535897932384626433832795
18+
#define M_TAU (M_PI * 2.0)
19+
20+
bool floatcmp(float a, float b, float e)
21+
{
22+
return abs(a-b) < e;
23+
}
24+
25+
bool colorcmp(vec4 a, vec4 b, float t)
26+
{
27+
return floatcmp(a.r,b.r,t) &&
28+
floatcmp(a.g,b.g,t) &&
29+
floatcmp(a.b,b.b,t);
30+
}
31+
32+
vec4 grayscale(vec4 c)
33+
{
34+
float v = (c.r + c.g + c.b) / 3.0;
35+
return vec4(v,v,v, c.a);
36+
}
37+
38+
vec4 evil(vec4 c)
39+
{
40+
if(colorcmp(c, vec4(1.0, 0.0, 0.0, 1.0), 0.1))
41+
return c;
42+
return grayscale(c);
43+
}
44+
45+
float avg(vec3 c)
46+
{
47+
return (c.r + c.g + c.b) / 3.0;
48+
}
49+
50+
void main()
51+
{
52+
vec4 color = texture2D(Texture, Wrap);
53+
float e = 0.1; // threshold
54+
if(floatcmp(color.r, 1.0, e) &&
55+
floatcmp(color.g, 0.0, e) &&
56+
floatcmp(color.b, 1.0, e))
57+
{
58+
discard;
59+
}
60+
if(floatcmp(color.a, 0.0, e)) {
61+
discard;
62+
}
63+
64+
float dist = length(Position.xy);
65+
float fog = 1.0f - sqrt(dist * dist * dist) * 0.75f;
66+
gl_FragColor = color * LightBrightness * fog;
67+
/*gl_FragColor = mix(color, evil(color), 1.0-fog) * LightBrightness;*/
68+
}
69+

bin/shaders/fog.vp

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
#version 120
2+
3+
attribute vec3 VertexPosition;
4+
attribute vec2 VertexWrap;
5+
6+
varying vec3 Position;
7+
varying vec2 Wrap;
8+
9+
uniform mat4 ModelViewProjection;
10+
uniform mat4 ModelView;
11+
uniform mat4 NormalMatrix;
12+
13+
void main()
14+
{
15+
/*Position = VertexPosition;*/
16+
gl_Position = ModelViewProjection * vec4(VertexPosition, 1.0);
17+
Wrap = VertexWrap;
18+
Position = gl_Position.xyz;
19+
}
20+

0 commit comments

Comments
 (0)