浏览代码

GLTFLoader materials only get passed used properties

Steven Vergenz 8 年之前
父节点
当前提交
b58af4804d
共有 1 个文件被更改,包括 12 次插入1 次删除
  1. 12 1
      examples/js/loaders/GLTFLoader.js

+ 12 - 1
examples/js/loaders/GLTFLoader.js

@@ -1160,7 +1160,18 @@ THREE.GLTFLoader = ( function () {
 
 					}
 
-					Object.assign( materialValues, khr_material.values );
+					// don't copy over unused values to avoid material warning spam
+					var c = ['ambient', 'transparent', 'transparency', 'doubleSided'];
+					var allowedValues = {
+						'CONSTANT': c.concat('emission'),
+						'LAMBERT':  c.concat('emission', 'diffuse'),
+						'BLINN':    c.concat('emission', 'diffuse', 'specular', 'shininess'),
+						'PHONG':    c.concat('emission', 'diffuse', 'specular', 'shininess')
+					};
+
+					allowedValues[khr_material.technique].forEach(function(v){
+						materialValues[v] = khr_material.values[v];
+					});
 
 					if ( khr_material.doubleSided || materialValues.doubleSided ) {