function init( parameters ) {

		_this.renderer = parameters.renderer !== undefined ? parameters.renderer : new THREE.WebGLRenderer( { antialias: false } );
		_this.domElement = _this.renderer.domElement;

		_gl = _this.renderer.context;

		_width = parameters.width !== undefined ? parameters.width : _this.renderer.getSize().width;
		_height = parameters.height !== undefined ? parameters.height : _this.renderer.getSize().height;

		var antialias = parameters.antialias !== undefined ? parameters.antialias : false;

		if ( parameters.cacheKeepAlive !== undefined ) _cacheKeepAlive = parameters.cacheKeepAlive;

		initDepthTexture();

		initPassNormalDepth();
		initPassColor();
		initPassLight();
		initPassReconstruction();
		initPassFinal();

		_this.setSize( _width, _height );
		_this.setAntialias( antialias );
		_this.enableLightPrePass( false );

	}
@author alteredq / http://alteredqualia.com/
@author MPanknin / http://www.redplant.de/
@author takahiro / https://github.com/takahirox

WebGLDeferredRenderer supports two types of Deferred Renderings.
One is Classic Deferred Rendering and the other one is
Light Pre-Pass (Deferred Lighting).
Classic Deferred Rendering is default. You can use Light Pre-Pass
by calling .enableLightPrePass( true ) method.

Dependencies
 - THREE.CopyShader
 - THREE.RenderPass
 - THREE.ShaderPass
 - THREE.EffectComposer
 - THREE.FXAAShader

TODO
 - reuse existing glsl
 - shadow
 - optimization
 - MRT (when it's available on Three.js)
 - AmbientLight
 - HemisphereLight
 - PointLight (distance < 0)
 - morphNormals
 - BumpMap
 - ToneMap
 - envMap
 - wrapAround
 - addEffect