TAA working

Chaining effects works now

by ruben3d

HTML

<script src="https://cdnjs.cloudflare.com/ajax/libs/three.js/r79/three.js"></script>
<script src="https://s3-eu-west-1.amazonaws.com/rayfoundry-tmp/magnificient-watch.min.js"></script>
<body>    	
        <div class="world" id="world"></div>			    
</body>

JavaScript

THREE.TAARenderPass = function( scene, camera ) {

	THREE.Pass.call( this );

	this.scene = scene;
	this.camera = camera;

	if ( THREE.CopyShader === undefined ) console.error( "THREE.TAARenderPass relies on THREE.CopyShader" );

	var copyShader = THREE.CopyShader;
	this.copyUniforms = THREE.UniformsUtils.clone( copyShader.uniforms );

	this.copyMaterial = new THREE.ShaderMaterial( {
		uniforms: this.copyUniforms,
		vertexShader: copyShader.vertexShader,
		fragmentShader: copyShader.fragmentShader,
		premultipliedAlpha: true,
		transparent: true,
		blending: THREE.AdditiveBlending,
		depthTest: false,
		depthWrite: false
	} );

	this.camera2 = new THREE.OrthographicCamera( - 1, 1, 1, - 1, 0, 1 );
	this.scene2	= new THREE.Scene();
	this.quad2 = new THREE.Mesh( new THREE.PlaneBufferGeometry( 2, 2 ), this.copyMaterial );
	this.scene2.add( this.quad2 );

	this.sampleLevel = 0;
	this.maxSampleLevel = 5;
	this.accumulate = false;
	this.accumulateIndex = 0;

	this.onRenderedCallback = null;

};


THREE.TAARenderPass.prototype = Object.assign( Object.create( THREE.Pass.prototype ), {

	constructor: THREE.TAARenderPass,

	render: function( renderer, writeBuffer, readBuffer, delta ) {

		var jitterOffsets = THREE.TAARenderPass.JitterVectors[ this.maxSampleLevel ];
		var totalSamples = jitterOffsets.length;
		var numSamplesPerFrame = Math.pow( 2, this.sampleLevel );

		// if no accumulation, clamp totalSamples
		if ( ! this.accumulate ) {

			jitterOffsets = THREE.TAARenderPass.JitterVectors[ this.sampleLevel ];
			totalSamples = jitterOffsets.length;

			this.accumulateIndex = 0;

		}

		if ( ! this.sampleRenderTarget ) {

			this.sampleRenderTarget = new THREE.WebGLRenderTarget( readBuffer.width, readBuffer.height );

		}

		if ( ! this.holdRenderTarget ) {

			this.holdRenderTarget = new THREE.WebGLRenderTarget( readBuffer.width, readBuffer.height );

		}

		var autoClear = renderer.autoClear;
		renderer.autoClear = false;

		var jitterFactor = 1 / 16 /...