52 lines
No EOL
1.5 KiB
Text
52 lines
No EOL
1.5 KiB
Text
include "pipelines/common.glsl"
|
|
|
|
vertex_shader [[
|
|
layout(std140, binding = 4) uniform Drawcall {
|
|
uniform vec4 u_inv_sm_size;
|
|
};
|
|
layout (location = 0) out vec2 v_tc0;
|
|
layout (location = 1) out vec4 v_tc1;
|
|
layout (location = 2) out vec4 v_tc2;
|
|
void main() {
|
|
vec2 uv;
|
|
gl_Position = fullscreenQuad(gl_VertexID, uv);
|
|
v_tc0 = uv;
|
|
#ifdef BLUR_H
|
|
v_tc1 = vec4(
|
|
uv.x + 1.3846153846 * u_inv_sm_size.x, uv.y,
|
|
uv.x + 3.2307692308 * u_inv_sm_size.x, uv.y
|
|
);
|
|
v_tc2 = vec4(
|
|
uv.x - 1.3846153846 * u_inv_sm_size.x, uv.y,
|
|
uv.x - 3.2307692308 * u_inv_sm_size.x, uv.y
|
|
);
|
|
#else
|
|
v_tc1 = vec4(
|
|
uv.x, uv.y + 1.3846153846 * u_inv_sm_size.y,
|
|
uv.x, uv.y + 3.2307692308 * u_inv_sm_size.y
|
|
);
|
|
v_tc2 = vec4(
|
|
uv.x, uv.y - 1.3846153846 * u_inv_sm_size.y,
|
|
uv.x, uv.y - 3.2307692308 * u_inv_sm_size.y
|
|
);
|
|
#endif
|
|
}
|
|
]]
|
|
|
|
|
|
fragment_shader [[
|
|
layout (binding=0) uniform sampler2D u_input;
|
|
layout (binding=1) uniform sampler2D u_input2;
|
|
layout (location = 0) in vec2 v_tc0;
|
|
layout (location = 1) in vec4 v_tc1;
|
|
layout (location = 2) in vec4 v_tc2;
|
|
layout (location = 0) out vec4 o_color;
|
|
|
|
void main() {
|
|
o_color = (texture(u_input, v_tc0.xy) + texture(u_input2, v_tc0.xy)) * 0.2270270270
|
|
+ (texture(u_input, v_tc1.xy) + texture(u_input2, v_tc1.xy)) * 0.3162162162
|
|
+ (texture(u_input, v_tc1.zw) + texture(u_input2, v_tc1.zw)) * 0.0702702703
|
|
+ (texture(u_input, v_tc2.xy) + texture(u_input2, v_tc2.xy)) * 0.3162162162
|
|
+ (texture(u_input, v_tc2.zw) + texture(u_input2, v_tc2.zw)) * 0.0702702703;
|
|
}
|
|
]] |