aboutsummaryrefslogtreecommitdiff
path: root/client
diff options
context:
space:
mode:
Diffstat (limited to 'client')
-rw-r--r--client/shaders/3d_interlaced_merge/opengl_fragment.glsl21
-rw-r--r--client/shaders/3d_interlaced_merge/opengl_vertex.glsl6
2 files changed, 27 insertions, 0 deletions
diff --git a/client/shaders/3d_interlaced_merge/opengl_fragment.glsl b/client/shaders/3d_interlaced_merge/opengl_fragment.glsl
new file mode 100644
index 000000000..25945ad7f
--- /dev/null
+++ b/client/shaders/3d_interlaced_merge/opengl_fragment.glsl
@@ -0,0 +1,21 @@
+uniform sampler2D baseTexture;
+uniform sampler2D normalTexture;
+uniform sampler2D textureFlags;
+
+#define leftImage baseTexture
+#define rightImage normalTexture
+#define maskImage textureFlags
+
+void main(void)
+{
+ vec2 uv = gl_TexCoord[0].st;
+ vec4 left = texture2D(leftImage, uv).rgba;
+ vec4 right = texture2D(rightImage, uv).rgba;
+ vec4 mask = texture2D(maskImage, uv).rgba;
+ vec4 color;
+ if (mask.r > 0.5)
+ color = right;
+ else
+ color = left;
+ gl_FragColor = color;
+}
diff --git a/client/shaders/3d_interlaced_merge/opengl_vertex.glsl b/client/shaders/3d_interlaced_merge/opengl_vertex.glsl
new file mode 100644
index 000000000..4e0b2b125
--- /dev/null
+++ b/client/shaders/3d_interlaced_merge/opengl_vertex.glsl
@@ -0,0 +1,6 @@
+void main(void)
+{
+ gl_TexCoord[0] = gl_MultiTexCoord0;
+ gl_Position = gl_Vertex;
+ gl_FrontColor = gl_BackColor = gl_Color;
+}