浏览代码

Set Pass.renderToScreen automatically in EffectComposer

The last enabled EffectComposer pass is the only one that can really render to the screen, so we can set the renderToScreen flag in the passes automatically. The only case where EffectComposers don't render to the screen at all in the current examples is webgl_materials_skin, that sets up multiple EffectComposers and then combines their results. For that special case we now have a renderToScreen flag in EffectComposer.

This simplifies setting up EffectComposer and will make further enhancements a bit easier.
Olli Etuaho 6 年之前
父节点
当前提交
911e4b2114
共有 41 个文件被更改,包括 25 次插入72 次删除
  1. 20 1
      examples/js/postprocessing/EffectComposer.js
  2. 0 2
      examples/misc_controls_fly.html
  3. 0 1
      examples/webgl2_multisampled_renderbuffers.html
  4. 1 13
      examples/webgl_lightningstrike.html
  5. 0 1
      examples/webgl_loader_sea3d.html
  6. 0 1
      examples/webgl_loader_sea3d_bvh.html
  7. 0 1
      examples/webgl_loader_sea3d_bvh_retarget.html
  8. 0 1
      examples/webgl_loader_sea3d_hierarchy.html
  9. 0 1
      examples/webgl_loader_sea3d_keyframe.html
  10. 0 1
      examples/webgl_loader_sea3d_morph.html
  11. 0 1
      examples/webgl_loader_sea3d_physics.html
  12. 0 1
      examples/webgl_loader_sea3d_skinning.html
  13. 0 1
      examples/webgl_loader_sea3d_sound.html
  14. 0 2
      examples/webgl_materials_bumpmap_skin.html
  15. 0 2
      examples/webgl_materials_normalmap.html
  16. 4 4
      examples/webgl_materials_skin.html
  17. 0 2
      examples/webgl_materials_video.html
  18. 0 2
      examples/webgl_points_dynamic.html
  19. 0 1
      examples/webgl_postprocessing.html
  20. 0 7
      examples/webgl_postprocessing_advanced.html
  21. 0 1
      examples/webgl_postprocessing_afterimage.html
  22. 0 1
      examples/webgl_postprocessing_backgrounds.html
  23. 0 2
      examples/webgl_postprocessing_dof.html
  24. 0 2
      examples/webgl_postprocessing_fxaa.html
  25. 0 1
      examples/webgl_postprocessing_glitch.html
  26. 0 1
      examples/webgl_postprocessing_masking.html
  27. 0 1
      examples/webgl_postprocessing_nodes_pass.html
  28. 0 1
      examples/webgl_postprocessing_outline.html
  29. 0 1
      examples/webgl_postprocessing_pixel.html
  30. 0 1
      examples/webgl_postprocessing_rgb_halftone.html
  31. 0 1
      examples/webgl_postprocessing_sao.html
  32. 0 1
      examples/webgl_postprocessing_smaa.html
  33. 0 1
      examples/webgl_postprocessing_sobel.html
  34. 0 1
      examples/webgl_postprocessing_ssaa.html
  35. 0 2
      examples/webgl_postprocessing_ssaa_unbiased.html
  36. 0 1
      examples/webgl_postprocessing_ssao.html
  37. 0 1
      examples/webgl_postprocessing_taa.html
  38. 0 1
      examples/webgl_postprocessing_unreal_bloom.html
  39. 0 2
      examples/webgl_shader_lava.html
  40. 0 2
      examples/webgl_shaders_tonemapping.html
  41. 0 1
      examples/webgl_tonemapping.html

+ 20 - 1
examples/js/postprocessing/EffectComposer.js

@@ -28,6 +28,8 @@ THREE.EffectComposer = function ( renderer, renderTarget ) {
 	this.writeBuffer = this.renderTarget1;
 	this.writeBuffer = this.renderTarget1;
 	this.readBuffer = this.renderTarget2;
 	this.readBuffer = this.renderTarget2;
 
 
+	this.renderToScreen = true;
+
 	this.passes = [];
 	this.passes = [];
 
 
 	// dependencies
 	// dependencies
@@ -75,6 +77,22 @@ Object.assign( THREE.EffectComposer.prototype, {
 
 
 	},
 	},
 
 
+	isLastEnabledPass: function ( passIndex ) {
+
+		for ( var i = passIndex + 1; i < this.passes.length; i ++ ) {
+
+			if ( this.passes[i].enabled ) {
+
+				return false;
+
+			}
+
+		}
+
+		return true;
+
+	},
+
 	render: function ( deltaTime ) {
 	render: function ( deltaTime ) {
 
 
 		// deltaTime value is in seconds
 		// deltaTime value is in seconds
@@ -99,6 +117,7 @@ Object.assign( THREE.EffectComposer.prototype, {
 
 
 			if ( pass.enabled === false ) continue;
 			if ( pass.enabled === false ) continue;
 
 
+			pass.renderToScreen = ( this.renderToScreen && this.isLastEnabledPass( i ) );
 			pass.render( this.renderer, this.writeBuffer, this.readBuffer, deltaTime, maskActive );
 			pass.render( this.renderer, this.writeBuffer, this.readBuffer, deltaTime, maskActive );
 
 
 			if ( pass.needsSwap ) {
 			if ( pass.needsSwap ) {
@@ -187,7 +206,7 @@ THREE.Pass = function () {
 	// if set to true, the pass clears its buffer before rendering
 	// if set to true, the pass clears its buffer before rendering
 	this.clear = false;
 	this.clear = false;
 
 
-	// if set to true, the result of the pass is rendered to screen
+	// if set to true, the result of the pass is rendered to screen. This is set automatically by EffectComposer.
 	this.renderToScreen = false;
 	this.renderToScreen = false;
 
 
 };
 };

+ 0 - 2
examples/misc_controls_fly.html

@@ -240,8 +240,6 @@
 				var renderModel = new THREE.RenderPass( scene, camera );
 				var renderModel = new THREE.RenderPass( scene, camera );
 				var effectFilm = new THREE.FilmPass( 0.35, 0.75, 2048, false );
 				var effectFilm = new THREE.FilmPass( 0.35, 0.75, 2048, false );
 
 
-				effectFilm.renderToScreen = true;
-
 				composer = new THREE.EffectComposer( renderer );
 				composer = new THREE.EffectComposer( renderer );
 
 
 				composer.addPass( renderModel );
 				composer.addPass( renderModel );

+ 0 - 1
examples/webgl2_multisampled_renderbuffers.html

@@ -135,7 +135,6 @@
 
 
 				var renderPass = new THREE.RenderPass( scene, camera );
 				var renderPass = new THREE.RenderPass( scene, camera );
 				var copyPass = new THREE.ShaderPass( THREE.CopyShader );
 				var copyPass = new THREE.ShaderPass( THREE.CopyShader );
-				copyPass.renderToScreen = true;
 
 
 				//
 				//
 
 

+ 1 - 13
examples/webgl_lightningstrike.html

@@ -256,7 +256,6 @@
 				outlinePass.edgeThickness = 2.8;
 				outlinePass.edgeThickness = 2.8;
 				outlinePass.visibleEdgeColor = visibleColor;
 				outlinePass.visibleEdgeColor = visibleColor;
 				outlinePass.hiddenEdgeColor.set( 0 );
 				outlinePass.hiddenEdgeColor.set( 0 );
-				outlinePass.renderToScreen = true;
 				composer.addPass( outlinePass );
 				composer.addPass( outlinePass );
 
 
 				scene.userData.outlineEnabled = true;
 				scene.userData.outlineEnabled = true;
@@ -580,18 +579,7 @@
 
 
 					controls.update();
 					controls.update();
 
 
-					if ( scene.userData.outlineEnabled ) {
-
-						outlinePass.enabled = true;
-						rayPass.renderToScreen = false;
-
-					}
-					else {
-
-						outlinePass.enabled = false;
-						rayPass.renderToScreen = true;
-
-					}
+					outlinePass.enabled = scene.userData.outlineEnabled;
 
 
 					composer.render();
 					composer.render();
 
 

+ 0 - 1
examples/webgl_loader_sea3d.html

@@ -146,7 +146,6 @@
 				composer.addPass( vignettePass );
 				composer.addPass( vignettePass );
 
 
 				composer.addPass( copyPass );
 				composer.addPass( copyPass );
-				copyPass.renderToScreen = true;
 
 
 				// events
 				// events
 
 

+ 0 - 1
examples/webgl_loader_sea3d_bvh.html

@@ -262,7 +262,6 @@
 				composer.addPass( vignettePass );
 				composer.addPass( vignettePass );
 
 
 				composer.addPass( copyPass );
 				composer.addPass( copyPass );
-				copyPass.renderToScreen = true;
 
 
 				// events
 				// events
 
 

+ 0 - 1
examples/webgl_loader_sea3d_bvh_retarget.html

@@ -211,7 +211,6 @@
 				composer.addPass( vignettePass );
 				composer.addPass( vignettePass );
 
 
 				composer.addPass( copyPass );
 				composer.addPass( copyPass );
-				copyPass.renderToScreen = true;
 
 
 				// events
 				// events
 
 

+ 0 - 1
examples/webgl_loader_sea3d_hierarchy.html

@@ -154,7 +154,6 @@
 				composer.addPass( vignettePass );
 				composer.addPass( vignettePass );
 
 
 				var copyPass = new THREE.ShaderPass( THREE.CopyShader );
 				var copyPass = new THREE.ShaderPass( THREE.CopyShader );
-				copyPass.renderToScreen = true;
 				composer.addPass( copyPass );
 				composer.addPass( copyPass );
 
 
 				// events
 				// events

+ 0 - 1
examples/webgl_loader_sea3d_keyframe.html

@@ -184,7 +184,6 @@
 				composer.addPass( vignettePass );
 				composer.addPass( vignettePass );
 
 
 				composer.addPass( copyPass );
 				composer.addPass( copyPass );
-				copyPass.renderToScreen = true;
 
 
 				// events
 				// events
 
 

+ 0 - 1
examples/webgl_loader_sea3d_morph.html

@@ -150,7 +150,6 @@
 				composer.addPass( vignettePass );
 				composer.addPass( vignettePass );
 
 
 				composer.addPass( copyPass );
 				composer.addPass( copyPass );
-				copyPass.renderToScreen = true;
 
 
 				// events
 				// events
 
 

+ 0 - 1
examples/webgl_loader_sea3d_physics.html

@@ -177,7 +177,6 @@
 				composer.addPass( vignettePass );
 				composer.addPass( vignettePass );
 
 
 				composer.addPass( copyPass );
 				composer.addPass( copyPass );
-				copyPass.renderToScreen = true;
 
 
 				// events
 				// events
 
 

+ 0 - 1
examples/webgl_loader_sea3d_skinning.html

@@ -198,7 +198,6 @@
 				composer.addPass( vignettePass );
 				composer.addPass( vignettePass );
 
 
 				composer.addPass( copyPass );
 				composer.addPass( copyPass );
-				copyPass.renderToScreen = true;
 
 
 				// events
 				// events
 
 

+ 0 - 1
examples/webgl_loader_sea3d_sound.html

@@ -349,7 +349,6 @@
 				composer.addPass( vignettePass );
 				composer.addPass( vignettePass );
 
 
 				composer.addPass( copyPass );
 				composer.addPass( copyPass );
-				copyPass.renderToScreen = true;
 
 
 				// events
 				// events
 
 

+ 0 - 2
examples/webgl_materials_bumpmap_skin.html

@@ -134,8 +134,6 @@
 				var effectBeckmann = new THREE.ShaderPass( THREE.ShaderSkin[ "beckmann" ] );
 				var effectBeckmann = new THREE.ShaderPass( THREE.ShaderSkin[ "beckmann" ] );
 				var effectCopy = new THREE.ShaderPass( THREE.CopyShader );
 				var effectCopy = new THREE.ShaderPass( THREE.CopyShader );
 
 
-				effectCopy.renderToScreen = true;
-
 				var pars = { minFilter: THREE.LinearFilter, magFilter: THREE.LinearFilter, format: THREE.RGBFormat, stencilBuffer: false };
 				var pars = { minFilter: THREE.LinearFilter, magFilter: THREE.LinearFilter, format: THREE.RGBFormat, stencilBuffer: false };
 				var rtwidth = 512, rtheight = 512;
 				var rtwidth = 512, rtheight = 512;
 
 

+ 0 - 2
examples/webgl_materials_normalmap.html

@@ -171,8 +171,6 @@
 				effectColor.uniforms[ 'powRGB' ].value.set( 1.4, 1.45, 1.45 );
 				effectColor.uniforms[ 'powRGB' ].value.set( 1.4, 1.45, 1.45 );
 				effectColor.uniforms[ 'mulRGB' ].value.set( 1.1, 1.1, 1.1 );
 				effectColor.uniforms[ 'mulRGB' ].value.set( 1.1, 1.1, 1.1 );
 
 
-				effectColor.renderToScreen = true;
-
 				composer = new THREE.EffectComposer( renderer );
 				composer = new THREE.EffectComposer( renderer );
 
 
 				composer.addPass( renderModel );
 				composer.addPass( renderModel );

+ 4 - 4
examples/webgl_materials_skin.html

@@ -186,8 +186,6 @@
 
 
 				var renderModelUV = new THREE.RenderPass( scene, camera, materialUV, new THREE.Color( 0x575757 ) );
 				var renderModelUV = new THREE.RenderPass( scene, camera, materialUV, new THREE.Color( 0x575757 ) );
 
 
-				var effectCopy = new THREE.ShaderPass( THREE.CopyShader );
-
 				var effectBloom1 = new THREE.BloomPass( 1, 15, 2, 512 );
 				var effectBloom1 = new THREE.BloomPass( 1, 15, 2, 512 );
 				var effectBloom2 = new THREE.BloomPass( 1, 25, 3, 512 );
 				var effectBloom2 = new THREE.BloomPass( 1, 25, 3, 512 );
 				var effectBloom3 = new THREE.BloomPass( 1, 25, 4, 512 );
 				var effectBloom3 = new THREE.BloomPass( 1, 25, 4, 512 );
@@ -196,8 +194,6 @@
 				effectBloom2.clear = true;
 				effectBloom2.clear = true;
 				effectBloom3.clear = true;
 				effectBloom3.clear = true;
 
 
-				effectCopy.renderToScreen = true;
-
 				//
 				//
 
 
 				var pars = {
 				var pars = {
@@ -215,6 +211,7 @@
 
 
 				composer = new THREE.EffectComposer( renderer, new THREE.WebGLRenderTarget( rtwidth, rtheight, pars ) );
 				composer = new THREE.EffectComposer( renderer, new THREE.WebGLRenderTarget( rtwidth, rtheight, pars ) );
 				composer.addPass( renderModelUV );
 				composer.addPass( renderModelUV );
+				composer.renderToScreen = false;
 
 
 				var renderScene = new THREE.TexturePass( composer.renderTarget2.texture );
 				var renderScene = new THREE.TexturePass( composer.renderTarget2.texture );
 
 
@@ -224,16 +221,19 @@
 
 
 				composerUV1.addPass( renderScene );
 				composerUV1.addPass( renderScene );
 				composerUV1.addPass( effectBloom1 );
 				composerUV1.addPass( effectBloom1 );
+				composerUV1.renderToScreen = false;
 
 
 				composerUV2 = new THREE.EffectComposer( renderer, new THREE.WebGLRenderTarget( rtwidth, rtheight, pars ) );
 				composerUV2 = new THREE.EffectComposer( renderer, new THREE.WebGLRenderTarget( rtwidth, rtheight, pars ) );
 
 
 				composerUV2.addPass( renderScene );
 				composerUV2.addPass( renderScene );
 				composerUV2.addPass( effectBloom2 );
 				composerUV2.addPass( effectBloom2 );
+				composerUV2.renderToScreen = false;
 
 
 				composerUV3 = new THREE.EffectComposer( renderer, new THREE.WebGLRenderTarget( rtwidth, rtheight, pars ) );
 				composerUV3 = new THREE.EffectComposer( renderer, new THREE.WebGLRenderTarget( rtwidth, rtheight, pars ) );
 
 
 				composerUV3.addPass( renderScene );
 				composerUV3.addPass( renderScene );
 				composerUV3.addPass( effectBloom3 );
 				composerUV3.addPass( effectBloom3 );
+				composerUV3.renderToScreen = false;
 
 
 				//
 				//
 
 

+ 0 - 2
examples/webgl_materials_video.html

@@ -223,8 +223,6 @@
 				var effectBloom = new THREE.BloomPass( 1.3 );
 				var effectBloom = new THREE.BloomPass( 1.3 );
 				var effectCopy = new THREE.ShaderPass( THREE.CopyShader );
 				var effectCopy = new THREE.ShaderPass( THREE.CopyShader );
 
 
-				effectCopy.renderToScreen = true;
-
 				composer = new THREE.EffectComposer( renderer );
 				composer = new THREE.EffectComposer( renderer );
 
 
 				composer.addPass( renderModel );
 				composer.addPass( renderModel );

+ 0 - 2
examples/webgl_points_dynamic.html

@@ -138,8 +138,6 @@
 				effectFocus.uniforms[ "screenWidth" ].value = window.innerWidth;
 				effectFocus.uniforms[ "screenWidth" ].value = window.innerWidth;
 				effectFocus.uniforms[ "screenHeight" ].value = window.innerHeight;
 				effectFocus.uniforms[ "screenHeight" ].value = window.innerHeight;
 
 
-				effectFocus.renderToScreen = true;
-
 				composer = new THREE.EffectComposer( renderer );
 				composer = new THREE.EffectComposer( renderer );
 
 
 				composer.addPass( renderModel );
 				composer.addPass( renderModel );

+ 0 - 1
examples/webgl_postprocessing.html

@@ -82,7 +82,6 @@
 
 
 				var effect = new THREE.ShaderPass( THREE.RGBShiftShader );
 				var effect = new THREE.ShaderPass( THREE.RGBShiftShader );
 				effect.uniforms[ 'amount' ].value = 0.0015;
 				effect.uniforms[ 'amount' ].value = 0.0015;
-				effect.renderToScreen = true;
 				composer.addPass( effect );
 				composer.addPass( effect );
 
 
 				//
 				//

+ 0 - 7
examples/webgl_postprocessing_advanced.html

@@ -206,13 +206,6 @@
 
 
 				renderMaskInverse.inverse = true;
 				renderMaskInverse.inverse = true;
 
 
-				//effectFilm.renderToScreen = true;
-				//effectFilmBW.renderToScreen = true;
-				//effectDotScreen.renderToScreen = true;
-				//effectBleach.renderToScreen = true;
-				effectVignette.renderToScreen = true;
-				//effectCopy.renderToScreen = true;
-
 				//
 				//
 
 
 				var rtParameters = {
 				var rtParameters = {

+ 0 - 1
examples/webgl_postprocessing_afterimage.html

@@ -68,7 +68,6 @@
 				composer.addPass( new THREE.RenderPass( scene, camera ) );
 				composer.addPass( new THREE.RenderPass( scene, camera ) );
 
 
 				afterimagePass = new THREE.AfterimagePass();
 				afterimagePass = new THREE.AfterimagePass();
-				afterimagePass.renderToScreen = true;
 				composer.addPass( afterimagePass );
 				composer.addPass( afterimagePass );
 
 
 				window.addEventListener( 'resize', onWindowResize, false );
 				window.addEventListener( 'resize', onWindowResize, false );

+ 0 - 1
examples/webgl_postprocessing_backgrounds.html

@@ -215,7 +215,6 @@
 				composer.addPass( renderPass );
 				composer.addPass( renderPass );
 
 
 				var copyPass = new THREE.ShaderPass( THREE.CopyShader );
 				var copyPass = new THREE.ShaderPass( THREE.CopyShader );
-				copyPass.renderToScreen = true;
 				composer.addPass( copyPass );
 				composer.addPass( copyPass );
 
 
 				var controls = new THREE.OrbitControls( cameraP, renderer.domElement );
 				var controls = new THREE.OrbitControls( cameraP, renderer.domElement );

+ 0 - 2
examples/webgl_postprocessing_dof.html

@@ -260,8 +260,6 @@
 					height: height
 					height: height
 				} );
 				} );
 
 
-				bokehPass.renderToScreen = true;
-
 				var composer = new THREE.EffectComposer( renderer );
 				var composer = new THREE.EffectComposer( renderer );
 
 
 				composer.addPass( renderPass );
 				composer.addPass( renderPass );

+ 0 - 2
examples/webgl_postprocessing_fxaa.html

@@ -136,7 +136,6 @@
 				//
 				//
 
 
 				fxaaPass = new THREE.ShaderPass( THREE.FXAAShader );
 				fxaaPass = new THREE.ShaderPass( THREE.FXAAShader );
-				fxaaPass.renderToScreen = true;
 
 
 				var pixelRatio = renderer.getPixelRatio();
 				var pixelRatio = renderer.getPixelRatio();
 
 
@@ -150,7 +149,6 @@
 				//
 				//
 
 
 				var copyPass = new THREE.ShaderPass( THREE.CopyShader );
 				var copyPass = new THREE.ShaderPass( THREE.CopyShader );
-				copyPass.renderToScreen = true;
 
 
 				composer2 = new THREE.EffectComposer( renderer );
 				composer2 = new THREE.EffectComposer( renderer );
 				composer2.addPass( renderPass );
 				composer2.addPass( renderPass );

+ 0 - 1
examples/webgl_postprocessing_glitch.html

@@ -103,7 +103,6 @@
 				composer.addPass( new THREE.RenderPass( scene, camera ) );
 				composer.addPass( new THREE.RenderPass( scene, camera ) );
 
 
 				glitchPass = new THREE.GlitchPass();
 				glitchPass = new THREE.GlitchPass();
-				glitchPass.renderToScreen = true;
 				composer.addPass( glitchPass );
 				composer.addPass( glitchPass );
 
 
 
 

+ 0 - 1
examples/webgl_postprocessing_masking.html

@@ -81,7 +81,6 @@
 				var texturePass2 = new THREE.TexturePass( texture2 );
 				var texturePass2 = new THREE.TexturePass( texture2 );
 
 
 				var outputPass = new THREE.ShaderPass( THREE.CopyShader );
 				var outputPass = new THREE.ShaderPass( THREE.CopyShader );
-				outputPass.renderToScreen = true;
 
 
 				var parameters = {
 				var parameters = {
 					minFilter: THREE.LinearFilter,
 					minFilter: THREE.LinearFilter,

+ 0 - 1
examples/webgl_postprocessing_nodes_pass.html

@@ -516,7 +516,6 @@
 				composer.addPass( new THREE.RenderPass( scene, camera ) );
 				composer.addPass( new THREE.RenderPass( scene, camera ) );
 
 
 				nodepass = new NodePass();
 				nodepass = new NodePass();
-				nodepass.renderToScreen = true;
 
 
 				composer.addPass( nodepass );
 				composer.addPass( nodepass );
 
 

+ 0 - 1
examples/webgl_postprocessing_outline.html

@@ -298,7 +298,6 @@
 
 
 				effectFXAA = new THREE.ShaderPass( THREE.FXAAShader );
 				effectFXAA = new THREE.ShaderPass( THREE.FXAAShader );
 				effectFXAA.uniforms[ 'resolution' ].value.set( 1 / window.innerWidth, 1 / window.innerHeight );
 				effectFXAA.uniforms[ 'resolution' ].value.set( 1 / window.innerWidth, 1 / window.innerHeight );
-				effectFXAA.renderToScreen = true;
 				composer.addPass( effectFXAA );
 				composer.addPass( effectFXAA );
 
 
 				window.addEventListener( 'resize', onWindowResize, false );
 				window.addEventListener( 'resize', onWindowResize, false );

+ 0 - 1
examples/webgl_postprocessing_pixel.html

@@ -147,7 +147,6 @@
 				pixelPass = new THREE.ShaderPass( THREE.PixelShader );
 				pixelPass = new THREE.ShaderPass( THREE.PixelShader );
 				pixelPass.uniforms[ "resolution" ].value = new THREE.Vector2( window.innerWidth, window.innerHeight );
 				pixelPass.uniforms[ "resolution" ].value = new THREE.Vector2( window.innerWidth, window.innerHeight );
 				pixelPass.uniforms[ "resolution" ].value.multiplyScalar( window.devicePixelRatio );
 				pixelPass.uniforms[ "resolution" ].value.multiplyScalar( window.devicePixelRatio );
-				pixelPass.renderToScreen = true;
 				composer.addPass( pixelPass );
 				composer.addPass( pixelPass );
 
 
 				window.addEventListener( 'resize', resize );
 				window.addEventListener( 'resize', resize );

+ 0 - 1
examples/webgl_postprocessing_rgb_halftone.html

@@ -149,7 +149,6 @@
 			disable: false
 			disable: false
 		};
 		};
 		halftonePass = new THREE.HalftonePass( window.innerWidth, window.innerHeight, params );
 		halftonePass = new THREE.HalftonePass( window.innerWidth, window.innerHeight, params );
-		halftonePass.renderToScreen = true;
 		composer.addPass( renderPass );
 		composer.addPass( renderPass );
 		composer.addPass( halftonePass );
 		composer.addPass( halftonePass );
 
 

+ 0 - 1
examples/webgl_postprocessing_sao.html

@@ -139,7 +139,6 @@
 				renderPass = new THREE.RenderPass( scene, camera );
 				renderPass = new THREE.RenderPass( scene, camera );
 				composer.addPass( renderPass );
 				composer.addPass( renderPass );
 				saoPass = new THREE.SAOPass( scene, camera, false, true );
 				saoPass = new THREE.SAOPass( scene, camera, false, true );
-				saoPass.renderToScreen = true;
 				composer.addPass( saoPass );
 				composer.addPass( saoPass );
 
 
 				// Init gui
 				// Init gui

+ 0 - 1
examples/webgl_postprocessing_smaa.html

@@ -77,7 +77,6 @@
 				composer.addPass( new THREE.RenderPass( scene, camera ) );
 				composer.addPass( new THREE.RenderPass( scene, camera ) );
 
 
 				pass = new THREE.SMAAPass( window.innerWidth * renderer.getPixelRatio(), window.innerHeight * renderer.getPixelRatio() );
 				pass = new THREE.SMAAPass( window.innerWidth * renderer.getPixelRatio(), window.innerHeight * renderer.getPixelRatio() );
-				pass.renderToScreen = true;
 				composer.addPass( pass );
 				composer.addPass( pass );
 
 
 				window.addEventListener( 'resize', onWindowResize, false );
 				window.addEventListener( 'resize', onWindowResize, false );

+ 0 - 1
examples/webgl_postprocessing_sobel.html

@@ -118,7 +118,6 @@
 				// Sobel operator
 				// Sobel operator
 
 
 				effectSobel = new THREE.ShaderPass( THREE.SobelOperatorShader );
 				effectSobel = new THREE.ShaderPass( THREE.SobelOperatorShader );
-				effectSobel.renderToScreen = true;
 				effectSobel.uniforms[ "resolution" ].value.x = window.innerWidth;
 				effectSobel.uniforms[ "resolution" ].value.x = window.innerWidth;
 				effectSobel.uniforms[ "resolution" ].value.y = window.innerHeight;
 				effectSobel.uniforms[ "resolution" ].value.y = window.innerHeight;
 				composer.addPass( effectSobel );
 				composer.addPass( effectSobel );

+ 0 - 1
examples/webgl_postprocessing_ssaa.html

@@ -128,7 +128,6 @@
 				composer.addPass( ssaaRenderPass );
 				composer.addPass( ssaaRenderPass );
 
 
 				copyPass = new THREE.ShaderPass( THREE.CopyShader );
 				copyPass = new THREE.ShaderPass( THREE.CopyShader );
-				copyPass.renderToScreen = true;
 				composer.addPass( copyPass );
 				composer.addPass( copyPass );
 
 
 				window.addEventListener( 'resize', onWindowResize, false );
 				window.addEventListener( 'resize', onWindowResize, false );

+ 0 - 2
examples/webgl_postprocessing_ssaa_unbiased.html

@@ -182,7 +182,6 @@
 				ssaaRenderPassO = new THREE.SSAARenderPass( scene, cameraO );
 				ssaaRenderPassO = new THREE.SSAARenderPass( scene, cameraO );
 				composer.addPass( ssaaRenderPassO );
 				composer.addPass( ssaaRenderPassO );
 				copyPass = new THREE.ShaderPass( THREE.CopyShader );
 				copyPass = new THREE.ShaderPass( THREE.CopyShader );
-				copyPass.renderToScreen = true;
 				composer.addPass( copyPass );
 				composer.addPass( copyPass );
 
 
 				window.addEventListener( 'resize', onWindowResize, false );
 				window.addEventListener( 'resize', onWindowResize, false );
@@ -251,7 +250,6 @@
 				ssaaRenderPassP.enabled = ( params.camera === 'perspective' );
 				ssaaRenderPassP.enabled = ( params.camera === 'perspective' );
 				ssaaRenderPassO.enabled = ( params.camera === 'orthographic' );
 				ssaaRenderPassO.enabled = ( params.camera === 'orthographic' );
 
 
-				ssaaRenderPassP.renderToScreen = ssaaRenderPassO.renderToScreen = params.renderToScreen;
 				copyPass.enabled = ! params.renderToScreen;
 				copyPass.enabled = ! params.renderToScreen;
 
 
 				composer.render();
 				composer.render();

+ 0 - 1
examples/webgl_postprocessing_ssao.html

@@ -127,7 +127,6 @@
 
 
 				ssaoPass = new THREE.SSAOPass( scene, camera, width, height );
 				ssaoPass = new THREE.SSAOPass( scene, camera, width, height );
 				ssaoPass.kernelRadius = 16;
 				ssaoPass.kernelRadius = 16;
-				ssaoPass.renderToScreen = true;
 
 
 				effectComposer = new THREE.EffectComposer( renderer );
 				effectComposer = new THREE.EffectComposer( renderer );
 				effectComposer.addPass( ssaoPass );
 				effectComposer.addPass( ssaoPass );

+ 0 - 1
examples/webgl_postprocessing_taa.html

@@ -157,7 +157,6 @@
 				composer.addPass( renderPass );
 				composer.addPass( renderPass );
 
 
 				copyPass = new THREE.ShaderPass( THREE.CopyShader );
 				copyPass = new THREE.ShaderPass( THREE.CopyShader );
-		    copyPass.renderToScreen = true;
 				composer.addPass( copyPass );
 				composer.addPass( copyPass );
 
 
 				window.addEventListener( 'resize', onWindowResize, false );
 				window.addEventListener( 'resize', onWindowResize, false );

+ 0 - 1
examples/webgl_postprocessing_unreal_bloom.html

@@ -104,7 +104,6 @@
 			var renderScene = new THREE.RenderPass( scene, camera );
 			var renderScene = new THREE.RenderPass( scene, camera );
 
 
 			var bloomPass = new THREE.UnrealBloomPass( new THREE.Vector2( window.innerWidth, window.innerHeight ), 1.5, 0.4, 0.85 );
 			var bloomPass = new THREE.UnrealBloomPass( new THREE.Vector2( window.innerWidth, window.innerHeight ), 1.5, 0.4, 0.85 );
-			bloomPass.renderToScreen = true;
 			bloomPass.threshold = params.bloomThreshold;
 			bloomPass.threshold = params.bloomThreshold;
 			bloomPass.strength = params.bloomStrength;
 			bloomPass.strength = params.bloomStrength;
 			bloomPass.radius = params.bloomRadius;
 			bloomPass.radius = params.bloomRadius;

+ 0 - 2
examples/webgl_shader_lava.html

@@ -183,8 +183,6 @@
 				var effectBloom = new THREE.BloomPass( 1.25 );
 				var effectBloom = new THREE.BloomPass( 1.25 );
 				var effectFilm = new THREE.FilmPass( 0.35, 0.95, 2048, false );
 				var effectFilm = new THREE.FilmPass( 0.35, 0.95, 2048, false );
 
 
-				effectFilm.renderToScreen = true;
-
 				composer = new THREE.EffectComposer( renderer );
 				composer = new THREE.EffectComposer( renderer );
 
 
 				composer.addPass( renderModel );
 				composer.addPass( renderModel );

+ 0 - 2
examples/webgl_shaders_tonemapping.html

@@ -368,7 +368,6 @@
 				hdrToneMappingPass = new THREE.AdaptiveToneMappingPass( false, 256 );
 				hdrToneMappingPass = new THREE.AdaptiveToneMappingPass( false, 256 );
 				bloomPass = new THREE.BloomPass();
 				bloomPass = new THREE.BloomPass();
 				var gammaCorrectionPass = new THREE.ShaderPass( THREE.GammaCorrectionShader );
 				var gammaCorrectionPass = new THREE.ShaderPass( THREE.GammaCorrectionShader );
-				gammaCorrectionPass.renderToScreen = true;
 
 
 				dynamicHdrEffectComposer.addPass( skyboxPass );
 				dynamicHdrEffectComposer.addPass( skyboxPass );
 				dynamicHdrEffectComposer.addPass( scenePass );
 				dynamicHdrEffectComposer.addPass( scenePass );
@@ -390,7 +389,6 @@
 				ldrEffectComposer.addPass( gammaCorrectionPass );
 				ldrEffectComposer.addPass( gammaCorrectionPass );
 
 
 				// var gammaPass = new THREE.ShaderPass( GammaShader );
 				// var gammaPass = new THREE.ShaderPass( GammaShader );
-				// gammaPass.renderToScreen = true;
 				// ldrEffectComposer.addPass( gammaPass );
 				// ldrEffectComposer.addPass( gammaPass );
 
 
 				var gui = new dat.GUI();
 				var gui = new dat.GUI();

+ 0 - 1
examples/webgl_tonemapping.html

@@ -215,7 +215,6 @@
 				composer.addPass( renderScene );
 				composer.addPass( renderScene );
 
 
 				var copyPass = new THREE.ShaderPass( THREE.CopyShader );
 				var copyPass = new THREE.ShaderPass( THREE.CopyShader );
-				copyPass.renderToScreen = true;
 				composer.addPass( copyPass );
 				composer.addPass( copyPass );
 
 
 				stats = new Stats();
 				stats = new Stats();