diff --git a/engine/gl/r_bishaders.h b/engine/gl/r_bishaders.h new file mode 100644 index 000000000..32d9c2fba --- /dev/null +++ b/engine/gl/r_bishaders.h @@ -0,0 +1,88 @@ +/* +WARNING: THIS FILE IS GENERATED BY 'generatebuiltinsl.c'. +YOU SHOULD NOT EDIT THIS FILE BY HAND +*/ + +#ifdef GLQUAKE +{QR_OPENGL, 110, "bloom_blur", +//apply gaussian filter + +"varying vec2 tc;\n" + +"#ifdef VERTEX_SHADER\n" +"attribute vec2 v_texcoord;\n" +"void main ()\n" +"{\n" +"tc = v_texcoord;\n" +"gl_Position = ftetransform();\n" +"}\n" +"#endif\n" +"#ifdef FRAGMENT_SHADER\n" +/*offset should be 1.2 pixels away from the center*/ +"uniform vec3 e_glowmod;\n" +"uniform sampler2D s_t0;\n" +"void main ()\n" +"{\n" +"gl_FragColor =\n" +"0.3125 * texture2D(s_t0, tc - e_glowmod.st) +\n" +"0.375 * texture2D(s_t0, tc) +\n" +"0.3125 * texture2D(s_t0, tc + e_glowmod.st);\n" +"}\n" +"#endif\n" +}, +#endif +#ifdef GLQUAKE +{QR_OPENGL, 110, "bloom_filter", +//the bloom filter +//filter out any texels which are not to bloom + +"varying vec2 tc;\n" + +"#ifdef VERTEX_SHADER\n" +"attribute vec2 v_texcoord;\n" +"void main ()\n" +"{\n" +"tc = v_texcoord;\n" +"gl_Position = ftetransform();\n" +"}\n" +"#endif\n" +"#ifdef FRAGMENT_SHADER\n" +"uniform sampler2D s_t0;\n" +"void main ()\n" +"{\n" +"gl_FragColor = (texture2D(s_t0, tc) - vec4(0.5, 0.5, 0.5, 0.0)) * vec4(2.0,2.0,2.0,1.0);\n" +"}\n" +"#endif\n" +}, +#endif +#ifdef GLQUAKE +{QR_OPENGL, 110, "bloom_final", +//add them together +//optionally apply tonemapping + +"varying vec2 tc;\n" + +"#ifdef VERTEX_SHADER\n" +"attribute vec2 v_texcoord;\n" +"void main ()\n" +"{\n" +"tc = v_texcoord;\n" +"gl_Position = ftetransform();\n" +"}\n" +"#endif\n" +"#ifdef FRAGMENT_SHADER\n" +"uniform sampler2D s_t0;\n" +"uniform sampler2D s_t1;\n" +"uniform sampler2D s_t2;\n" +"uniform sampler2D s_t3;\n" +"void main ()\n" +"{\n" +"gl_FragColor = \n" +"texture2D(s_t0, tc) +\n" +"texture2D(s_t1, tc) +\n" +"texture2D(s_t2, tc) +\n" +"texture2D(s_t3, tc) ;\n" +"}\n" +"#endif\n" +}, +#endif