Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender-addons.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJulien Duroure <julien.duroure@gmail.com>2020-03-05 20:36:50 +0300
committerJulien Duroure <julien.duroure@gmail.com>2020-03-05 20:36:50 +0300
commitaf687f5a041eeda7bbe853a5839c2d57223134b2 (patch)
tree63274172d33b8c76d146d076f5caaa17e2b08201
parentbf2cf4d6010b7efee66da47d3f0b50f9e43a2b24 (diff)
glTF exporter: avoid crash using compositor rendering for image generation
-rwxr-xr-xio_scene_gltf2/blender/exp/gltf2_blender_gather_mesh.py11
-rwxr-xr-xio_scene_gltf2/blender/exp/gltf2_blender_gather_primitives.py2
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