Преглед изворни кода

convert_obj_three: clean up

leroyron пре 9 година
родитељ
комит
c465298ea1
1 измењених фајлова са 18 додато и 37 уклоњено
  1. 18 37
      utils/converters/obj/convert_obj_three_for_python3.py

+ 18 - 37
utils/converters/obj/convert_obj_three_for_python3.py

@@ -1,15 +1,4 @@
-"""
-------
-Original Author - Formerly Python 2 version / file: convert_obj_three.py
-------
-AlteredQualia http://alteredqualia.com
-
-------
-Upgraded - Python 3 version / file: convert_obj_three_for_python3.py
-------
-Leroy T
-
-Convert Wavefront OBJ / MTL files into Three.js (JSON model version, to be used with ascii / binary loader)
+"""Convert Wavefront OBJ / MTL files into Three.js (JSON model version, to be used with ascii / binary loader)
 
 -------------------------
 How to use this converter
@@ -26,7 +15,6 @@ Notes:
         -a center|centerxz|top|bottom|none model alignment
         -s smooth|flat			smooth = export vertex normals, flat = no normals (face normals computed in loader)
         -t ascii|binary			export ascii or binary format (ascii has more features, binary just supports vertices, faces, normals, uvs and materials)
-        -d invert|normal		invert transparency
         -b						bake material colors into face colors
         -x 10.0                 scale and truncate
         -f 2                    morph frame sampling step
@@ -34,7 +22,6 @@ Notes:
     - by default:
         use smooth shading (if there were vertex normals in the original model)
         will be in ASCII format
-        original model is assumed to use non-inverted transparency / dissolve (0.0 fully transparent, 1.0 fully opaque)
         no face colors baking
         no scale and truncate
         morph frame step = 1 (all files will be processed)
@@ -126,6 +113,11 @@ How to get proper OBJ + MTL files with Blender
 
         - for WebGL, textures must be power of 2 sized
 
+------
+Author
+------
+AlteredQualia http://alteredqualia.com
+
 """
 
 import fileinput
@@ -144,7 +136,6 @@ import glob
 ALIGN = "none"        	# center centerxz bottom top none
 SHADING = "smooth"      # smooth flat
 TYPE = "ascii"          # ascii binary
-TRANSPARENCY = "normal" # normal invert
 
 TRUNCATE = False
 SCALE = 1.0
@@ -399,11 +390,6 @@ def parse_mtl(fname):
             if chunks[0] == "map_Kd" and len(chunks) == 2:
                 materials[identifier]["mapDiffuse"] = texture_relative_path(chunks[1])
 
-            # Ambient texture
-            # map_Ka texture_ambient.jpg
-            if chunks[0] == "map_Ka" and len(chunks) == 2:
-                materials[identifier]["mapAmbient"] = texture_relative_path(chunks[1])
-
             # Specular texture
             # map_Ks texture_specular.jpg
             if chunks[0] == "map_Ks" and len(chunks) == 2:
@@ -429,11 +415,6 @@ def parse_mtl(fname):
             if chunks[0] == "Kd" and len(chunks) == 4:
                 materials[identifier]["colorDiffuse"] = [float(chunks[1]), float(chunks[2]), float(chunks[3])]
 
-            # Ambient color
-            # Ka 1.000 1.000 1.000
-            if chunks[0] == "Ka" and len(chunks) == 4:
-                materials[identifier]["colorAmbient"] = [float(chunks[1]), float(chunks[2]), float(chunks[3])]
-
             # Specular color
             # Ks 1.000 1.000 1.000
             if chunks[0] == "Ks" and len(chunks) == 4:
@@ -444,14 +425,19 @@ def parse_mtl(fname):
             if chunks[0] == "Ns" and len(chunks) == 2:
                 materials[identifier]["specularCoef"] = float(chunks[1])
 
+            # Dissolves
+            # d 0.9
+            if chunks[0] == "d" and len(chunks) == 2:
+                materials[identifier]["opacity"] = float(chunks[1])
+                if materials[identifier]["opacity"] < 1.0:
+                    materials[identifier]["transparent"] = True
+
             # Transparency
-            # Tr 0.9 or d 0.9
-            if (chunks[0] == "Tr" or chunks[0] == "d") and len(chunks) == 2:
-                materials[identifier]["transparent"] = True
-                if TRANSPARENCY == "invert":
-                    materials[identifier]["opacity"] = float(chunks[1])
-                else:
-                    materials[identifier]["opacity"] = 1.0 - float(chunks[1])
+            # Tr 0.1
+            if chunks[0] == "Tr" and len(chunks) == 2:
+                materials[identifier]["opacity"] = 1.0 - float(chunks[1])
+                if materials[identifier]["opacity"] < 1.0:
+                    materials[identifier]["transparent"] = True
 
             # Optical density
             # Ni 1.0
@@ -1590,10 +1576,6 @@ if __name__ == "__main__":
             if a in ("binary", "ascii"):
                 TYPE = a
 
-        elif o in ("-d", "--dissolve"):
-            if a in ("normal", "invert"):
-                TRANSPARENCY = a
-
         elif o in ("-b", "--bakecolors"):
             BAKE_COLORS = True
 
@@ -1620,4 +1602,3 @@ if __name__ == "__main__":
         convert_ascii(infile, morphfiles, colorfiles, outfile)
     elif TYPE == "binary":
         convert_binary(infile, outfile)
-