浏览代码

Examples: Add setSize() to more post-processing passes. (#24744)

* Examples: Add setSize() to more post-processing passes.

* Examples: Add comments.
Michael Herzog 2 年之前
父节点
当前提交
628ba3d86e

+ 10 - 3
examples/jsm/postprocessing/BloomPass.js

@@ -10,15 +10,15 @@ import { ConvolutionShader } from '../shaders/ConvolutionShader.js';
 
 
 class BloomPass extends Pass {
 class BloomPass extends Pass {
 
 
-	constructor( strength = 1, kernelSize = 25, sigma = 4, resolution = 256 ) {
+	constructor( strength = 1, kernelSize = 25, sigma = 4 ) {
 
 
 		super();
 		super();
 
 
 		// render targets
 		// render targets
 
 
-		this.renderTargetX = new WebGLRenderTarget( resolution, resolution );
+		this.renderTargetX = new WebGLRenderTarget( 1, 1 ); // will be resized later
 		this.renderTargetX.texture.name = 'BloomPass.x';
 		this.renderTargetX.texture.name = 'BloomPass.x';
-		this.renderTargetY = new WebGLRenderTarget( resolution, resolution );
+		this.renderTargetY = new WebGLRenderTarget( 1, 1 ); // will be resized later
 		this.renderTargetY.texture.name = 'BloomPass.y';
 		this.renderTargetY.texture.name = 'BloomPass.y';
 
 
 		// combine material
 		// combine material
@@ -105,6 +105,13 @@ class BloomPass extends Pass {
 
 
 	}
 	}
 
 
+	setSize( width, height ) {
+
+		this.renderTargetX.setSize( width, height );
+		this.renderTargetY.setSize( width, height );
+
+	}
+
 	dispose() {
 	dispose() {
 
 
 		this.renderTargetX.dispose();
 		this.renderTargetX.dispose();

+ 7 - 4
examples/jsm/postprocessing/BokehPass.js

@@ -31,10 +31,7 @@ class BokehPass extends Pass {
 
 
 		// render targets
 		// render targets
 
 
-		const width = params.width || window.innerWidth || 1;
-		const height = params.height || window.innerHeight || 1;
-
-		this.renderTargetDepth = new WebGLRenderTarget( width, height, {
+		this.renderTargetDepth = new WebGLRenderTarget( 1, 1, { // will be resized later
 			minFilter: NearestFilter,
 			minFilter: NearestFilter,
 			magFilter: NearestFilter
 			magFilter: NearestFilter
 		} );
 		} );
@@ -126,6 +123,12 @@ class BokehPass extends Pass {
 
 
 	}
 	}
 
 
+	setSize( width, height ) {
+
+		this.renderTargetDepth.setSize( width, height );
+
+	}
+
 	dispose() {
 	dispose() {
 
 
 		this.renderTargetDepth.dispose();
 		this.renderTargetDepth.dispose();

+ 7 - 1
examples/jsm/postprocessing/SavePass.js

@@ -32,7 +32,7 @@ class SavePass extends Pass {
 
 
 		if ( this.renderTarget === undefined ) {
 		if ( this.renderTarget === undefined ) {
 
 
-			this.renderTarget = new WebGLRenderTarget( window.innerWidth, window.innerHeight );
+			this.renderTarget = new WebGLRenderTarget( 1, 1 ); // will be resized later
 			this.renderTarget.texture.name = 'SavePass.rt';
 			this.renderTarget.texture.name = 'SavePass.rt';
 
 
 		}
 		}
@@ -57,6 +57,12 @@ class SavePass extends Pass {
 
 
 	}
 	}
 
 
+	setSize( width, height ) {
+
+		this.renderTarget.setSize( width, height );
+
+	}
+
 	dispose() {
 	dispose() {
 
 
 		this.renderTarget.dispose();
 		this.renderTarget.dispose();

+ 1 - 4
examples/webgl_postprocessing_dof.html

@@ -207,10 +207,7 @@
 				const bokehPass = new BokehPass( scene, camera, {
 				const bokehPass = new BokehPass( scene, camera, {
 					focus: 1.0,
 					focus: 1.0,
 					aperture: 0.025,
 					aperture: 0.025,
-					maxblur: 0.01,
-
-					width: width,
-					height: height
+					maxblur: 0.01
 				} );
 				} );
 
 
 				const composer = new EffectComposer( renderer );
 				const composer = new EffectComposer( renderer );