import { loadText, make1DTexture, makePassFBO, makePass } from "./utils.js"; // Matrix Resurrections isn't in theaters yet, // and this version of the effect is still a WIP. // Criteria: // Upward-flowing glyphs should be golden // Downward-flowing glyphs should be tinted slightly blue on top and golden on the bottom // Cheat a lens blur, interpolating between the texture and bloom at the edges export default (regl, config, inputs) => { const output = makePassFBO(regl, config.useHalfFloat); const { backgroundColor } = config; const resurrectionPassFrag = loadText("shaders/resurrectionPass.frag"); const render = regl({ frag: regl.prop("frag"), uniforms: { backgroundColor, tex: inputs.primary, bloomTex: inputs.bloom, ditherMagnitude: 0.05, }, framebuffer: output, }); return makePass( { primary: output, }, () => render({ frag: resurrectionPassFrag.text() }), null, resurrectionPassFrag.loaded ); };