def load_material_library(file_name): library = MaterialLibrary() material = None print('-- Loading material library {}'.format(file_name)) mtlfile = open(file_name) for line in mtlfile: fields = line.split() if len(fields) != 0: if fields[0] == 'newmtl': if material is not None: library.add_material(material) material = Material(fields[1]) print('Found material definition: {}'.format(material.name)) elif fields[0] == 'Ka': material.Ka = np.array(fields[1:], 'f') elif fields[0] == 'Kd': material.Kd = np.array(fields[1:], 'f') elif fields[0] == 'Ks': material.Ks = np.array(fields[1:], 'f') elif fields[0] == 'Ns': material.Ns = float(fields[1]) elif fields[0] == 'd': material.d = float(fields[1]) elif fields[0] == 'Tr': material.d = 1.0 - float(fields[1]) elif fields[0] == 'illum': material.illumination = int(fields[1]) elif fields[0] == 'map_Kd': material.texture = fields[1] library.add_material(material) print('- Done, loaded {} materials'.format(len(library.materials))) return library