
MTL文件在每一个“newmtl”材质定义中,都支持指定纹理贴图。纹理贴图和OBJ文件里定义的纹理坐标共同构建了模型的纹理映射。纹理映射能灵活地修改相关材质参数,让模型表面表现得更丰富。OBJ模型的颜色信息由附属的MTL文件存储和表达。MTL文件在OBJ文件的初始位置被指定,它里面定义了彩色模型相关的很多材质信息,包括模型中相应面片的颜色。构建材质类Material的结构是这样的:它包含材质自身的名称、固有色、纹理名以及其他相关的材质和颜色信息。同时用两个整型变量来标识应用该材质的面片索引起始和终止位置。

OBJ文件中有“mtllib”材质定义时,根据当前文件路径和材质库名,就能找到MTL文件路径。然后到相应的MTL文件里提取指定的材质信息,建立Material类的对象进行存储。如果在之后的面片定义前有“usemtl”应用材质,就可以根据材质名称匹配找到相应材质对象,更新里面的面片索引信息,或者获取其中的颜色信息,用于面片处理。文章介绍了所选三维模型的数据接口——OBJ文件格式的主要构成,说明了它的组织形式以及颜色表达功能的实现方式。OBJ文件以索引方式存储模型的几何数据,消除了STL文件在面片定义中的冗余数据,还隐含了模型的点面关系和面片之间的邻接关系。在颜色表达方面,OBJ模型有面片固有色和纹理贴图两种方式,都能保留彩色模型的颜色信息。