浏览代码

Merge pull request #6545 from tschw/Material_handling

Material handling
Ricardo Cabello 10 年之前
父节点
当前提交
228dd1bcdf
共有 2 个文件被更改,包括 8 次插入2 次删除
  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.shininess !== undefined ) material.shininess = json.shininess;
 		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.fragmentShader !== undefined ) material.fragmentShader = json.fragmentShader;
 		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
 			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;
 
 		}