|
@@ -90,13 +90,21 @@ class Object(base_classes.BaseNode):
|
|
|
|
|
|
if self.options.get(constants.MATERIALS):
|
|
|
logger.info("Parsing materials for %s", self.node)
|
|
|
- material_name = api.object.material(self.node)
|
|
|
- if material_name:
|
|
|
- logger.info("Material found %s", material_name)
|
|
|
- material_inst = self.scene.material(material_name)
|
|
|
- self[constants.MATERIAL] = material_inst[constants.UUID]
|
|
|
+
|
|
|
+
|
|
|
+ material_names = api.object.material(self.node) #manthrax: changes for multimaterial start here
|
|
|
+ if material_names:
|
|
|
+ logger.info("Got material names for this object:",material_names);
|
|
|
+ materialArray = [self.scene.material(objname)[constants.UUID] for objname in material_names]
|
|
|
+ if len(materialArray) == 0: # If no materials.. dont export a material entry
|
|
|
+ materialArray = None
|
|
|
+ elif len(materialArray) == 1: # If only one material, export material UUID singly, not as array
|
|
|
+ materialArray = materialArray[0]
|
|
|
+ # else export array of material uuids
|
|
|
+ self[constants.MATERIAL] = materialArray
|
|
|
+ logger.info("materials:",self[constants.MATERIAL]);
|
|
|
else:
|
|
|
- logger.info("%s has no materials", self.node)
|
|
|
+ logger.info("%s has no materials", self.node) #manthrax: end multimaterial
|
|
|
|
|
|
# TODO (abelnation): handle Area lights
|
|
|
casts_shadow = (constants.MESH,
|