Ver Fonte

convert_obj_three: clean up

leroyron há 9 anos atrás
pai
commit
c465298ea1
1 ficheiros alterados com 18 adições e 37 exclusões
  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
 How to use this converter
@@ -26,7 +15,6 @@ Notes:
         -a center|centerxz|top|bottom|none model alignment
         -a center|centerxz|top|bottom|none model alignment
         -s smooth|flat			smooth = export vertex normals, flat = no normals (face normals computed in loader)
         -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)
         -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
         -b						bake material colors into face colors
         -x 10.0                 scale and truncate
         -x 10.0                 scale and truncate
         -f 2                    morph frame sampling step
         -f 2                    morph frame sampling step
@@ -34,7 +22,6 @@ Notes:
     - by default:
     - by default:
         use smooth shading (if there were vertex normals in the original model)
         use smooth shading (if there were vertex normals in the original model)
         will be in ASCII format
         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 face colors baking
         no scale and truncate
         no scale and truncate
         morph frame step = 1 (all files will be processed)
         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
         - for WebGL, textures must be power of 2 sized
 
 
+------
+Author
+------
+AlteredQualia http://alteredqualia.com
+
 """
 """
 
 
 import fileinput
 import fileinput
@@ -144,7 +136,6 @@ import glob
 ALIGN = "none"        	# center centerxz bottom top none
 ALIGN = "none"        	# center centerxz bottom top none
 SHADING = "smooth"      # smooth flat
 SHADING = "smooth"      # smooth flat
 TYPE = "ascii"          # ascii binary
 TYPE = "ascii"          # ascii binary
-TRANSPARENCY = "normal" # normal invert
 
 
 TRUNCATE = False
 TRUNCATE = False
 SCALE = 1.0
 SCALE = 1.0
@@ -399,11 +390,6 @@ def parse_mtl(fname):
             if chunks[0] == "map_Kd" and len(chunks) == 2:
             if chunks[0] == "map_Kd" and len(chunks) == 2:
                 materials[identifier]["mapDiffuse"] = texture_relative_path(chunks[1])
                 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
             # Specular texture
             # map_Ks texture_specular.jpg
             # map_Ks texture_specular.jpg
             if chunks[0] == "map_Ks" and len(chunks) == 2:
             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:
             if chunks[0] == "Kd" and len(chunks) == 4:
                 materials[identifier]["colorDiffuse"] = [float(chunks[1]), float(chunks[2]), float(chunks[3])]
                 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
             # Specular color
             # Ks 1.000 1.000 1.000
             # Ks 1.000 1.000 1.000
             if chunks[0] == "Ks" and len(chunks) == 4:
             if chunks[0] == "Ks" and len(chunks) == 4:
@@ -444,14 +425,19 @@ def parse_mtl(fname):
             if chunks[0] == "Ns" and len(chunks) == 2:
             if chunks[0] == "Ns" and len(chunks) == 2:
                 materials[identifier]["specularCoef"] = float(chunks[1])
                 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
             # 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
             # Optical density
             # Ni 1.0
             # Ni 1.0
@@ -1590,10 +1576,6 @@ if __name__ == "__main__":
             if a in ("binary", "ascii"):
             if a in ("binary", "ascii"):
                 TYPE = a
                 TYPE = a
 
 
-        elif o in ("-d", "--dissolve"):
-            if a in ("normal", "invert"):
-                TRANSPARENCY = a
-
         elif o in ("-b", "--bakecolors"):
         elif o in ("-b", "--bakecolors"):
             BAKE_COLORS = True
             BAKE_COLORS = True
 
 
@@ -1620,4 +1602,3 @@ if __name__ == "__main__":
         convert_ascii(infile, morphfiles, colorfiles, outfile)
         convert_ascii(infile, morphfiles, colorfiles, outfile)
     elif TYPE == "binary":
     elif TYPE == "binary":
         convert_binary(infile, outfile)
         convert_binary(infile, outfile)
-