<!-- NEW6 — TEST 6 · THE FIVE SHORES · part 117 -->
umpMap = textures[ json.bumpMap ] || null;
		if ( json.bumpScale !== undefined ) this.bumpScale = json.bumpScale;

		if ( json.normalMap !== undefined ) this.normalMap = textures[ json.normalMap ] || null;
		if ( json.normalMapType !== undefined ) this.normalMapType = json.normalMapType;
		if ( json.normalScale !== undefined ) {

			let normalScale = json.normalScale;

			if ( Array.isArray( normalScale ) === false ) {

				// Blender exporter used to export a scalar. See #7459

				normalScale = [ normalScale, normalScale ];

			}

			this.normalScale = new Vector2().fromArray( normalScale );

		}

		if ( json.displacementMap !== undefined ) this.displacementMap = textures[ json.displacementMap ] || null;
		if ( json.displacementScale !== undefined ) this.displacementScale = json.displacementScale;
		if ( json.displacementBias !== undefined ) this.displacementBias = json.displacementBias;

		if ( json.roughnessMap !== undefined ) this.roughnessMap = textures[ json.roughnessMap ] || null;
		if ( json.metalnessMap !== undefined ) this.metalnessMap = textures[ json.metalnessMap ] || null;

		if ( json.emissiveMap !== undefined ) this.emissiveMap = textures[ json.emissiveMap ] || null;
		if ( json.emissiveIntensity !== undefined ) this.emissiveIntensity = json.emissiveIntensity;

		if ( json.specularMap !== undefined ) this.specularMap = textures[ json.specularMap ] || null;
		if ( json.specularIntensityMap !== undefined ) this.specularIntensityMap = textures[ json.specularIntensityMap ] || null;
		if ( json.specularColorMap !== undefined ) this.specularColorMap = textures[ json.specularColorMap ] || null;

		if ( json.envMap !== undefined ) this.envMap = textures[ json.envMap ] || null;
		if ( json.envMapRotation !== undefined ) this.envMapRotation.fromArray( json.envMapRotation );
		if ( json.envMapIntensity !== undefined ) this.envMapIntensity = json.envMapIntensity;

		if ( json.reflectivity !== undefined ) this.reflectivity = json.reflectivity;
		if ( json.refractionRatio !== undefined ) this.refractionRatio = json.refractionRatio;

		if ( json.lightMap !== undefined ) this.lightMap = textures[ json.lightMap ] || null;
		if ( json.lightMapIntensity !== undefined ) this.lightMapIntensity = json.lightMapIntensity;

		if ( json.aoMap !== undefined ) this.aoMap = textures[ json.aoMap ] || null;
		if ( json.aoMapIntensity !== undefined ) this.aoMapIntensity = json.aoMapIntensity;

		if ( json.gradientMap !== undefined ) this.gradientMap = textures[ json.gradientMap ] || null;

		if ( json.clearcoatMap !== undefined ) this.clearcoatMap = textures[ json.clearcoatMap ] || null;
		if ( json.clearcoatRoughnessMap !== undefined ) this.clearcoatRoughnessMap = textures[ json.clearcoatRoughnessMap ] || null;
		if ( json.clearcoatNormalMap !== undefined ) this.clearcoatNormalMap = textures[ json.clearcoatNormalMap ] || null;
		if ( json.clearcoatNormalScale !== undefined ) this.clearcoatNormalScale = new Vector2().fromArray( json.clearcoatNormalScale );

		if ( json.iridescenceMap !== undefined ) this.iridescenceMap = textures[ json.iridescenceMap ] || null;
		if ( json.iridescenceThicknessMap !== undefined ) this.iridescenceThicknessMap = textures[ json.iridescenceThicknessMap ] || null;

		if ( json.transmissionMap !== undefined ) this.transmissionMap = textures[ json.transmissionMap ] || null;
		if ( json.thicknessMap !== undefined ) this.thicknessMap = textures[ json.thicknessMap ] || null;

		if ( json.anisotropyMap !== undefined ) this.anisotropyMap = textures[ json.anisotropyMap ] || null;

		if ( json.sheenColorMap !== undefined ) this.sheenColorMap = textures[ json.sheenColorMap ] || null;
		if ( json.sheenRoughnessMap !== undefined ) this.sheenRoughnessMap = textures[ json.sheenRoughnessMap ] || null;

		return this;

	}

	/**
	 * Returns a new material with copied values from this instance.
	 *
	 * @return {Material} A clone of this instance.
	 */
	clone() {

		return new this.constructor().copy( this );

	}

	/**
	 * Copies the values of the given material to this instance.
	 *
	 * @param {Material} source - The material to copy.
	 * @return {Material} A reference to this instance.
	 */
	copy( source ) {

		this.name = source.name;

		this.blending = source.blending;
		this.side = source.side;
		this.vertexColors = source.vertexColors;

		this.opacity = source.opacity;
		this.transparent = source.transparent;

		this.blendSrc = source.blendSrc;
		this.blendDst = source.blendDst;
		this.blendEquation = source.blendEquation;
		this.blendSrcAlpha = source.blendSrcAlpha;
		this.blendDstAlpha = source.blendDstAlpha;
		this.blendEquationAlpha = source.blendEquationAlpha;
		this.blendColor.copy( source.blendColor );
		this.blendAlpha = source.blendAlpha;

		this.depthFunc = source.depthFunc;
		this.depthTest = source.depthTest;
		this.depthWrite = source.depthWrite;

		this.stencilWriteMask = source.stencilWriteMask;
		this.stencilFunc = source.stencilFunc;
		th