UNPKG

@tolokoban/tgd

Version:

ToloGameDev library for WebGL2

31 lines 2.21 kB
import { TgdMaterial } from "./material.js"; /** * Reveal a background texture. * * You can use it in a techbnique to smooth your shading. * 1. Render your scene in a FBO with low resolution and the material you want. * 2. Use this material with the FBO texture to smooth the previous material. */ export class TgdMaterialMask extends TgdMaterial { constructor(options) { super({ uniforms: { uniViewportInverse: "vec2", uniTexture: "sampler2D", }, fragmentShaderCode: [ "highp vec2 uv = gl_FragCoord.xy * uniViewportInverse;", options.flipY ? "return texture(uniTexture, vec2(uv.x, 1.0 - uv.y));" : "return texture(uniTexture, uv);", ], setUniforms: ({ program }) => { const invW = 1 / program.gl.drawingBufferWidth; const invH = 1 / program.gl.drawingBufferHeight; options.texture.activate(0, program, "uniTexture"); program.uniform2f("uniViewportInverse", invW, invH); }, }); } } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFzay5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9tYXRlcmlhbC9tYXNrLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxXQUFXLEVBQTJCLE1BQU0sWUFBWSxDQUFBO0FBT2pFOzs7Ozs7R0FNRztBQUNILE1BQU0sT0FBTyxlQUFnQixTQUFRLFdBQVc7SUFDNUMsWUFBWSxPQUErQjtRQUN2QyxLQUFLLENBQUM7WUFDRixRQUFRLEVBQUU7Z0JBQ04sa0JBQWtCLEVBQUUsTUFBTTtnQkFDMUIsVUFBVSxFQUFFLFdBQVc7YUFDMUI7WUFDRCxrQkFBa0IsRUFBRTtnQkFDaEIsdURBQXVEO2dCQUN2RCxPQUFPLENBQUMsS0FBSztvQkFDVCxDQUFDLENBQUMscURBQXFEO29CQUN2RCxDQUFDLENBQUMsaUNBQWlDO2FBQzFDO1lBQ0QsV0FBVyxFQUFFLENBQUMsRUFBRSxPQUFPLEVBQTJCLEVBQVEsRUFBRTtnQkFDeEQsTUFBTSxJQUFJLEdBQUcsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxFQUFFLENBQUMsa0JBQWtCLENBQUE7Z0JBQzlDLE1BQU0sSUFBSSxHQUFHLENBQUMsR0FBRyxPQUFPLENBQUMsRUFBRSxDQUFDLG1CQUFtQixDQUFBO2dCQUMvQyxPQUFPLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsT0FBTyxFQUFFLFlBQVksQ0FBQyxDQUFBO2dCQUNsRCxPQUFPLENBQUMsU0FBUyxDQUFDLG9CQUFvQixFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQTtZQUN2RCxDQUFDO1NBQ0osQ0FBQyxDQUFBO0lBQ04sQ0FBQztDQUNKIn0=