code: function ( source ) {
  
              var target = source.clone();
  
              target.isGLTFSpecularGlossinessMaterial = true;
  
              var params = this.specularGlossinessParams;
  
              for ( var i = 0, il = params.length; i < il; i++ ) {
  
                  target[ params[ i ] ] = source[ params[ i ] ];
  
              }
  
              return target;
  
          }
docs: Clones a GLTFSpecularGlossinessMaterial instance. The ShaderMaterial.copy() method can
  copy only properties it knows about or inherits, and misses many properties that would
  normally be defined by MeshStandardMaterial.
  
  This method allows GLTFSpecularGlossinessMaterials to be cloned in the process of
  loading a glTF model, but cloning later (e.g. by the user) would require these changes
  AND also updating `.onBeforeRender` on the parent mesh.
  
  @param  {THREE.ShaderMaterial} source
  @return {THREE.ShaderMaterial}