shaders/projectorsPass/projectorsPass.tstypescript
import { ShaderProgram } from "../../webgl/ShaderProgram";
import { projectorUniforms } from "../common/uniforms";

import vert from "./projectorsPass.vert.glsl";
import frag from "./projectorsPass.frag.glsl";

export function projectorsPass(): ShaderProgram {
    return new ShaderProgram("projectorsPass", {
        uniforms: {
            u_normalMatrix: "mat3",
            u_baseTexture: "sampler2d",
            u_materialsTexture: "sampler2d",
            u_normalTexture: "sampler2d",
            u_viewPositionTexture: "sampler2d",
            frameOpacity: "float",
            ...projectorUniforms
        },
        attributes: {
            a_corners: "vec3"
        },
        vertexShader: vert,
        fragmentShader: frag
    });
}