[page:Loader] →

# [name]

A loader for loading an `.mtl` resource, used internally by [page:OBJLoader].
The Material Template Library format (MTL) or .MTL File Format is a companion file format to .OBJ that describes surface shading (material) properties of objects within one or more .OBJ files.

## Import

[name] is an add-on, and must be imported explicitly. See [link:#manual/introduction/Installation Installation / Addons].

`import { MTLLoader } from 'three/addons/loaders/MTLLoader.js';`

## Constructor

### [name]( [param:LoadingManager loadingManager] )

[page:LoadingManager loadingManager] — LoadingManager to use. Defaults to [page:DefaultLoadingManager DefaultLoadingManager]

Creates a new [name].

## Properties

See the base [page:Loader] class for common properties.

## Methods

See the base [page:Loader] class for common methods.

### [method:undefined load]( [param:String url], [param:Function onLoad], [param:Function onProgress], [param:Function onError] )

[page:String url] — A string containing the path/URL of the `.mtl` file.
[page:Function onLoad] — (optional) A function to be called after the loading is successfully completed. The function receives the loaded [page:MTLLoaderMaterialCreator MTLLoader.MaterialCreator] instance.
[page:Function onProgress] — (optional) A function to be called while the loading is in progress. The argument will be the XMLHttpRequest instance, which contains [page:Integer total] and [page:Integer loaded] bytes. If the server does not set the Content-Length header; .[page:Integer total] will be 0.
[page:Function onError] — (optional) A function to be called if an error occurs during loading. The function receives the error as an argument.

Begin loading from url and return the loaded material.

### [method:this setMaterialOptions]( [param:Object options] )

[page:Object options] — required

- side: Which side to apply the material. THREE.FrontSide (default), THREE.BackSide, THREE.DoubleSide
- wrap: What type of wrapping to apply for textures. THREE.RepeatWrapping (default), THREE.ClampToEdgeWrapping, THREE.MirroredRepeatWrapping
- normalizeRGB: RGBs need to be normalized to 0-1 from 0-255. Default: false, assumed to be already normalized
- ignoreZeroRGBs: Ignore values of RGBs (Ka,Kd,Ks) that are all 0's. Default: false
- invertTrProperty: Use values 1 of Tr field for fully opaque. This option is useful for obj exported from 3ds MAX, vcglib or meshlab. Default: false

Set of options on how to construct the materials

### [method:MTLLoaderMaterialCreator parse]( [param:String text, param:String path] )

[page:String text] — The textual `mtl` structure to parse. [page:String path] — The path to the MTL file.

Parse a `mtl` text structure and return a [page:MTLLoaderMaterialCreator MTLLoader.MaterialCreator] instance.

## Source

[link:https://github.com/mrdoob/three.js/blob/master/examples/jsm/loaders/[name].js examples/jsm/loaders/[name].js]