diff --git a/examples/js/loaders/FBXLoader.js b/examples/js/loaders/FBXLoader.js index 6a242b2b5e499ca5021e11c34ffe32d951ac4096..c42eaf01076572ff93b7e5496f5d8012f53a3c3b 100644 --- a/examples/js/loaders/FBXLoader.js +++ b/examples/js/loaders/FBXLoader.js @@ -499,7 +499,7 @@ THREE.FBXLoader = ( function () { break; default: console.warn( 'THREE.FBXLoader: unknown material type "%s". Defaulting to MeshPhongMaterial.', type ); - material = new THREE.MeshPhongMaterial( { color: 0x3300ff } ); + material = new THREE.MeshPhongMaterial(); break; } @@ -532,11 +532,13 @@ THREE.FBXLoader = ( function () { parameters.color = new THREE.Color().fromArray( materialNode.DiffuseColor.value ); } + if ( materialNode.DisplacementFactor ) { parameters.displacementScale = materialNode.DisplacementFactor.value; } + if ( materialNode.Emissive ) { parameters.emissive = new THREE.Color().fromArray( materialNode.Emissive.value ); @@ -547,31 +549,37 @@ THREE.FBXLoader = ( function () { parameters.emissive = new THREE.Color().fromArray( materialNode.EmissiveColor.value ); } + if ( materialNode.EmissiveFactor ) { parameters.emissiveIntensity = parseFloat( materialNode.EmissiveFactor.value ); } + if ( materialNode.Opacity ) { parameters.opacity = parseFloat( materialNode.Opacity.value ); } + if ( parameters.opacity < 1.0 ) { parameters.transparent = true; } + if ( materialNode.ReflectionFactor ) { parameters.reflectivity = materialNode.ReflectionFactor.value; } + if ( materialNode.Shininess ) { parameters.shininess = materialNode.Shininess.value; } + if ( materialNode.Specular ) { parameters.specular = new THREE.Color().fromArray( materialNode.Specular.value ); @@ -594,7 +602,12 @@ THREE.FBXLoader = ( function () { parameters.bumpMap = self.getTexture( textureMap, child.ID ); break; + case 'Maya|TEX_ao_map': + parameters.aoMap = self.getTexture( textureMap, child.ID ); + break; + case 'DiffuseColor': + case 'Maya|TEX_color_map': parameters.map = self.getTexture( textureMap, child.ID ); break; @@ -602,12 +615,12 @@ THREE.FBXLoader = ( function () { parameters.displacementMap = self.getTexture( textureMap, child.ID ); break; - case 'EmissiveColor': parameters.emissiveMap = self.getTexture( textureMap, child.ID ); break; case 'NormalMap': + case 'Maya|TEX_normal_map': parameters.normalMap = self.getTexture( textureMap, child.ID ); break;