shaders/applyDeferredDepth.tstypescript
import { ShaderProgram } from "../webgl/ShaderProgram";
export function applyDeferredDepth() {
return new ShaderProgram("applyDeferredDepth", {
uniforms: {
depthTexture: "sampler2D"
},
attributes: {
corners: "vec2"
},
vertexShader: `#version 300 es
in vec2 corners;
void main() {
gl_Position = vec4(corners, 0.0, 1.0);
}`,
fragmentShader: `#version 300 es
precision highp float;
uniform sampler2D depthTexture;
layout(location = 0) out vec4 fragColor;
void main() {
ivec2 fragCoord = ivec2(gl_FragCoord.xy);
float d = texelFetch(depthTexture, fragCoord, 0).r;
// if (d >= 1.0) discard;
gl_FragDepth = d;
fragColor = vec4(0.0);
}`
});
}