playcanvas
Version:
Open-source WebGL/WebGPU 3D engine for the web
3 lines (2 loc) • 1.93 kB
TypeScript
declare const _default: "\nuniform sampler2D sourceTexture;\nuniform vec2 sourceInvResolution;\nvarying vec2 uv0;\n\n#ifdef PREMULTIPLY\n uniform sampler2D premultiplyTexture;\n#endif\n\nvoid main()\n{\n vec3 e = texture2D (sourceTexture, uv0).rgb;\n\n #ifdef BOXFILTER\n vec3 value = e;\n\n #ifdef PREMULTIPLY\n float premultiply = texture2D(premultiplyTexture, uv0).{PREMULTIPLY_SRC_CHANNEL};\n value *= vec3(premultiply);\n #endif\n #else\n\n float x = sourceInvResolution.x;\n float y = sourceInvResolution.y;\n\n vec3 a = texture2D(sourceTexture, vec2 (uv0.x - 2.0 * x, uv0.y + 2.0 * y)).rgb;\n vec3 b = texture2D(sourceTexture, vec2 (uv0.x, uv0.y + 2.0 * y)).rgb;\n vec3 c = texture2D(sourceTexture, vec2 (uv0.x + 2.0 * x, uv0.y + 2.0 * y)).rgb;\n\n vec3 d = texture2D(sourceTexture, vec2 (uv0.x - 2.0 * x, uv0.y)).rgb;\n vec3 f = texture2D(sourceTexture, vec2 (uv0.x + 2.0 * x, uv0.y)).rgb;\n\n vec3 g = texture2D(sourceTexture, vec2 (uv0.x - 2.0 * x, uv0.y - 2.0 * y)).rgb;\n vec3 h = texture2D(sourceTexture, vec2 (uv0.x, uv0.y - 2.0 * y)).rgb;\n vec3 i = texture2D(sourceTexture, vec2 (uv0.x + 2.0 * x, uv0.y - 2.0 * y)).rgb;\n\n vec3 j = texture2D(sourceTexture, vec2 (uv0.x - x, uv0.y + y)).rgb;\n vec3 k = texture2D(sourceTexture, vec2 (uv0.x + x, uv0.y + y)).rgb;\n vec3 l = texture2D(sourceTexture, vec2 (uv0.x - x, uv0.y - y)).rgb;\n vec3 m = texture2D(sourceTexture, vec2 (uv0.x + x, uv0.y - y)).rgb;\n\n\n vec3 value = e * 0.125;\n value += (a + c + g + i) * 0.03125;\n value += (b + d + f + h) * 0.0625;\n value += (j + k + l + m) * 0.125;\n #endif\n\n #ifdef REMOVE_INVALID\n value = max(value, vec3(0.0));\n #endif\n\n gl_FragColor = vec4(value, 1.0);\n}\n";
export default _default;