weixin_39528219 2020-11-21 17:45 采纳率: 0%
浏览 0

Export: when linking meshes with the same name, exporter can't tell them apart

Found in #1210.

If you have two meshes with the same name (from linking), the exporter thinks they are the same. Like I said in #1210, the library parameter to gather_mesh should presumably distinguish these since they have different mesh.librarys, but the library parameter comes from object.library, not mesh.library.

To Reproduce 1. Create an empty .blend 2. Add > Cube 3. Rename the mesh "Cube" to "M" 4. Save as A.blend 5. Create an empty .blend 6. Add > UVSphere 7. Rename the mesh "Sphere" to "M" 8. File > Link and select A.blend/Mesh/M 9. Export glTF

out

该提问来源于开源项目:KhronosGroup/glTF-Blender-IO

  • 写回答

5条回答 默认 最新

  • weixin_39528219 2020-11-21 17:45
    关注

    Using the library from blender_object.data fixes this, but I don't know if it breaks anything else.

    Patch
    `diff
    diff --git a/addons/io_scene_gltf2/blender/exp/gltf2_blender_gather_nodes.py b/addons/io_scene_gltf2/blender/exp/gltf2_blender_gather_nodes.py
    index 1a1abcd..2f786d2 100644
    --- a/addons/io_scene_gltf2/blender/exp/gltf2_blender_gather_nodes.py
    +++ b/addons/io_scene_gltf2/blender/exp/gltf2_blender_gather_nodes.py
    @@ -326,7 +326,7 @@ def __gather_mesh(blender_object, library, export_settings):
                     blender_object_for_skined_data = blender_object
    
         result = gltf2_blender_gather_mesh.gather_mesh(blender_mesh,
    -                                                   library,
    +                                                   blender_object.data.library.name if blender_object.data.library else None,
                                                        blender_object_for_skined_data,
                                                        vertex_groups,
                                                        modifiers,
    @@ -368,7 +368,7 @@ def __gather_mesh_from_nonmesh(blender_object, library, export_settings):
             blender_object_for_skined_data = None
    
             result = gltf2_blender_gather_mesh.gather_mesh(blender_mesh,
    -                                                       library,
    +                                                       blender_object.data.library.name if blender_object.data.library else None,
                                                            blender_object_for_skined_data,
                                                            vertex_groups,
                                                            modifiers,
    
    `
    评论

报告相同问题?