node package manager
It’s your turn. Help us improve JavaScript. Take the 2017 JavaScript Ecosystem Survey »


pp-now experimental

Quick setup for single-pass GLSL post-processing with gl-now.



require('pp-now')(shell, fragment[, vertex])

Takes the game-shell returned by gl-now, in addition to a fragment shader which takes the following required variables:

  • uniform sampler2D frame; - the screen as a 2D texture.
  • uniform sampler2D depth; - the screen's depth buffer as a 2D texture.
  • uniform vec2 frameSize; - the width/height of the screen in pixels.
  • varying vec2 uv; - the coordinates on the screen from 0 to 1. Alternatively, you can use gl_FragCoord.xy for precise pixel coordinates.

shell.on('pp-render', frame(t))

Instead of listening to gl-render, listen to pp-render to draw to the post-processing framebuffer.

shell.on('pp-uniforms', frame(shader))

Passes the gl-shader being used for post-processing so that you can update your own additional uniforms manually.

Note that if you're already using framebuffers in your demo it might break - in which case, you probably won't have much trouble adding post-processing yourself :)


MIT. See for details.