|
@@ -460,26 +460,26 @@ var GLTFLoader = ( function () {
|
|
|
*
|
|
|
* PR: https://github.com/KhronosGroup/glTF/pull/1163
|
|
|
*/
|
|
|
- function GLTFMaterialsUnlitExtension( json ) {
|
|
|
+ function GLTFMaterialsUnlitExtension() {
|
|
|
|
|
|
this.name = EXTENSIONS.KHR_MATERIALS_UNLIT;
|
|
|
|
|
|
}
|
|
|
|
|
|
- GLTFMaterialsUnlitExtension.prototype.getMaterialType = function ( material ) {
|
|
|
+ GLTFMaterialsUnlitExtension.prototype.getMaterialType = function () {
|
|
|
|
|
|
return MeshBasicMaterial;
|
|
|
|
|
|
};
|
|
|
|
|
|
- GLTFMaterialsUnlitExtension.prototype.extendParams = function ( materialParams, material, parser ) {
|
|
|
+ GLTFMaterialsUnlitExtension.prototype.extendParams = function ( materialParams, materialDef, parser ) {
|
|
|
|
|
|
var pending = [];
|
|
|
|
|
|
materialParams.color = new Color( 1.0, 1.0, 1.0 );
|
|
|
materialParams.opacity = 1.0;
|
|
|
|
|
|
- var metallicRoughness = material.pbrMetallicRoughness;
|
|
|
+ var metallicRoughness = materialDef.pbrMetallicRoughness;
|
|
|
|
|
|
if ( metallicRoughness ) {
|
|
|
|
|
@@ -655,7 +655,7 @@ var GLTFLoader = ( function () {
|
|
|
*
|
|
|
* Specification:
|
|
|
*/
|
|
|
- function GLTFTextureTransformExtension( json ) {
|
|
|
+ function GLTFTextureTransformExtension() {
|
|
|
|
|
|
this.name = EXTENSIONS.KHR_TEXTURE_TRANSFORM;
|
|
|
|
|
@@ -738,9 +738,9 @@ var GLTFLoader = ( function () {
|
|
|
|
|
|
},
|
|
|
|
|
|
- extendParams: function ( params, material, parser ) {
|
|
|
+ extendParams: function ( materialParams, materialDef, parser ) {
|
|
|
|
|
|
- var pbrSpecularGlossiness = material.extensions[ this.name ];
|
|
|
+ var pbrSpecularGlossiness = materialDef.extensions[ this.name ];
|
|
|
|
|
|
var shader = ShaderLib[ 'standard' ];
|
|
|
|
|
@@ -803,13 +803,13 @@ var GLTFLoader = ( function () {
|
|
|
uniforms.specularMap = { value: null };
|
|
|
uniforms.glossinessMap = { value: null };
|
|
|
|
|
|
- params.vertexShader = shader.vertexShader;
|
|
|
- params.fragmentShader = fragmentShader;
|
|
|
- params.uniforms = uniforms;
|
|
|
- params.defines = { 'STANDARD': '' };
|
|
|
+ materialParams.vertexShader = shader.vertexShader;
|
|
|
+ materialParams.fragmentShader = fragmentShader;
|
|
|
+ materialParams.uniforms = uniforms;
|
|
|
+ materialParams.defines = { 'STANDARD': '' };
|
|
|
|
|
|
- params.color = new Color( 1.0, 1.0, 1.0 );
|
|
|
- params.opacity = 1.0;
|
|
|
+ materialParams.color = new Color( 1.0, 1.0, 1.0 );
|
|
|
+ materialParams.opacity = 1.0;
|
|
|
|
|
|
var pending = [];
|
|
|
|
|
@@ -817,32 +817,32 @@ var GLTFLoader = ( function () {
|
|
|
|
|
|
var array = pbrSpecularGlossiness.diffuseFactor;
|
|
|
|
|
|
- params.color.fromArray( array );
|
|
|
- params.opacity = array[ 3 ];
|
|
|
+ materialParams.color.fromArray( array );
|
|
|
+ materialParams.opacity = array[ 3 ];
|
|
|
|
|
|
}
|
|
|
|
|
|
if ( pbrSpecularGlossiness.diffuseTexture !== undefined ) {
|
|
|
|
|
|
- pending.push( parser.assignTexture( params, 'map', pbrSpecularGlossiness.diffuseTexture ) );
|
|
|
+ pending.push( parser.assignTexture( materialParams, 'map', pbrSpecularGlossiness.diffuseTexture ) );
|
|
|
|
|
|
}
|
|
|
|
|
|
- params.emissive = new Color( 0.0, 0.0, 0.0 );
|
|
|
- params.glossiness = pbrSpecularGlossiness.glossinessFactor !== undefined ? pbrSpecularGlossiness.glossinessFactor : 1.0;
|
|
|
- params.specular = new Color( 1.0, 1.0, 1.0 );
|
|
|
+ materialParams.emissive = new Color( 0.0, 0.0, 0.0 );
|
|
|
+ materialParams.glossiness = pbrSpecularGlossiness.glossinessFactor !== undefined ? pbrSpecularGlossiness.glossinessFactor : 1.0;
|
|
|
+ materialParams.specular = new Color( 1.0, 1.0, 1.0 );
|
|
|
|
|
|
if ( Array.isArray( pbrSpecularGlossiness.specularFactor ) ) {
|
|
|
|
|
|
- params.specular.fromArray( pbrSpecularGlossiness.specularFactor );
|
|
|
+ materialParams.specular.fromArray( pbrSpecularGlossiness.specularFactor );
|
|
|
|
|
|
}
|
|
|
|
|
|
if ( pbrSpecularGlossiness.specularGlossinessTexture !== undefined ) {
|
|
|
|
|
|
var specGlossMapDef = pbrSpecularGlossiness.specularGlossinessTexture;
|
|
|
- pending.push( parser.assignTexture( params, 'glossinessMap', specGlossMapDef ) );
|
|
|
- pending.push( parser.assignTexture( params, 'specularMap', specGlossMapDef ) );
|
|
|
+ pending.push( parser.assignTexture( materialParams, 'glossinessMap', specGlossMapDef ) );
|
|
|
+ pending.push( parser.assignTexture( materialParams, 'specularMap', specGlossMapDef ) );
|
|
|
|
|
|
}
|
|
|
|
|
@@ -885,6 +885,7 @@ var GLTFLoader = ( function () {
|
|
|
material.bumpScale = 1;
|
|
|
|
|
|
material.normalMap = params.normalMap === undefined ? null : params.normalMap;
|
|
|
+
|
|
|
if ( params.normalScale ) material.normalScale = params.normalScale;
|
|
|
|
|
|
material.displacementMap = null;
|
|
@@ -2208,15 +2209,19 @@ var GLTFLoader = ( function () {
|
|
|
|
|
|
return this.getDependency( 'texture', mapDef.index ).then( function ( texture ) {
|
|
|
|
|
|
- switch ( mapName ) {
|
|
|
+ if ( ! texture.isCompressedTexture ) {
|
|
|
|
|
|
- case 'aoMap':
|
|
|
- case 'emissiveMap':
|
|
|
- case 'metalnessMap':
|
|
|
- case 'normalMap':
|
|
|
- case 'roughnessMap':
|
|
|
- texture.format = RGBFormat;
|
|
|
- break;
|
|
|
+ switch ( mapName ) {
|
|
|
+
|
|
|
+ case 'aoMap':
|
|
|
+ case 'emissiveMap':
|
|
|
+ case 'metalnessMap':
|
|
|
+ case 'normalMap':
|
|
|
+ case 'roughnessMap':
|
|
|
+ texture.format = RGBFormat;
|
|
|
+ break;
|
|
|
+
|
|
|
+ }
|
|
|
|
|
|
}
|
|
|
|
|
@@ -2377,13 +2382,13 @@ var GLTFLoader = ( function () {
|
|
|
if ( materialExtensions[ EXTENSIONS.KHR_MATERIALS_PBR_SPECULAR_GLOSSINESS ] ) {
|
|
|
|
|
|
var sgExtension = extensions[ EXTENSIONS.KHR_MATERIALS_PBR_SPECULAR_GLOSSINESS ];
|
|
|
- materialType = sgExtension.getMaterialType( materialDef );
|
|
|
+ materialType = sgExtension.getMaterialType();
|
|
|
pending.push( sgExtension.extendParams( materialParams, materialDef, parser ) );
|
|
|
|
|
|
} else if ( materialExtensions[ EXTENSIONS.KHR_MATERIALS_UNLIT ] ) {
|
|
|
|
|
|
var kmuExtension = extensions[ EXTENSIONS.KHR_MATERIALS_UNLIT ];
|
|
|
- materialType = kmuExtension.getMaterialType( materialDef );
|
|
|
+ materialType = kmuExtension.getMaterialType();
|
|
|
pending.push( kmuExtension.extendParams( materialParams, materialDef, parser ) );
|
|
|
|
|
|
} else {
|