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:
Diffstat (limited to 'io_scene_gltf2/blender/exp/gltf2_blender_gather_nodes.py')
-rwxr-xr-xio_scene_gltf2/blender/exp/gltf2_blender_gather_nodes.py39
1 files changed, 27 insertions, 12 deletions
diff --git a/io_scene_gltf2/blender/exp/gltf2_blender_gather_nodes.py b/io_scene_gltf2/blender/exp/gltf2_blender_gather_nodes.py
index dbfafbde..0913d464 100755
--- a/io_scene_gltf2/blender/exp/gltf2_blender_gather_nodes.py
+++ b/io_scene_gltf2/blender/exp/gltf2_blender_gather_nodes.py
@@ -24,6 +24,7 @@ from io_scene_gltf2.blender.exp import gltf2_blender_gather_mesh
from io_scene_gltf2.blender.exp import gltf2_blender_gather_joints
from io_scene_gltf2.blender.exp import gltf2_blender_extract
from io_scene_gltf2.blender.exp import gltf2_blender_gather_lights
+from io_scene_gltf2.blender.exp import gltf2_blender_generate_extras
from io_scene_gltf2.io.com import gltf2_io
from io_scene_gltf2.io.com import gltf2_io_extensions
@@ -57,8 +58,8 @@ def gather_node(blender_object, export_settings):
if blender_object.type == 'CAMERA' and export_settings[gltf2_blender_export_keys.CAMERAS]:
correction_node = __get_correction_node(blender_object, export_settings)
correction_node.camera = node.camera
- node.camera = None
node.children.append(correction_node)
+ node.camera = None
return node
@@ -129,6 +130,8 @@ def __gather_extensions(blender_object, export_settings):
def __gather_extras(blender_object, export_settings):
+ if export_settings['gltf_extras']:
+ return gltf2_blender_generate_extras.generate_extras(blender_object)
return None
@@ -138,19 +141,31 @@ def __gather_matrix(blender_object, export_settings):
def __gather_mesh(blender_object, export_settings):
- if blender_object.type == "MESH":
- # If not using vertex group, they are irrelevant for caching --> ensure that they do not trigger a cache miss
- vertex_groups = blender_object.vertex_groups
- modifiers = blender_object.modifiers
- if len(vertex_groups) == 0:
- vertex_groups = None
- if len(modifiers) == 0:
- modifiers = None
-
- return gltf2_blender_gather_mesh.gather_mesh(blender_object.data, vertex_groups, modifiers, export_settings)
- else:
+ if blender_object.type != "MESH":
return None
+ # If not using vertex group, they are irrelevant for caching --> ensure that they do not trigger a cache miss
+ vertex_groups = blender_object.vertex_groups
+ modifiers = blender_object.modifiers
+ if len(vertex_groups) == 0:
+ vertex_groups = None
+ if len(modifiers) == 0:
+ modifiers = None
+
+ if export_settings[gltf2_blender_export_keys.APPLY]:
+ blender_mesh = blender_object.to_mesh(bpy.context.depsgraph, True)
+ skip_filter = True
+ else:
+ blender_mesh = blender_object.data
+ skip_filter = False
+
+ result = gltf2_blender_gather_mesh.gather_mesh(blender_mesh, vertex_groups, modifiers, skip_filter, export_settings)
+
+ if export_settings[gltf2_blender_export_keys.APPLY]:
+ bpy.data.meshes.remove(blender_mesh)
+
+ return result
+
def __gather_name(blender_object, export_settings):
if blender_object.instance_type == 'COLLECTION' and blender_object.instance_collection: