diff options
author | Julien Duroure <julien.duroure@gmail.com> | 2020-03-05 20:36:50 +0300 |
---|---|---|
committer | Julien Duroure <julien.duroure@gmail.com> | 2020-03-05 20:36:50 +0300 |
commit | af687f5a041eeda7bbe853a5839c2d57223134b2 (patch) | |
tree | 63274172d33b8c76d146d076f5caaa17e2b08201 | |
parent | bf2cf4d6010b7efee66da47d3f0b50f9e43a2b24 (diff) |
glTF exporter: avoid crash using compositor rendering for image generation
-rwxr-xr-x | io_scene_gltf2/blender/exp/gltf2_blender_gather_mesh.py | 11 | ||||
-rwxr-xr-x | io_scene_gltf2/blender/exp/gltf2_blender_gather_primitives.py | 2 |
2 files changed, 3 insertions, 10 deletions
diff --git a/io_scene_gltf2/blender/exp/gltf2_blender_gather_mesh.py b/io_scene_gltf2/blender/exp/gltf2_blender_gather_mesh.py index 1e155ffd..7194798f 100755 --- a/io_scene_gltf2/blender/exp/gltf2_blender_gather_mesh.py +++ b/io_scene_gltf2/blender/exp/gltf2_blender_gather_mesh.py @@ -39,8 +39,8 @@ def gather_mesh(blender_mesh: bpy.types.Mesh, extensions=__gather_extensions(blender_mesh, vertex_groups, modifiers, export_settings), extras=__gather_extras(blender_mesh, vertex_groups, modifiers, export_settings), name=__gather_name(blender_mesh, vertex_groups, modifiers, export_settings), + weights=__gather_weights(blender_mesh, vertex_groups, modifiers, export_settings), primitives=__gather_primitives(blender_mesh, blender_object, vertex_groups, modifiers, material_names, export_settings), - weights=__gather_weights(blender_mesh, vertex_groups, modifiers, export_settings) ) if len(mesh.primitives) == 0: @@ -134,15 +134,6 @@ def __gather_weights(blender_mesh: bpy.types.Mesh, modifiers: Optional[bpy.types.ObjectModifiers], export_settings ) -> Optional[List[float]]: - - # Seems that in some files, when using Apply Modifier, shape_keys return an error - # ReferenceError: StructRNA of type Mesh has been removed - # Because shapekeys are not exported in that case, we can return None - try: - blender_mesh.shape_keys - except: - return None - if not export_settings[MORPH] or not blender_mesh.shape_keys: return None diff --git a/io_scene_gltf2/blender/exp/gltf2_blender_gather_primitives.py b/io_scene_gltf2/blender/exp/gltf2_blender_gather_primitives.py index db1115d0..cca86432 100755 --- a/io_scene_gltf2/blender/exp/gltf2_blender_gather_primitives.py +++ b/io_scene_gltf2/blender/exp/gltf2_blender_gather_primitives.py @@ -59,6 +59,8 @@ def gather_primitives( material = gltf2_blender_gather_materials.gather_material(blender_material, double_sided, export_settings) + # NOTE: gather_material may invalidate blender_mesh (see #932), + # so make sure not to access blender_mesh again after this point except IndexError: # no material at that index pass |