shaders/deferredShading/deferredShading.tstypescript
import { ShaderProgram } from "../../webgl/ShaderProgram";
import { cascadeShadowUniforms, shadowMapUniforms } from "../common/uniforms";
import deferred_vert from "./deferredShading.vert.glsl";
import deferred_frag from "./deferredShading.frag.glsl";
export function deferredShading(): ShaderProgram {
return new ShaderProgram("deferredShading", {
uniforms: {
normalMatrix: "mat3",
baseTexture: "sampler2d",
materialsTexture: "sampler2d",
normalTexture: "sampler2d",
viewPositionTexture: "sampler2d",
lightPosition: "vec3",
lightAmbient: "vec3",
lightDiffuse: "vec3",
lightSpecular: "vec4",
frameOpacity: "float",
...shadowMapUniforms,
...cascadeShadowUniforms
},
attributes: {
corners: "vec3"
},
vertexShader: deferred_vert,
fragmentShader: deferred_frag
});
}