self.winding_test = mesh.winding_test
self.smoothing = mesh.smoothing
self.use_uv = mesh.use_uv
- self.tangent_vecs = mesh.tangent_vecs
self.tangent_uvtex = mesh.tangent_uvtex
self.vertex_groups = mesh.vertex_groups
else:
self.lines = []
+ # Check if tangent vectors are needed
+ if mesh.tangent_vecs=='NO':
+ self.tangent_vecs = False
+ elif mesh.tangent_vecs=='YES':
+ self.tangent_vecs = True
+ elif mesh.tangent_vecs=='AUTO':
+ from .material import Material
+ self.tangent_vecs = False
+ for m in self.materials:
+ mat = Material(m)
+ if mat.type=="pbr":
+ normal_prop = next((p for p in mat.properties if p.tex_keyword=="normal_map"), None)
+ if normal_prop and normal_prop.texture:
+ self.tangent_vecs = True
+
self.vertex_sequence = []
def transform(self, matrix):
items=(("NONE", "None", "Ignore all UV coordinates"),
("UNIT0", "Unit 0", "Use UV coordinates for unit 0"),
("ALL", "All", "Use all UV coordinates")))
- bpy.types.Mesh.tangent_vecs = bpy.props.BoolProperty(name="Tangent vectors", description="Compute tangent vectors for vertices", default=False)
+ bpy.types.Mesh.tangent_vecs = bpy.props.EnumProperty(name="Tangent vectors", description="Compute tangent vectors for vertices", default="AUTO",
+ items=(("NO", "No", "Do not export tangent vectors"),
+ ("AUTO", "Auto", "Automatically determine the need for tangent vectors"),
+ ("YES", "Yes", "Always export tangent vectors")))
bpy.types.Mesh.tangent_uvtex = bpy.props.StringProperty(name="Tangent UV layer", description="UV layer to use as basis for tangent vectors", default="")
bpy.types.Object.compound = bpy.props.BoolProperty(name="Compound with parent", description="Join this object to its parent when exporting")