title: What is CopyShader for Three.js?
body: <p>I see a lot of projects using <code>CopyShader</code> at the end of a post-processing chain. I cannot find any documentation of it on Three.js. What does it do exactly? Additionally, why is <code>setRenderTarget</code> necessary here? If removed, the effects are not applied. But if it is included, then it will 'freeze' an <code>a-scene</code> in place, stopping all animations. I am able to use <code>tick</code> and <code>setInterval</code> to resume the animation, but the performance takes a huge hit.</p>
  
  <p>For example:</p>
  
  <pre><code>var composer = new THREE.EffectComposer( renderer );
  
  renderer.setRenderTarget( composer.readBuffer );
  
  var renderPass = new THREE.RenderPass( scene, camera );
  
  var copyPass = new THREE.ShaderPass( CopyShader );
  composer.addPass( renderPass );
  
  var vignettePass = new ShaderPass( VignetteShader );
  vignettePass.uniforms[ "darkness" ].value = 1.0;
  
  composer.addPass( vignettePass );
  composer.addPass( copyPass );
  composer.render();
  
  this.composer = composer; // To run as composer.render()
  </code></pre>