diff --git a/examples/js/postprocessing/ClearPass.js b/examples/js/postprocessing/ClearPass.js index 90975ea6cb595e12ec2918062d2dccd6541d8376..8b2e80275020077ebbe2891f40b07e27af9f7676 100644 --- a/examples/js/postprocessing/ClearPass.js +++ b/examples/js/postprocessing/ClearPass.js @@ -2,12 +2,15 @@ * @author mrdoob / http://mrdoob.com/ */ -THREE.ClearPass = function () { +THREE.ClearPass = function ( clearColor, clearAlpha ) { THREE.Pass.call( this ); this.needsSwap = false; + this.clearColor = ( clearColor !== undefined ) ? clearColor : 0x000000; + this.clearAlpha = ( clearAlpha !== undefined ) ? clearAlpha : 0; + }; THREE.ClearPass.prototype = Object.assign( Object.create( THREE.Pass.prototype ), { @@ -16,9 +19,26 @@ THREE.ClearPass.prototype = Object.assign( Object.create( THREE.Pass.prototype ) render: function ( renderer, writeBuffer, readBuffer, delta, maskActive ) { - renderer.setRenderTarget( readBuffer ); + var oldClearColor, oldClearAlpha; + + if ( this.clearColor ) { + + oldClearColor = renderer.getClearColor().getHex(); + oldClearAlpha = renderer.getClearAlpha(); + + renderer.setClearColor( this.clearColor, this.clearAlpha ); + + } + + renderer.setRenderTarget( this.renderToScreen ? null : readBuffer ); renderer.clear(); + if ( this.clearColor ) { + + renderer.setClearColor( oldClearColor, oldClearAlpha ); + + } + } } );