|
@@ -296,107 +296,6 @@ THREE.GLTFLoader = ( function () {
|
|
|
|
|
|
}
|
|
|
|
|
|
- /**
|
|
|
- * Common Materials Extension
|
|
|
- *
|
|
|
- * Specification: https://github.com/KhronosGroup/glTF/tree/master/extensions/Khronos/KHR_materials_common
|
|
|
- */
|
|
|
- function GLTFMaterialsCommonExtension( json ) {
|
|
|
-
|
|
|
- this.name = EXTENSIONS.KHR_MATERIALS_COMMON;
|
|
|
-
|
|
|
- }
|
|
|
-
|
|
|
- GLTFMaterialsCommonExtension.prototype.getMaterialType = function ( material ) {
|
|
|
-
|
|
|
- var khrMaterial = material.extensions[ this.name ];
|
|
|
-
|
|
|
- switch ( khrMaterial.type ) {
|
|
|
-
|
|
|
- case 'commonBlinn' :
|
|
|
- case 'commonPhong' :
|
|
|
- return THREE.MeshPhongMaterial;
|
|
|
-
|
|
|
- case 'commonLambert' :
|
|
|
- return THREE.MeshLambertMaterial;
|
|
|
-
|
|
|
- case 'commonConstant' :
|
|
|
- default :
|
|
|
- return THREE.MeshBasicMaterial;
|
|
|
-
|
|
|
- }
|
|
|
-
|
|
|
- };
|
|
|
-
|
|
|
- GLTFMaterialsCommonExtension.prototype.extendParams = function ( materialParams, material, parser ) {
|
|
|
-
|
|
|
- var khrMaterial = material.extensions[ this.name ];
|
|
|
-
|
|
|
- var pending = [];
|
|
|
-
|
|
|
- var keys = [];
|
|
|
-
|
|
|
- // TODO: Currently ignored: 'ambientFactor', 'ambientTexture'
|
|
|
- switch ( khrMaterial.type ) {
|
|
|
-
|
|
|
- case 'commonBlinn' :
|
|
|
- case 'commonPhong' :
|
|
|
- keys.push( 'diffuseFactor', 'diffuseTexture', 'specularFactor', 'specularTexture', 'shininessFactor' );
|
|
|
- break;
|
|
|
-
|
|
|
- case 'commonLambert' :
|
|
|
- keys.push( 'diffuseFactor', 'diffuseTexture' );
|
|
|
- break;
|
|
|
-
|
|
|
- case 'commonConstant' :
|
|
|
- default :
|
|
|
- break;
|
|
|
-
|
|
|
- }
|
|
|
-
|
|
|
- var materialValues = {};
|
|
|
-
|
|
|
- keys.forEach( function ( v ) {
|
|
|
-
|
|
|
- if ( khrMaterial[ v ] !== undefined ) materialValues[ v ] = khrMaterial[ v ];
|
|
|
-
|
|
|
- } );
|
|
|
-
|
|
|
- if ( materialValues.diffuseFactor !== undefined ) {
|
|
|
-
|
|
|
- materialParams.color = new THREE.Color().fromArray( materialValues.diffuseFactor );
|
|
|
- materialParams.opacity = materialValues.diffuseFactor[ 3 ];
|
|
|
-
|
|
|
- }
|
|
|
-
|
|
|
- if ( materialValues.diffuseTexture !== undefined ) {
|
|
|
-
|
|
|
- pending.push( parser.assignTexture( materialParams, 'map', materialValues.diffuseTexture.index ) );
|
|
|
-
|
|
|
- }
|
|
|
-
|
|
|
- if ( materialValues.specularFactor !== undefined ) {
|
|
|
-
|
|
|
- materialParams.specular = new THREE.Color().fromArray( materialValues.specularFactor );
|
|
|
-
|
|
|
- }
|
|
|
-
|
|
|
- if ( materialValues.specularTexture !== undefined ) {
|
|
|
-
|
|
|
- pending.push( parser.assignTexture( materialParams, 'specularMap', materialValues.specularTexture.index ) );
|
|
|
-
|
|
|
- }
|
|
|
-
|
|
|
- if ( materialValues.shininessFactor !== undefined ) {
|
|
|
-
|
|
|
- materialParams.shininess = materialValues.shininessFactor;
|
|
|
-
|
|
|
- }
|
|
|
-
|
|
|
- return Promise.all( pending );
|
|
|
-
|
|
|
- };
|
|
|
-
|
|
|
/**
|
|
|
* Unlit Materials Extension (pending)
|
|
|
*
|