Browse Source

fix a few minor bugs in ManualMSAARenderPAss. (#8884)

Ben Houston (Clara.io) 9 years ago
parent
commit
761e4fb1d0
1 changed files with 7 additions and 18 deletions
  1. 7 18
      examples/js/postprocessing/ManualMSAARenderPass.js

+ 7 - 18
examples/js/postprocessing/ManualMSAARenderPass.js

@@ -37,13 +37,9 @@ THREE.ManualMSAARenderPass = function ( scene, camera, params ) {
 		uniforms: this.compositeUniforms,
 		uniforms: this.compositeUniforms,
 		vertexShader: compositeShader.vertexShader,
 		vertexShader: compositeShader.vertexShader,
 		fragmentShader: compositeShader.fragmentShader,
 		fragmentShader: compositeShader.fragmentShader,
+		premultipliedAlpha: true,
 		transparent: true,
 		transparent: true,
-		blending: THREE.CustomBlending,
-		blendSrc: THREE.OneFactor,
-		blendDst: THREE.OneFactor,
-		blendSrcAlpha: THREE.OneFactor,
-		blendDstAlpha: THREE.OneFactor,
-		blendEquation: THREE.AddEquation,
+		blending: THREE.AdditiveBlending,
 		depthTest: false,
 		depthTest: false,
 		depthWrite: false
 		depthWrite: false
 
 
@@ -76,7 +72,7 @@ THREE.ManualMSAARenderPass.prototype = {
 
 
 	setSize: function ( width, height ) {
 	setSize: function ( width, height ) {
 
 
-		this.sampleRenderTarget.setSize( width, height );
+		if ( this.sampleRenderTarget ) { this.sampleRenderTarget.setSize( width, height ); }
 
 
 	},
 	},
 
 
@@ -85,13 +81,6 @@ THREE.ManualMSAARenderPass.prototype = {
 		var camera = ( this.camera || this.scene.camera );
 		var camera = ( this.camera || this.scene.camera );
 		var jitterOffsets = THREE.ManualMSAARenderPass.JitterVectors[ Math.max( 0, Math.min( this.sampleLevel, 5 ) ) ];
 		var jitterOffsets = THREE.ManualMSAARenderPass.JitterVectors[ Math.max( 0, Math.min( this.sampleLevel, 5 ) ) ];
 
 
-		if( jitterOffsets.length === 1 ) {
-
-			renderer.render( this.scene, camera, writeBuffer, true );
-			return;
-
-		}
-
 		if ( ! this.sampleRenderTarget ) {
 		if ( ! this.sampleRenderTarget ) {
 
 
 			this.sampleRenderTarget = new THREE.WebGLRenderTarget( readBuffer.width, readBuffer.height, this.params );
 			this.sampleRenderTarget = new THREE.WebGLRenderTarget( readBuffer.width, readBuffer.height, this.params );
@@ -101,7 +90,7 @@ THREE.ManualMSAARenderPass.prototype = {
 		var autoClear = renderer.autoClear;
 		var autoClear = renderer.autoClear;
 		renderer.autoClear = false;
 		renderer.autoClear = false;
 
 
-		this.compositeUniforms[ "scale" ].value = 1.0 / ( jitterOffsets.length );
+		this.compositeUniforms[ "scale" ].value = 1.0 / jitterOffsets.length;
 		this.compositeUniforms[ "tForeground" ].value = this.sampleRenderTarget.texture;
 		this.compositeUniforms[ "tForeground" ].value = this.sampleRenderTarget.texture;
 
 
 		// render the scene multiple times, each slightly jitter offset from the last and accumulate the results.
 		// render the scene multiple times, each slightly jitter offset from the last and accumulate the results.
@@ -115,15 +104,15 @@ THREE.ManualMSAARenderPass.prototype = {
 					readBuffer.width, readBuffer.height );
 					readBuffer.width, readBuffer.height );
 			}
 			}
 
 
-			renderer.render( this.scene, this.camera, this.sampleRenderTarget, true );
-			renderer.render( this.scene2, this.camera2, writeBuffer, ( i === 0 ) );
+			renderer.render( this.scene, camera, this.sampleRenderTarget, true );
+			renderer.render( this.scene2, this.camera2, writeBuffer, (i === 0) );
 
 
 		}
 		}
 
 
 		// reset jitter to nothing.	TODO: add support for orthogonal cameras
 		// reset jitter to nothing.	TODO: add support for orthogonal cameras
 		if ( camera.setViewOffset ) camera.setViewOffset( undefined, undefined, undefined, undefined, undefined, undefined );
 		if ( camera.setViewOffset ) camera.setViewOffset( undefined, undefined, undefined, undefined, undefined, undefined );
 
 
-		renderer.autoClear = true;
+		renderer.autoClear = autoClear;
 
 
 	}
 	}