Browse Source

WebGLRenderer: Passing scene to onBeforeRender/onAfterRender. See #9738.

Mr.doob 8 years ago
parent
commit
1d6925a67c
1 changed files with 9 additions and 11 deletions
  1. 9 11
      src/renderers/WebGLRenderer.js

+ 9 - 11
src/renderers/WebGLRenderer.js

@@ -1134,8 +1134,6 @@ function WebGLRenderer( parameters ) {
 
 
 		}
 		}
 
 
-		var fog = scene.fog;
-
 		// reset caching for this frame
 		// reset caching for this frame
 
 
 		_currentGeometryProgram = '';
 		_currentGeometryProgram = '';
@@ -1256,19 +1254,19 @@ function WebGLRenderer( parameters ) {
 
 
 			var overrideMaterial = scene.overrideMaterial;
 			var overrideMaterial = scene.overrideMaterial;
 
 
-			renderObjects( opaqueObjects, camera, fog, overrideMaterial );
-			renderObjects( transparentObjects, camera, fog, overrideMaterial );
+			renderObjects( opaqueObjects, scene, camera, overrideMaterial );
+			renderObjects( transparentObjects, scene, camera, overrideMaterial );
 
 
 		} else {
 		} else {
 
 
 			// opaque pass (front-to-back order)
 			// opaque pass (front-to-back order)
 
 
 			state.setBlending( NoBlending );
 			state.setBlending( NoBlending );
-			renderObjects( opaqueObjects, camera, fog );
+			renderObjects( opaqueObjects, scene, camera );
 
 
 			// transparent pass (back-to-front order)
 			// transparent pass (back-to-front order)
 
 
-			renderObjects( transparentObjects, camera, fog );
+			renderObjects( transparentObjects, scene, camera );
 
 
 		}
 		}
 
 
@@ -1495,7 +1493,7 @@ function WebGLRenderer( parameters ) {
 
 
 	}
 	}
 
 
-	function renderObjects( renderList, camera, fog, overrideMaterial ) {
+	function renderObjects( renderList, scene, camera, overrideMaterial ) {
 
 
 		for ( var i = 0, l = renderList.length; i < l; i ++ ) {
 		for ( var i = 0, l = renderList.length; i < l; i ++ ) {
 
 
@@ -1509,13 +1507,13 @@ function WebGLRenderer( parameters ) {
 			object.modelViewMatrix.multiplyMatrices( camera.matrixWorldInverse, object.matrixWorld );
 			object.modelViewMatrix.multiplyMatrices( camera.matrixWorldInverse, object.matrixWorld );
 			object.normalMatrix.getNormalMatrix( object.modelViewMatrix );
 			object.normalMatrix.getNormalMatrix( object.modelViewMatrix );
 
 
-			object.onBeforeRender( _this, camera, geometry, material, group );
+			object.onBeforeRender( _this, scene, camera, geometry, material, group );
 
 
 			if ( object.isImmediateRenderObject ) {
 			if ( object.isImmediateRenderObject ) {
 
 
 				setMaterial( material );
 				setMaterial( material );
 
 
-				var program = setProgram( camera, fog, material, object );
+				var program = setProgram( camera, scene.fog, material, object );
 
 
 				_currentGeometryProgram = '';
 				_currentGeometryProgram = '';
 
 
@@ -1527,11 +1525,11 @@ function WebGLRenderer( parameters ) {
 
 
 			} else {
 			} else {
 
 
-				_this.renderBufferDirect( camera, fog, geometry, material, object, group );
+				_this.renderBufferDirect( camera, scene.fog, geometry, material, object, group );
 
 
 			}
 			}
 
 
-			object.onAfterRender( _this, camera, geometry, material, group );
+			object.onAfterRender( _this, scene, camera, geometry, material, group );
 
 
 
 
 		}
 		}