# How come I need to manually correct .mtl file?

Can somebody please explain me more about .mtl file? I understand it describes how textures should be mapped back on the object, but here's what I don't understand: I have an object with materials. Materials are mainly textures connected into principled bsdf node, no any additional nodes in between. I export .obj together with .mtl, everything looks ok (at least to me). Below is a part with 1st material of .mtl file.

When the exported files are uploaded to sketchfab - I get the same model look I had in Blender (all looks identical and correct). But when I open the same .obj with Windows 3D viewer - there are some issues with roughness map (looks like viewer doesn't even see it). When this same file is opened with another viewer (someone asked me to make this model and opened it in their viewer, so I can not really tell what viewer it is), it also have issues with textures. Opacity and Base color are mapped, but again something wrong with others, roughness, normal and emission. They say that Ns parameter should be deleted from .mtl file, that Ks should be set to 0, illum set to 1... and some other recommendations.

So my question(s) is: is this normal that I have to manually change .mtl file? I would expect that there is a standard and Blender exports it in a way that every viewer should understand? Or maybe there are some settings I should change?

• The mtl format has a lot of version. Blender may not use the most common and newest one. The material itself is very complex, even Cycles and BI didn't match together. Blender may adopt it own format to deal with .mtl so do other program – HikariTW Nov 17 '19 at 14:56

The .mtl file is following the specification and is therefore correct. However some viewers do not implement the specification in its entirety or may not even implement it correctly. Therefore it may be necessary to adjust the .mtl file to make it work properly. However this is not because the .mtl is wrong, but because the viewer doesn't support the Ns, Ks and illum statements.

Ns exponent

Specifies the specular exponent for the current material. This defines the focus of the specular highlight.

"exponent" is the value for the specular exponent. A high exponent results in a tight, concentrated highlight. Ns values normally range from 0 to 1000.

Ks r g b

The Ks statement specifies the specular reflectivity using RGB values.

"r g b" are the values for the red, green, and blue components of the atmosphere. The g and b arguments are optional. If only r is specified, then g, and b are assumed to be equal to r. The r g b values are normally in the range of 0.0 to 1.0. Values outside this range increase or decrease the relectivity accordingly.

illum illum_#

The "illum" statement specifies the illumination model to use in the material. Illumination models are mathematical equations that represent various material lighting and shading effects.

"illum_#" can be a number from 0 to 10. The illumination models are summarized below; for complete descriptions see "Illumination models" on page 5-30.

Illumination Properties that are turned on in the Property Editor

0 Color on and Ambient off

1 Color on and Ambient on

2 Highlight on

3 Reflection on and Ray trace on

4 Transparency: Glass on Reflection: Ray trace on

5 Reflection: Fresnel on and Ray trace on

6 Transparency: Refraction on Reflection: Fresnel off and Ray trace on

7 Transparency: Refraction on Reflection: Fresnel on and Ray trace on

8 Reflection on and Ray trace off

9 Transparency: Glass on Reflection: Ray trace off

10 Casts shadows onto invisible surfaces