Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function update () {
- // Draw Shadows
- if (shadows) {
- gl.disable(gl.DEPTH_TEST);
- bindShadowFBO()
- shadowShaderON();
- drawWorld(); // from light point of view
- shadowShaderOFF();
- unbindShadowFBO()
- }
- // Bind Post Processor FBO IN
- if (postProcessing) { PostProcessor.fbo.in.bind() }
- // Clear Scene
- gl.enable(gl.DEPTH_TEST);
- gl.clear(gl.COLOR_BUFFER_BIT || gl.DEPTH_BUFFER_BIT);
- // Draw Scene
- phongShaderON();
- drawWorld();
- phongShaderOFF();
- if (postProcessing) {
- // Turn Off Post Processor FBO IN
- gl.bindFramebuffer(gl.FRAMEBUFFER, null);
- // Blit FBO IN and OUT
- gl.bindFramebuffer(gl.READ_FRAMEBUFFER, fbo.in);
- gl.bindFramebuffer(gl.DRAW_FRAMEBUFFER, fbo.out);
- gl.blitFramebuffer(
- 0, 0, width, height,
- 0, 0, width, height,
- gl.COLOR_BUFFER_BIT | gl.DEPTH_BUFFER_BIT,
- gl.NEAREST
- );
- // Unbind READ and Draw Frame Buffers
- gl.bindFramebuffer(gl.READ_FRAMEBUFFER, null);
- gl.bindFramebuffer(gl.DRAW_FRAMEBUFFER, null);
- // Ready to draw on QUAD
- gl.disable(gl.DEPTH_TEST);
- // Process Effects
- postprocessorShaderON();
- renderQuad.bind();
- gl.activeTexture(gl.TEXTURE0);
- gl.uniform1i(location, 0);
- PostProcessor.texture.bind();
- this.quad.draw();
- PostProcessor.texture.unbind();
- postprocessorShaderOFF();
- renderQuad.unbind();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement