فهرست منبع

Added handling of null materials (coming from Blender exporter when mesh has no assigned material).

alteredq 15 سال پیش
والد
کامیت
29be1febb0
1فایلهای تغییر یافته به همراه8 افزوده شده و 8 حذف شده
  1. 8 8
      utils/exporters/convert_obj_threejs.py

+ 8 - 8
utils/exporters/convert_obj_threejs.py

@@ -754,24 +754,24 @@ def convert(infile, outfile):
         uv_string = "\n".join([generate_uv(f, uvs) for f in faces])
             
 
-    mtl = {}
+    # default materials with debug colors for when
+    # there is no specified MTL, if loading failed
+    # or there were null materials
+    mtl = generate_mtl(materials)
+    
     if mtllib:
         # create full pathname for MTL (included from OBJ)
         path = os.path.dirname(infile)
         fname = os.path.join(path, mtllib)
         
         if file_exists(fname):
-            mtl = parse_mtl(fname)
+            # override default materials with real ones from MTL
+            # (where they exist, otherwise keep defaults)
+            mtl.update(parse_mtl(fname))
         
         else:
             print "Couldn't find [%s]" % fname
     
-    if not mtl:
-        # if there is no specified MTL or if loading failed, 
-        # generate default materials with debug colors
-        mtl = generate_mtl(materials)
-        
-    
     text = TEMPLATE_FILE % {
     "name"      : get_name(outfile),
     "vertices"  : "\n".join([generate_vertex(v) for v in vertices]),