diff --git a/io_scene_x3d/export_x3d.py b/io_scene_x3d/export_x3d.py index 4157878de51abbc72bb4dfcc58c50bafea9ca913..aae369ed16c9d12738d3812dbe4ba648ab5f0ba1 100644 --- a/io_scene_x3d/export_x3d.py +++ b/io_scene_x3d/export_x3d.py @@ -378,7 +378,11 @@ class x3d_class: for i, (material_index, image) in enumerate(zip(mesh_faces_materials, mesh_faces_image)): face_groups[material_index, image].append(i) - for (material_index, image), face_group in face_groups.items(): + # same as face_groups.items() but sorted so we can get predictable output. + face_groups_items = list(face_groups.items()) + face_groups_items.sort(key=lambda m: (m[0][0], getattr(m[0][1], "name", ""))) + + for (material_index, image), face_group in face_groups_items: # face_groups.items() if face_group: material = mesh_materials[material_index]