A post processing library that provides the means to implement image filter effects for three.js.

License: Zlib

Language: JavaScript

Keywords: 2d-filter-effects, composer, effects, image-effects, image-processing, post-processing, real-time, three-js, webgl

Post Processing

Build status npm version Peer dependencies CDN

A post processing library that provides the means to implement image filter effects for three.js.

Extensive Demo · Sandbox · API Reference · Wiki


This library requires the peer dependency three.

npm install three postprocessing


Please refer to the usage example of three.js for information about how to setup the renderer, scene and camera.

import { Clock, PerspectiveCamera, Scene, WebGLRenderer } from "three";
import { BloomEffect, EffectComposer, EffectPass, RenderPass } from "postprocessing";

const composer = new EffectComposer(new WebGLRenderer());
const camera = new PerspectiveCamera();
const scene = new Scene();

const effectPass = new EffectPass(camera, new BloomEffect());
effectPass.renderToScreen = true;

composer.addPass(new RenderPass(scene, camera));

const clock = new Clock();

(function render() {




This library provides an EffectPass which automatically organizes and merges any given combination of effects. This minimizes the amount of render operations and makes it possible to combine many effects without the performance penalties of traditional pass chaining. Additionally, every effect can choose its own blend function.

Furthermore, all fullscreen render operations use a single triangle that fills the screen. Compared to using a quad, this approach harmonizes with modern GPU rasterization patterns and eliminates unnecessary fragment calculations along the screen diagonal which is especially beneficial for GPGPU passes and effects that use complex fragment shaders.

Performance Test

Included Effects

Custom Effects

If you want to learn how to create custom effects or passes, please check the Wiki.


Please refer to the contribution guidelines for details.


This library is licensed under the Zlib license.

The original code that this library is based on, was written by mrdoob and the three.js contributors and is licensed under the MIT license.

The noise and scanline effects incorporate code written by Georg Steinrohder and Pat Shearon which was released under the Creative Commons Attribution 3.0 License.

Project Statistics

Sourcerank 10
Repository Size 51.5 MB
Stars 480
Forks 55
Watchers 21
Open issues 4
Dependencies 23
Contributors 1
Tags 74
Last updated
Last pushed

Top Contributors See all

Raoul v. R.

Packages Referencing this Repo

A post processing library that provides the means to implement image filter effects for three.js.
Latest release 6.8.9 - Updated - 480 stars

Recent Tags See all

v6.8.8 November 01, 2019
v6.8.7 October 30, 2019
v6.8.6 October 30, 2019
v6.8.5 October 17, 2019
v6.8.4 October 15, 2019
v6.8.3 October 06, 2019
v6.8.2 October 04, 2019
v6.8.1 October 02, 2019
v6.8.0 September 30, 2019
v6.7.0 September 09, 2019
v6.6.1 September 02, 2019
v6.6.0 August 09, 2019
v6.5.1 June 26, 2019
v6.5.0 June 01, 2019
v6.4.0 May 19, 2019

Something wrong with this page? Make a suggestion

Last synced: 2019-11-18 18:38:33 UTC

Login to resync this repository