Skip to content

Commit 44bca7e

Browse files
committed
clean ups and add presets for 3D shaders
1 parent 1839c77 commit 44bca7e

4 files changed

+73
-102
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
shaders = 1
2+
3+
shader0 = shaders/anaglyph-to-side-by-side.glsl
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,13 @@
1+
#pragma parameter anaglyph_mode "Anaglyph Color Mode" 1.0 1.0 6.0 1.0
12
#pragma parameter eye_sep "Eye Separation" 0.35 -1.0 5.0 0.05
2-
#pragma parameter y_loc "Vertical Placement" 0.30 -1.0 1.0 0.05
3+
#pragma parameter y_loc "Vertical Placement" 0.35 -1.0 1.0 0.01
4+
#pragma parameter BOTH "Horizontal Placement" 0.75 -2.0 2.0 0.005
35
#pragma parameter ana_zoom "Zoom" 0.75 -2.0 2.0 0.05
4-
#pragma parameter WIDTH "Side-by-Side Image Width" 3.05 1.0 7.0 0.05
5-
#pragma parameter HEIGHT "Side-by-Side Image Height" 2.0 1.0 5.0 0.1
6-
#pragma parameter BOTH "Horizontal Placement" 0.64 -2.0 2.0 0.005
6+
#pragma parameter WIDTH "Image Width" 3.05 1.0 7.0 0.05
7+
#pragma parameter HEIGHT "Image Height" 2.0 1.0 5.0 0.1
78
#pragma parameter palette "Red Palette Toggle" 0.0 0.0 1.0 1.0
8-
#pragma parameter warpX "warpX" 0.3 0.0 0.5 0.05
9-
#pragma parameter warpY "warpY" 0.3 0.0 0.5 0.05
9+
#pragma parameter warpX "Lens Warp Correction X" 0.3 0.0 0.5 0.05
10+
#pragma parameter warpY "Lens Warp Correction Y" 0.3 0.0 0.5 0.05
1011

1112
#if defined(VERTEX)
1213

@@ -31,8 +32,8 @@ COMPAT_ATTRIBUTE vec4 COLOR;
3132
COMPAT_ATTRIBUTE vec4 TexCoord;
3233
COMPAT_VARYING vec4 COL0;
3334
COMPAT_VARYING vec4 TEX0;
35+
COMPAT_VARYING float v_mode;
3436

35-
vec4 _oPosition1;
3637
uniform mat4 MVPMatrix;
3738
uniform COMPAT_PRECISION int FrameDirection;
3839
uniform COMPAT_PRECISION int FrameCount;
@@ -41,15 +42,7 @@ uniform COMPAT_PRECISION vec2 TextureSize;
4142
uniform COMPAT_PRECISION vec2 InputSize;
4243

4344
#ifdef PARAMETER_UNIFORM
44-
uniform COMPAT_PRECISION float eye_sep;
45-
uniform COMPAT_PRECISION float y_loc;
46-
uniform COMPAT_PRECISION float ana_zoom;
47-
uniform COMPAT_PRECISION float WIDTH;
48-
uniform COMPAT_PRECISION float BOTH;
49-
uniform COMPAT_PRECISION float HEIGHT;
50-
uniform COMPAT_PRECISION float palette;
51-
uniform COMPAT_PRECISION float warpX;
52-
uniform COMPAT_PRECISION float warpY;
45+
uniform COMPAT_PRECISION float eye_sep, y_loc, ana_zoom, WIDTH, BOTH, HEIGHT, palette, warpX, warpY, anaglyph_mode;
5346
#else
5447
#define eye_sep 0.35
5548
#define y_loc 0.30
@@ -60,19 +53,15 @@ uniform COMPAT_PRECISION float warpY;
6053
#define palette 0.0
6154
#define warpX 0.3
6255
#define warpY 0.3
56+
#define anaglyph_mode 1.0
6357
#endif
6458

6559
void main()
6660
{
67-
vec4 _oColor;
68-
vec2 _otexCoord;
6961
gl_Position = VertexCoord.x * MVPMatrix[0] + VertexCoord.y * MVPMatrix[1] + VertexCoord.z * MVPMatrix[2] + VertexCoord.w * MVPMatrix[3];
70-
_oPosition1 = gl_Position;
71-
_oColor = COLOR;
72-
_otexCoord = TexCoord.xy;
73-
COL0 = COLOR;
7462
vec2 shift = 0.5 * InputSize / TextureSize;
7563
TEX0.xy = ((TexCoord.xy - shift) * ana_zoom + shift) * vec2(WIDTH, HEIGHT) - vec2(BOTH, 0.0);
64+
v_mode = anaglyph_mode;
7665
}
7766

7867
#elif defined(FRAGMENT)
@@ -98,28 +87,27 @@ precision mediump float;
9887
#define COMPAT_PRECISION
9988
#endif
10089

101-
struct output_dummy {
102-
vec4 _color;
103-
};
104-
10590
uniform COMPAT_PRECISION int FrameDirection;
10691
uniform COMPAT_PRECISION int FrameCount;
10792
uniform COMPAT_PRECISION vec2 OutputSize;
10893
uniform COMPAT_PRECISION vec2 TextureSize;
10994
uniform COMPAT_PRECISION vec2 InputSize;
11095
uniform sampler2D Texture;
11196
COMPAT_VARYING vec4 TEX0;
97+
COMPAT_VARYING float v_mode;
11298

11399
#ifdef PARAMETER_UNIFORM
114-
uniform COMPAT_PRECISION float eye_sep;
115-
uniform COMPAT_PRECISION float y_loc;
116-
uniform COMPAT_PRECISION float ana_zoom;
117-
uniform COMPAT_PRECISION float WIDTH;
118-
uniform COMPAT_PRECISION float BOTH;
119-
uniform COMPAT_PRECISION float HEIGHT;
120-
uniform COMPAT_PRECISION float palette;
121-
uniform COMPAT_PRECISION float warpX;
122-
uniform COMPAT_PRECISION float warpY;
100+
uniform COMPAT_PRECISION float eye_sep, y_loc, ana_zoom, WIDTH, BOTH, HEIGHT, palette, warpX, warpY;
101+
#else
102+
#define eye_sep 0.35
103+
#define y_loc 0.30
104+
#define ana_zoom 0.75
105+
#define WIDTH 3.05
106+
#define BOTH 0.64
107+
#define HEIGHT 2.0
108+
#define palette 0.0
109+
#define warpX 0.3
110+
#define warpY 0.3
123111
#endif
124112

125113
//distortion
@@ -130,26 +118,24 @@ vec2 Warp(vec2 pos){
130118

131119
void main()
132120
{
133-
output_dummy _OUT;
134121
vec2 warpCoord1 = Warp((TEX0.xy - vec2(eye_sep, y_loc))*(TextureSize.xy/InputSize.xy))*(InputSize.xy/TextureSize.xy);
135122
vec2 warpCoord2 = Warp((TEX0.xy + vec2(eye_sep, -y_loc))*(TextureSize.xy/InputSize.xy))*(InputSize.xy/TextureSize.xy);
136-
vec2 fragCoord1 = warpCoord1 * InputSize / TextureSize;
137-
vec2 fragCoord2 = warpCoord2 * InputSize / TextureSize;
138-
vec4 frame1 = vec4(0.0);
139-
if ( fragCoord1.x < 1.0 && fragCoord1.x > 0.0 && fragCoord1.y < 1.0 && fragCoord1.y > 0.0 )
140-
frame1 = COMPAT_TEXTURE(Texture, warpCoord1);
141-
vec4 frame2 = vec4(0.0);
142-
if ( fragCoord2.x < 1.0 && fragCoord2.x > 0.0 && fragCoord2.y < 1.0 && fragCoord2.y > 0.0 )
143-
frame2 = COMPAT_TEXTURE(Texture, warpCoord2);
144-
frame1.gb = vec2(frame1.r);
145-
frame2.r = frame2.g;
146-
vec4 final = vec4(0.0);
147-
if (palette > 0.5)
148-
final = frame1 + frame2;
149-
else
150-
final = vec4(frame1.r + frame2.r, 0.0, 0.0, 1.0);
151-
_OUT._color = final;
152-
FragColor = _OUT._color;
153-
return;
123+
vec2 fragCoord1 = warpCoord1 * InputSize / TextureSize;
124+
vec2 fragCoord2 = warpCoord2 * InputSize / TextureSize;
125+
vec4 frame1 = vec4(0.0);
126+
if ( fragCoord1.x < 1.0 && fragCoord1.x > 0.0 && fragCoord1.y < 1.0 && fragCoord1.y > 0.0 )
127+
frame1 = COMPAT_TEXTURE(Texture, warpCoord1);
128+
vec4 frame2 = vec4(0.0);
129+
if ( fragCoord2.x < 1.0 && fragCoord2.x > 0.0 && fragCoord2.y < 1.0 && fragCoord2.y > 0.0 )
130+
frame2 = COMPAT_TEXTURE(Texture, warpCoord2);
131+
frame1.rgb = (v_mode < 4) ? vec3(frame1.r) : vec3(frame1.g);
132+
frame2.rgb = (v_mode != 4) ? frame2.b : frame2.g;
133+
vec4 final = vec4(0.0);
134+
if (palette > 0.5)
135+
final = frame1 + frame2;
136+
else
137+
final = vec4(frame1.r + frame2.r, 0.0, 0.0, 1.0);
138+
139+
FragColor = final;
154140
}
155141
#endif
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,12 @@
1-
#pragma parameter eye_sep "Eye Separation" 0.35 -1.0 5.0 0.05
2-
#pragma parameter y_loc "Vertical Placement" 0.30 -1.0 1.0 0.05
1+
#pragma parameter eye_sep "Eye Separation" 0.30 -1.0 5.0 0.05
2+
#pragma parameter y_loc "Vertical Placement" 0.25 -1.0 1.0 0.01
3+
#pragma parameter BOTH "Horizontal Placement" 0.51 -2.0 2.0 0.005
34
#pragma parameter ana_zoom "Zoom" 0.75 -2.0 2.0 0.05
45
#pragma parameter WIDTH "Side-by-Side Image Width" 3.05 1.0 7.0 0.05
56
#pragma parameter HEIGHT "Side-by-Side Image Height" 2.0 1.0 5.0 0.1
6-
#pragma parameter BOTH "Horizontal Placement" 0.64 -2.0 2.0 0.005
7-
#pragma parameter warpX "warpX" 0.3 0.0 0.5 0.05
8-
#pragma parameter warpY "warpY" 0.3 0.0 0.5 0.05
7+
#pragma parameter warpX "Lens Warp Correction X" 0.1 0.0 0.5 0.05
8+
#pragma parameter warpY "Lens Warp Correction Y" 0.1 0.0 0.5 0.05
9+
#pragma parameter pulfrich "Pulfrich Effect" 0.0 0.0 0.5 0.25
910

1011
#if defined(VERTEX)
1112

@@ -26,12 +27,9 @@
2627
#endif
2728

2829
COMPAT_ATTRIBUTE vec4 VertexCoord;
29-
COMPAT_ATTRIBUTE vec4 COLOR;
3030
COMPAT_ATTRIBUTE vec4 TexCoord;
31-
COMPAT_VARYING vec4 COL0;
3231
COMPAT_VARYING vec4 TEX0;
3332

34-
vec4 _oPosition1;
3533
uniform mat4 MVPMatrix;
3634
uniform COMPAT_PRECISION int FrameDirection;
3735
uniform COMPAT_PRECISION int FrameCount;
@@ -40,14 +38,7 @@ uniform COMPAT_PRECISION vec2 TextureSize;
4038
uniform COMPAT_PRECISION vec2 InputSize;
4139

4240
#ifdef PARAMETER_UNIFORM
43-
uniform COMPAT_PRECISION float eye_sep;
44-
uniform COMPAT_PRECISION float y_loc;
45-
uniform COMPAT_PRECISION float ana_zoom;
46-
uniform COMPAT_PRECISION float WIDTH;
47-
uniform COMPAT_PRECISION float BOTH;
48-
uniform COMPAT_PRECISION float HEIGHT;
49-
uniform COMPAT_PRECISION float warpX;
50-
uniform COMPAT_PRECISION float warpY;
41+
uniform COMPAT_PRECISION float eye_sep, y_loc, ana_zoom, WIDTH, BOTH, HEIGHT, warpX, warpY, pulfrich;
5142
#else
5243
#define eye_sep 0.35
5344
#define y_loc 0.30
@@ -57,17 +48,12 @@ uniform COMPAT_PRECISION float warpY;
5748
#define HEIGHT 2.0
5849
#define warpX 0.3
5950
#define warpY 0.3
51+
#define pulfrich 0.0
6052
#endif
6153

6254
void main()
6355
{
64-
vec4 _oColor;
65-
vec2 _otexCoord;
6656
gl_Position = VertexCoord.x * MVPMatrix[0] + VertexCoord.y * MVPMatrix[1] + VertexCoord.z * MVPMatrix[2] + VertexCoord.w * MVPMatrix[3];
67-
_oPosition1 = gl_Position;
68-
_oColor = COLOR;
69-
_otexCoord = TexCoord.xy;
70-
COL0 = COLOR;
7157
vec2 shift = 0.5 * InputSize / TextureSize;
7258
TEX0.xy = ((TexCoord.xy - shift) * ana_zoom + shift) * vec2(WIDTH, HEIGHT) - vec2(BOTH, 0.0);
7359
}
@@ -95,10 +81,6 @@ precision mediump float;
9581
#define COMPAT_PRECISION
9682
#endif
9783

98-
struct output_dummy {
99-
vec4 _color;
100-
};
101-
10284
uniform COMPAT_PRECISION int FrameDirection;
10385
uniform COMPAT_PRECISION int FrameCount;
10486
uniform COMPAT_PRECISION vec2 OutputSize;
@@ -109,14 +91,17 @@ COMPAT_VARYING vec4 TEX0;
10991

11092

11193
#ifdef PARAMETER_UNIFORM
112-
uniform COMPAT_PRECISION float eye_sep;
113-
uniform COMPAT_PRECISION float y_loc;
114-
uniform COMPAT_PRECISION float ana_zoom;
115-
uniform COMPAT_PRECISION float WIDTH;
116-
uniform COMPAT_PRECISION float BOTH;
117-
uniform COMPAT_PRECISION float HEIGHT;
118-
uniform COMPAT_PRECISION float warpX;
119-
uniform COMPAT_PRECISION float warpY;
94+
uniform COMPAT_PRECISION float eye_sep, y_loc, ana_zoom, WIDTH, BOTH, HEIGHT, warpX, warpY, pulfrich;
95+
#else
96+
#define eye_sep 0.30
97+
#define y_loc 0.25
98+
#define ana_zoom 0.75
99+
#define WIDTH 3.05
100+
#define BOTH 0.51
101+
#define HEIGHT 2.0
102+
#define warpX 0.1
103+
#define warpY 0.1
104+
#define pulfrich 0.0
120105
#endif
121106

122107
//distortion
@@ -127,21 +112,18 @@ vec2 Warp(vec2 pos){
127112

128113
void main()
129114
{
130-
output_dummy _OUT;
131115
vec2 warpCoord1 = Warp((TEX0.xy - vec2(eye_sep, y_loc))*(TextureSize.xy/InputSize.xy))*(InputSize.xy/TextureSize.xy);
132116
vec2 warpCoord2 = Warp((TEX0.xy + vec2(eye_sep, -y_loc))*(TextureSize.xy/InputSize.xy))*(InputSize.xy/TextureSize.xy);
133-
vec2 fragCoord1 = warpCoord1 * InputSize / TextureSize;
134-
vec2 fragCoord2 = warpCoord2 * InputSize / TextureSize;
135-
vec4 frame1 = vec4(0.0);
136-
if ( fragCoord1.x < 1.0 && fragCoord1.x > 0.0 && fragCoord1.y < 1.0 && fragCoord1.y > 0.0 )
137-
frame1 = COMPAT_TEXTURE(Texture, warpCoord1);
138-
vec4 frame2 = vec4(0.0);
139-
if ( fragCoord2.x < 1.0 && fragCoord2.x > 0.0 && fragCoord2.y < 1.0 && fragCoord2.y > 0.0 )
140-
frame2 = COMPAT_TEXTURE(Texture, warpCoord2);
141-
142-
vec4 final = vec4(frame1 + frame2);
143-
_OUT._color = final;
144-
FragColor = _OUT._color;
145-
return;
117+
vec2 fragCoord1 = warpCoord1 * InputSize / TextureSize;
118+
vec2 fragCoord2 = warpCoord2 * InputSize / TextureSize;
119+
vec4 frame1 = vec4(0.0);
120+
if ( fragCoord1.x < 1.0 && fragCoord1.x > 0.0 && fragCoord1.y < 1.0 && fragCoord1.y > 0.0 )
121+
frame1 = COMPAT_TEXTURE(Texture, warpCoord1);
122+
vec4 frame2 = vec4(0.0);
123+
if ( fragCoord2.x < 1.0 && fragCoord2.x > 0.0 && fragCoord2.y < 1.0 && fragCoord2.y > 0.0 )
124+
frame2 = COMPAT_TEXTURE(Texture, warpCoord2) * (1.0 - pulfrich);
125+
126+
vec4 final = vec4(frame1 + frame2);
127+
FragColor = final;
146128
}
147129
#endif
File renamed without changes.

0 commit comments

Comments
 (0)