diff options
Diffstat (limited to 'shaders/tesseract/205.shader_test')
-rw-r--r-- | shaders/tesseract/205.shader_test | 77 |
1 files changed, 77 insertions, 0 deletions
diff --git a/shaders/tesseract/205.shader_test b/shaders/tesseract/205.shader_test new file mode 100644 index 0000000..cbcd7f6 --- /dev/null +++ b/shaders/tesseract/205.shader_test @@ -0,0 +1,77 @@ +[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 vec2 vtexcoord0; + uniform float offsets[8]; + varying vec2 texcoord0, texcoord1, texcoord2; + + varying vec2 texcoord3, texcoord4; + + varying vec2 texcoord5, texcoord6; + + void main(void) + { + gl_Position = vvertex; + texcoord0 = vtexcoord0; + vec2 tc1 = vtexcoord0.xy, tc2 = vtexcoord0; + tc1.y += offsets[1]; + tc2.y -= offsets[1]; + texcoord1 = tc1; + texcoord2 = tc2; + + tc1.y = vtexcoord0.y + offsets[2]; + tc2.y = vtexcoord0.y - offsets[2]; + texcoord3 = tc1; + texcoord4 = tc2; + + tc1.y = vtexcoord0.y + offsets[3]; + tc2.y = vtexcoord0.y - offsets[3]; + texcoord5 = tc1; + texcoord6 = tc2; + + } + +[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 fragcolor gl_FragData[0] +uniform float weights[8]; + uniform float offsets[8]; + uniform sampler2DRect tex0; + varying vec2 texcoord0, texcoord1, texcoord2; + + varying vec2 texcoord3, texcoord4; + + varying vec2 texcoord5, texcoord6; + + fragdata(0, fragcolor, vec4) + void main(void) + { + #define texval(coords) texture2DRect(tex0, (coords)) + vec4 val = texval(texcoord0) * weights[0]; + + val += weights[1] * (texval(texcoord1) + texval(texcoord2)); + + val += weights[2] * (texval(texcoord3) + texval(texcoord4)); + + val += weights[3] * (texval(texcoord5) + texval(texcoord6)); + + val += weights[4] * + + (texval(vec2(texcoord0.x, texcoord0.y + offsets[4])) + texval(vec2(texcoord0.x, texcoord0.y - offsets[4]))); + + + fragcolor = val; + } + |