Browse Source

Merge pull request #6545 from tschw/Material_handling

Material handling
Ricardo Cabello 10 years ago
parent
commit
228dd1bcdf
2 changed files with 8 additions and 2 deletions
  1. 1 0
      src/loaders/MaterialLoader.js
  2. 7 2
      src/renderers/WebGLRenderer.js

+ 1 - 0
src/loaders/MaterialLoader.js

@@ -41,6 +41,7 @@ THREE.MaterialLoader.prototype = {
 		if ( json.specular !== undefined ) material.specular.setHex( json.specular );
 		if ( json.specular !== undefined ) material.specular.setHex( json.specular );
 		if ( json.shininess !== undefined ) material.shininess = json.shininess;
 		if ( json.shininess !== undefined ) material.shininess = json.shininess;
 		if ( json.uniforms !== undefined ) material.uniforms = json.uniforms;
 		if ( json.uniforms !== undefined ) material.uniforms = json.uniforms;
+		if ( json.attributes !== undefined ) material.attributes = json.attributes;
 		if ( json.vertexShader !== undefined ) material.vertexShader = json.vertexShader;
 		if ( json.vertexShader !== undefined ) material.vertexShader = json.vertexShader;
 		if ( json.fragmentShader !== undefined ) material.fragmentShader = json.fragmentShader;
 		if ( json.fragmentShader !== undefined ) material.fragmentShader = json.fragmentShader;
 		if ( json.vertexColors !== undefined ) material.vertexColors = json.vertexColors;
 		if ( json.vertexColors !== undefined ) material.vertexColors = json.vertexColors;

+ 7 - 2
src/renderers/WebGLRenderer.js

@@ -2092,9 +2092,14 @@ THREE.WebGLRenderer = function ( parameters ) {
 			// changed glsl or parameters
 			// changed glsl or parameters
 			deallocateMaterial( material );
 			deallocateMaterial( material );
 
 
-		} else {
+		} else if ( shaderID !== undefined ) {
+
+			// same glsl
+			return;
+
+		} else if ( material.__webglShader.uniforms === material.uniforms ) {
 
 
-			// same glsl and parameters
+			// same uniforms (container object)
 			return;
 			return;
 
 
 		}
 		}