Export tangents only when needed

This commit is contained in:
Lubos Lenco 2015-11-30 22:58:07 +01:00
parent 71d5c14a13
commit c01456ee3d
2 changed files with 22 additions and 5 deletions

View file

@ -1655,8 +1655,13 @@ class LueExporter(bpy.types.Operator, ExportHelper):
om.index_arrays.append(ia)
# Export tangents
# TODO: check for proper texture coords and if normal map is applied
if (len(exportMesh.uv_textures) > 0):
# TODO: check for texture coords
export_tangents = False
for m in exportMesh.materials:
if m.export_tangents == True:
export_tangents = True
break
if (export_tangents and len(exportMesh.uv_textures) > 0):
# exportMesh.calc_tangents() # TODO: use to export tangents
ia = om.index_arrays[0].values
posa = pa.values
@ -1990,6 +1995,17 @@ class LueExporter(bpy.types.Operator, ExportHelper):
o.contexts.append(c)
# Whether objects should export tangent data
if material.export_tangents != const6.bool:
material.export_tangents = const6.bool
# Delete geometry caches
for ob in bpy.data.objects:
if type(ob.data) == bpy.types.Mesh:
for m in ob.data.materials:
if m.name == material.name:
ob.geometry_cached = False
break
#intensity = material.specular_intensity
#specular = [material.specular_color[0] * intensity, material.specular_color[1] * intensity, material.specular_color[2] * intensity]
@ -2087,14 +2103,14 @@ class LueExporter(bpy.types.Operator, ExportHelper):
if (not object.parent):
self.ExportNode(object, scene)
self.output.material_resources = []
self.ExportMaterials()
self.output.geometry_resources = [];
self.output.light_resources = [];
self.output.camera_resources = [];
self.ExportObjects(scene)
self.output.material_resources = []
self.ExportMaterials()
if (self.restoreFrame):
scene.frame_set(originalFrame, originalSubframe)

View file

@ -151,6 +151,7 @@ def initObjectProperties():
bpy.types.Object.traitlist_index = bpy.props.IntProperty(name = "Index for my_list", default = 0)
bpy.types.Object.geometry_cached = bpy.props.BoolProperty(name="Geometry cached", default=False)
bpy.types.Material.export_tangents = bpy.props.BoolProperty(name="Export tangents", default=False)
bpy.app.handlers.scene_update_post.append(cb_scene_update)
#bpy.app.handlers.scene_update_post.remove(cb_scene_update)