summaryrefslogtreecommitdiff
path: root/shaders/tesseract/497.shader_test
diff options
context:
space:
mode:
Diffstat (limited to 'shaders/tesseract/497.shader_test')
-rw-r--r--shaders/tesseract/497.shader_test47
1 files changed, 47 insertions, 0 deletions
diff --git a/shaders/tesseract/497.shader_test b/shaders/tesseract/497.shader_test
new file mode 100644
index 0000000..43269af
--- /dev/null
+++ b/shaders/tesseract/497.shader_test
@@ -0,0 +1,47 @@
+[require]
+GLSL >= 1.10
+
+[vertex shader]
+#version 120
+#extension GL_ARB_texture_rectangle : enable
+#define flat
+#define texture2DRectOffset(sampler, coords, offset) texture2DRect(sampler, coords + vec2(offset))
+#define shadow2DRectOffset(sampler, coords, offset) shadow2DRect(sampler, coords + vec2(offset))
+attribute vec4 vvertex;
+ attribute vec3 vtexcoord0;
+ varying vec3 texcoord0;
+ void main(void)
+ {
+ gl_Position = vvertex;
+ texcoord0 = vtexcoord0;
+ }
+
+[fragment shader]
+#version 120
+#extension GL_ARB_texture_rectangle : enable
+#define flat
+#define texture2DRectOffset(sampler, coords, offset) texture2DRect(sampler, coords + vec2(offset))
+#define shadow2DRectOffset(sampler, coords, offset) shadow2DRect(sampler, coords + vec2(offset))
+#define fragdata(loc, name, type)
+#define rhr gl_FragData[0]
+#define rhg gl_FragData[1]
+#define rhb gl_FragData[2]
+#define rha gl_FragData[3]
+uniform sampler3D tex3, tex4, tex5, tex6;
+ uniform vec3 bordercenter, borderrange, borderscale;
+ varying vec3 texcoord0;
+ fragdata(0, rhr, vec4)
+ fragdata(1, rhg, vec4)
+ fragdata(2, rhb, vec4)
+ fragdata(3, rha, vec4)
+
+ void main(void)
+ {
+ float outside = clamp(borderscale.z*(abs(texcoord0.z - bordercenter.z) - borderrange.z), 0.0, 1.0);
+ vec3 tc = vec3(texcoord0.xy, clamp(texcoord0.z, bordercenter.z - borderrange.z, bordercenter.z + borderrange.z));
+ rhr = mix(texture3D(tex3, tc), vec4(0.5, 0.5, 0.5, 0.0), outside);
+ rhg = mix(texture3D(tex4, tc), vec4(0.5, 0.5, 0.5, 0.0), outside);
+ rhb = mix(texture3D(tex5, tc), vec4(0.5, 0.5, 0.5, 0.0), outside);
+ rha = mix(texture3D(tex6, tc), vec4(0.5, 0.5, 0.5, 0.0), outside);
+ }
+