/** * @author alteredq / http://alteredqualia.com/ */ THREE.RenderPass = function ( scene, camera, overrideMaterial, clearColor, clearAlpha ) { THREE.Pass.call( this ); this.scene = scene; this.camera = camera; this.overrideMaterial = overrideMaterial; this.clearColor = clearColor; this.clearAlpha = ( clearAlpha !== undefined ) ? clearAlpha : 1; this.oldClearColor = new THREE.Color(); this.oldClearAlpha = 1; this.clear = true; this.needsSwap = false; }; THREE.RenderPass.prototype = Object.create( THREE.Pass.prototype ); Object.assign( THREE.RenderPass.prototype, { render: function ( renderer, writeBuffer, readBuffer, delta, maskActive ) { this.scene.overrideMaterial = this.overrideMaterial; if ( this.clearColor ) { this.oldClearColor.copy( renderer.getClearColor() ); this.oldClearAlpha = renderer.getClearAlpha(); renderer.setClearColor( this.clearColor, this.clearAlpha ); } renderer.render( this.scene, this.camera, readBuffer, this.clear ); if ( this.clearColor ) { renderer.setClearColor( this.oldClearColor, this.oldClearAlpha ); } this.scene.overrideMaterial = null; } } );