Browse Source

Merge pull request #6407 from benaadams/update-buffer-phase

Batch buffer update
Ricardo Cabello 10 years ago
parent
commit
1449900995
2 changed files with 17 additions and 3 deletions
  1. 2 2
      src/renderers/WebGLRenderer.js
  2. 15 1
      src/renderers/webgl/WebGLObjects.js

+ 2 - 2
src/renderers/WebGLRenderer.js

@@ -991,8 +991,6 @@ THREE.WebGLRenderer = function ( parameters ) {
 
 
 		if ( material.visible === false ) return;
 		if ( material.visible === false ) return;
 
 
-		objects.update( object );
-
 		var program = setProgram( camera, lights, fog, material, object );
 		var program = setProgram( camera, lights, fog, material, object );
 
 
 		var updateBuffers = false,
 		var updateBuffers = false,
@@ -1672,6 +1670,8 @@ THREE.WebGLRenderer = function ( parameters ) {
 
 
 		}
 		}
 
 
+		objects.update( opaqueObjects );
+		objects.update( transparentObjects );
 		//
 		//
 
 
 		shadowMap.render( scene, camera );
 		shadowMap.render( scene, camera );

+ 15 - 1
src/renderers/webgl/WebGLObjects.js

@@ -111,7 +111,7 @@ THREE.WebGLObjects = function ( gl, info ) {
 
 
 	};
 	};
 
 
-	this.update = function ( object ) {
+	var update = function ( object ) {
 
 
 		var geometry = geometries.get( object );
 		var geometry = geometries.get( object );
 
 
@@ -188,4 +188,18 @@ THREE.WebGLObjects = function ( gl, info ) {
 
 
 	};
 	};
 
 
+	this.update = function ( renderList ) {
+
+		for ( var i = 0, ul = renderList.length; i < ul; i++ ) {
+
+			var object = renderList[i].object;
+
+			if ( object.material.visible !== false ) {
+
+				update( object );
+
+			}
+		}
+	}
+
 };
 };