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

Revert "WebGLRenderer: Track camera per render state. (#28113)" (#28119)

This reverts commit 645ff11b6e08ea0f845940a4ba13491c40198af2.
Michael Herzog 1 жил өмнө
parent
commit
1455064cb6

+ 10 - 0
examples/jsm/objects/Reflector.js

@@ -161,6 +161,16 @@ class Reflector extends Mesh {
 
 
 			renderer.setRenderTarget( currentRenderTarget );
 			renderer.setRenderTarget( currentRenderTarget );
 
 
+			// Restore viewport
+
+			const viewport = camera.viewport;
+
+			if ( viewport !== undefined ) {
+
+				renderer.state.viewport( viewport );
+
+			}
+
 			scope.visible = true;
 			scope.visible = true;
 
 
 		};
 		};

+ 10 - 0
examples/jsm/objects/ReflectorForSSRPass.js

@@ -226,6 +226,16 @@ class ReflectorForSSRPass extends Mesh {
 
 
 			renderer.setRenderTarget( currentRenderTarget );
 			renderer.setRenderTarget( currentRenderTarget );
 
 
+			// Restore viewport
+
+			const viewport = camera.viewport;
+
+			if ( viewport !== undefined ) {
+
+				renderer.state.viewport( viewport );
+
+			}
+
 			// scope.visible = true;
 			// scope.visible = true;
 
 
 		};
 		};

+ 12 - 2
examples/jsm/objects/Refractor.js

@@ -186,7 +186,7 @@ class Refractor extends Mesh {
 
 
 		//
 		//
 
 
-		function render( renderer, scene ) {
+		function render( renderer, scene, camera ) {
 
 
 			scope.visible = false;
 			scope.visible = false;
 
 
@@ -205,6 +205,16 @@ class Refractor extends Mesh {
 			renderer.shadowMap.autoUpdate = currentShadowAutoUpdate;
 			renderer.shadowMap.autoUpdate = currentShadowAutoUpdate;
 			renderer.setRenderTarget( currentRenderTarget );
 			renderer.setRenderTarget( currentRenderTarget );
 
 
+			// restore viewport
+
+			const viewport = camera.viewport;
+
+			if ( viewport !== undefined ) {
+
+				renderer.state.viewport( viewport );
+
+			}
+
 			scope.visible = true;
 			scope.visible = true;
 
 
 		}
 		}
@@ -229,7 +239,7 @@ class Refractor extends Mesh {
 
 
 			updateVirtualCamera( camera );
 			updateVirtualCamera( camera );
 
 
-			render( renderer, scene );
+			render( renderer, scene, camera );
 
 
 		};
 		};
 
 

+ 10 - 0
examples/jsm/objects/Water.js

@@ -314,6 +314,16 @@ class Water extends Mesh {
 
 
 			renderer.setRenderTarget( currentRenderTarget );
 			renderer.setRenderTarget( currentRenderTarget );
 
 
+			// Restore viewport
+
+			const viewport = camera.viewport;
+
+			if ( viewport !== undefined ) {
+
+				renderer.state.viewport( viewport );
+
+			}
+
 		};
 		};
 
 
 	}
 	}

+ 0 - 19
src/renderers/WebGLRenderer.js

@@ -949,7 +949,6 @@ class WebGLRenderer {
 			}
 			}
 
 
 			currentRenderState.setupLights( _this._useLegacyLights );
 			currentRenderState.setupLights( _this._useLegacyLights );
-			currentRenderState.setupLightsView( camera );
 
 
 			// Only initialize materials in the new scene, not the targetScene.
 			// Only initialize materials in the new scene, not the targetScene.
 
 
@@ -1243,24 +1242,6 @@ class WebGLRenderer {
 
 
 				currentRenderState = renderStateStack[ renderStateStack.length - 1 ];
 				currentRenderState = renderStateStack[ renderStateStack.length - 1 ];
 
 
-				// restore clipping uniforms and viewport
-
-				const renderStateCamera = currentRenderState.state.camera;
-
-				if ( renderStateCamera !== null ) {
-
-					if ( _clippingEnabled === true ) clipping.setGlobalState( _this.clippingPlanes, renderStateCamera );
-
-					const viewport = renderStateCamera.viewport;
-
-					if ( viewport !== undefined ) {
-
-						state.viewport( viewport );
-
-					}
-
-				}
-
 			} else {
 			} else {
 
 
 				currentRenderState = null;
 				currentRenderState = null;

+ 0 - 3
src/renderers/webgl/WebGLRenderStates.js

@@ -34,8 +34,6 @@ function WebGLRenderState( extensions ) {
 
 
 	function setupLightsView( camera ) {
 	function setupLightsView( camera ) {
 
 
-		state.camera = camera;
-
 		lights.setupView( lightsArray, camera );
 		lights.setupView( lightsArray, camera );
 
 
 	}
 	}
@@ -45,7 +43,6 @@ function WebGLRenderState( extensions ) {
 		shadowsArray: shadowsArray,
 		shadowsArray: shadowsArray,
 
 
 		lights: lights,
 		lights: lights,
-		camera: null,
 
 
 		transmissionRenderTarget: {}
 		transmissionRenderTarget: {}
 	};
 	};