2
0
Эх сурвалжийг харах

UnrealBloomPass memory optimization

oguzeroglu 7 жил өмнө
parent
commit
d7b06a9356

+ 5 - 2
examples/js/postprocessing/UnrealBloomPass.js

@@ -1,6 +1,6 @@
 /**
  * @author spidersharma / http://eduperiment.com/
- * 
+ *
  * Inspired from Unreal Engine
  * https://docs.unrealengine.com/latest/INT/Engine/Rendering/PostProcessEffects/Bloom/
  */
@@ -13,6 +13,9 @@ THREE.UnrealBloomPass = function ( resolution, strength, radius, threshold ) {
 	this.threshold = threshold;
 	this.resolution = ( resolution !== undefined ) ? new THREE.Vector2( resolution.x, resolution.y ) : new THREE.Vector2( 256, 256 );
 
+	// create color only once here, reuse it later inside the render function
+	this.reusableColor = new THREE.Color( 0, 0, 0 );
+
 	// render targets
 	var pars = { minFilter: THREE.LinearFilter, magFilter: THREE.LinearFilter, format: THREE.RGBAFormat };
 	this.renderTargetsHorizontal = [];
@@ -189,7 +192,7 @@ THREE.UnrealBloomPass.prototype = Object.assign( Object.create( THREE.Pass.proto
 		var oldAutoClear = renderer.autoClear;
 		renderer.autoClear = false;
 
-		renderer.setClearColor( new THREE.Color( 0, 0, 0 ), 0 );
+		renderer.setClearColor( this.reusableColor, 0 );
 
 		if ( maskActive ) renderer.context.disable( renderer.context.STENCIL_TEST );