Ejemplo n.º 1
0
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