diff --git a/io_scene_fbx/export_fbx_bin.py b/io_scene_fbx/export_fbx_bin.py index 5d74c2886..65fc83b98 100644 --- a/io_scene_fbx/export_fbx_bin.py +++ b/io_scene_fbx/export_fbx_bin.py @@ -2929,25 +2929,20 @@ def fbx_data_from_scene(scene, depsgraph, settings): _objs_indices = {} for ma, (ma_key, ob_objs) in data_materials.items(): for ob_obj in ob_objs: + connections.append((b"OO", get_fbx_uuid_from_key(ma_key), ob_obj.fbx_uuid, None)) # Get index of this material for this object (or dupliobject). # Material indices for mesh faces are determined by their order in 'ma to ob' connections. # Only materials for meshes currently... # Note in case of dupliobjects a same me/ma idx will be generated several times... # Should not be an issue in practice, and it's needed in case we export duplis but not the original! if ob_obj.type not in BLENDER_OBJECT_TYPES_MESHLIKE: - connections.append((b"OO", get_fbx_uuid_from_key(ma_key), ob_obj.fbx_uuid, None)) continue _mesh_key, me, _free = data_meshes[ob_obj] - material_indices = mesh_material_indices.setdefault(me, {}) - if ma in material_indices: - # Material has already been found for this mesh. - # XXX If a mesh has multiple material slots with the same material, they are combined into one slot. - # Even if duplicate materials were exported without combining them into one slot, keeping duplicate - # materials separated does not appear to be common behaviour of external software when importing FBX. - continue - connections.append((b"OO", get_fbx_uuid_from_key(ma_key), ob_obj.fbx_uuid, None)) idx = _objs_indices[ob_obj] = _objs_indices.get(ob_obj, -1) + 1 - material_indices[ma] = idx + # XXX If a mesh has multiple material slots with the same material, they are combined into one slot. + # Even if duplicate materials were exported without combining them into one slot, keeping duplicate + # materials separated does not appear to be common behaviour of external software when importing FBX. + mesh_material_indices.setdefault(me, {})[ma] = idx del _objs_indices # Textures