Browse Source

WebGLRenderer: Better code structure in .projectObject()

Mugen87 8 years ago
parent
commit
7546df0b2b
1 changed files with 15 additions and 13 deletions
  1. 15 13
      src/renderers/WebGLRenderer.js

+ 15 - 13
src/renderers/WebGLRenderer.js

@@ -1434,33 +1434,35 @@ function WebGLRenderer( parameters ) {
 							var groups = geometry.groups;
 							var groups = geometry.groups;
 							var materials = material.materials;
 							var materials = material.materials;
 
 
-							if ( groups.length === 0 ) {
+							if ( groups.length > 0 ) {
 
 
-								console.warn( 'THREE.WebGLRenderer: MultiMaterial can not be used without groups.' );
-
-							}
+								// push a render item for each group of the geometry
 
 
-							// push a render item for each group of the geometry
+								for ( var i = 0, l = groups.length; i < l; i ++ ) {
 
 
-							for ( var i = 0, l = groups.length; i < l; i ++ ) {
+									var group = groups[ i ];
+									var groupMaterial = materials[ group.materialIndex ];
 
 
-								var group = groups[ i ];
-								var groupMaterial = materials[ group.materialIndex ];
+									if ( groupMaterial === undefined ) {
 
 
-								if ( groupMaterial === undefined ) {
+										console.warn( 'THREE.WebGLRenderer: MultiMaterial has insufficient amount of materials for geometry. %i material(s) expected but only %i provided.', groups.length, materials.length );
 
 
-									console.warn( 'THREE.WebGLRenderer: MultiMaterial has insufficient amount of materials for geometry. %i material(s) expected but only %i provided.', groups.length, materials.length );
+									} else {
 
 
-								} else {
+										if ( groupMaterial.visible === true ) {
 
 
-									if ( groupMaterial.visible === true ) {
+											pushRenderItem( object, geometry, groupMaterial, _vector3.z, group );
 
 
-										pushRenderItem( object, geometry, groupMaterial, _vector3.z, group );
+										}
 
 
 									}
 									}
 
 
 								}
 								}
 
 
+							} else {
+
+								console.warn( 'THREE.WebGLRenderer: MultiMaterial can not be used without groups.' );
+
 							}
 							}
 
 
 						} else {
 						} else {