1
+ #pragma parameter anaglyph_mode "Anaglyph Color Mode" 1.0 1.0 6.0 1.0
1
2
#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
3
5
#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
7
8
#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
10
11
11
12
#if defined(VERTEX)
12
13
@@ -31,8 +32,8 @@ COMPAT_ATTRIBUTE vec4 COLOR;
31
32
COMPAT_ATTRIBUTE vec4 TexCoord;
32
33
COMPAT_VARYING vec4 COL0;
33
34
COMPAT_VARYING vec4 TEX0;
35
+ COMPAT_VARYING float v_mode;
34
36
35
- vec4 _oPosition1;
36
37
uniform mat4 MVPMatrix;
37
38
uniform COMPAT_PRECISION int FrameDirection;
38
39
uniform COMPAT_PRECISION int FrameCount;
@@ -41,15 +42,7 @@ uniform COMPAT_PRECISION vec2 TextureSize;
41
42
uniform COMPAT_PRECISION vec2 InputSize;
42
43
43
44
#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;
53
46
#else
54
47
#define eye_sep 0.35
55
48
#define y_loc 0.30
@@ -60,19 +53,15 @@ uniform COMPAT_PRECISION float warpY;
60
53
#define palette 0.0
61
54
#define warpX 0.3
62
55
#define warpY 0.3
56
+ #define anaglyph_mode 1.0
63
57
#endif
64
58
65
59
void main()
66
60
{
67
- vec4 _oColor;
68
- vec2 _otexCoord;
69
61
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;
74
62
vec2 shift = 0.5 * InputSize / TextureSize;
75
63
TEX0.xy = ((TexCoord.xy - shift) * ana_zoom + shift) * vec2 (WIDTH, HEIGHT) - vec2 (BOTH, 0.0 );
64
+ v_mode = anaglyph_mode;
76
65
}
77
66
78
67
#elif defined(FRAGMENT)
@@ -98,28 +87,27 @@ precision mediump float;
98
87
#define COMPAT_PRECISION
99
88
#endif
100
89
101
- struct output_dummy {
102
- vec4 _color;
103
- };
104
-
105
90
uniform COMPAT_PRECISION int FrameDirection;
106
91
uniform COMPAT_PRECISION int FrameCount;
107
92
uniform COMPAT_PRECISION vec2 OutputSize;
108
93
uniform COMPAT_PRECISION vec2 TextureSize;
109
94
uniform COMPAT_PRECISION vec2 InputSize;
110
95
uniform sampler2D Texture;
111
96
COMPAT_VARYING vec4 TEX0;
97
+ COMPAT_VARYING float v_mode;
112
98
113
99
#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
123
111
#endif
124
112
125
113
// distortion
@@ -130,26 +118,24 @@ vec2 Warp(vec2 pos){
130
118
131
119
void main()
132
120
{
133
- output_dummy _OUT;
134
121
vec2 warpCoord1 = Warp((TEX0.xy - vec2 (eye_sep, y_loc))* (TextureSize.xy/ InputSize.xy))* (InputSize.xy/ TextureSize.xy);
135
122
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;
154
140
}
155
141
#endif
0 commit comments