readMaterialEntry( data, path ) {

			const chunk = this.readChunk( data );
			let next = this.nextChunk( data, chunk );
			const material = new THREE.MeshPhongMaterial();

			while ( next !== 0 ) {

				if ( next === MAT_NAME ) {

					material.name = this.readString( data, 64 );
					this.debugMessage( '   Name: ' + material.name );

				} else if ( next === MAT_WIRE ) {

					this.debugMessage( '   Wireframe' );
					material.wireframe = true;

				} else if ( next === MAT_WIRE_SIZE ) {

					const value = this.readByte( data );
					material.wireframeLinewidth = value;
					this.debugMessage( '   Wireframe Thickness: ' + value );

				} else if ( next === MAT_TWO_SIDE ) {

					material.side = THREE.DoubleSide;
					this.debugMessage( '   DoubleSided' );

				} else if ( next === MAT_ADDITIVE ) {

					this.debugMessage( '   Additive Blending' );
					material.blending = THREE.AdditiveBlending;

				} else if ( next === MAT_DIFFUSE ) {

					this.debugMessage( '   Diffuse THREE.Color' );
					material.color = this.readColor( data );

				} else if ( next === MAT_SPECULAR ) {

					this.debugMessage( '   Specular THREE.Color' );
					material.specular = this.readColor( data );

				} else if ( next === MAT_AMBIENT ) {

					this.debugMessage( '   Ambient color' );
					material.color = this.readColor( data );

				} else if ( next === MAT_SHININESS ) {

					const shininess = this.readPercentage( data );
					material.shininess = shininess * 100;
					this.debugMessage( '   Shininess : ' + shininess );

				} else if ( next === MAT_TRANSPARENCY ) {

					const transparency = this.readPercentage( data );
					material.opacity = 1 - transparency;
					this.debugMessage( '  Transparency : ' + transparency );
					material.transparent = material.opacity < 1 ? true : false;

				} else if ( next === MAT_TEXMAP ) {

					this.debugMessage( '   ColorMap' );
					this.resetPosition( data );
					material.map = this.readMap( data, path );

				} else if ( next === MAT_BUMPMAP ) {

					this.debugMessage( '   BumpMap' );
					this.resetPosition( data );
					material.bumpMap = this.readMap( data, path );

				} else if ( next === MAT_OPACMAP ) {

					this.debugMessage( '   OpacityMap' );
					this.resetPosition( data );
					material.alphaMap = this.readMap( data, path );

				} else if ( next === MAT_SPECMAP ) {

					this.debugMessage( '   SpecularMap' );
					this.resetPosition( data );
					material.specularMap = this.readMap( data, path );

				} else {

					this.debugMessage( '   Unknown material chunk: ' + next.toString( 16 ) );

				}

				next = this.nextChunk( data, chunk );

			}

			this.endChunk( chunk );
			this.materials[ material.name ] = material;

		}
Read material data chunk and add it to the material list.

@method readMaterialEntry
@param {Dataview} data Dataview in use.
@param {String} path Path for external resources.