diff options
Diffstat (limited to 'io_scene_gltf2/blender')
-rwxr-xr-x | io_scene_gltf2/blender/exp/gltf2_blender_export_keys.py | 3 | ||||
-rwxr-xr-x | io_scene_gltf2/blender/exp/gltf2_blender_gather_nodes.py | 13 |
2 files changed, 16 insertions, 0 deletions
diff --git a/io_scene_gltf2/blender/exp/gltf2_blender_export_keys.py b/io_scene_gltf2/blender/exp/gltf2_blender_export_keys.py index a983c088..06fe6a47 100755 --- a/io_scene_gltf2/blender/exp/gltf2_blender_export_keys.py +++ b/io_scene_gltf2/blender/exp/gltf2_blender_export_keys.py @@ -26,6 +26,9 @@ FILTERED_CAMERAS = 'filtered_cameras' APPLY = 'gltf_apply' SELECTED = 'gltf_selected' +VISIBLE = 'gltf_visible' +RENDERABLE = 'gltf_renderable' +ACTIVE_COLLECTION = 'gltf_active_collection' SKINS = 'gltf_skins' DISPLACEMENT = 'gltf_displacement' FORCE_SAMPLING = 'gltf_force_sampling' 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 5332f4a9..7b58c0f9 100755 --- a/io_scene_gltf2/blender/exp/gltf2_blender_gather_nodes.py +++ b/io_scene_gltf2/blender/exp/gltf2_blender_gather_nodes.py @@ -127,6 +127,19 @@ def __filter_node(blender_object, blender_scene, export_settings): if export_settings[gltf2_blender_export_keys.SELECTED] and blender_object.select_get() is False: return False + if export_settings[gltf2_blender_export_keys.VISIBLE] and blender_object.visible_get() is False: + return False + + # render_get() doesn't exist, so unfortunately this won't take into account the Collection settings + if export_settings[gltf2_blender_export_keys.RENDERABLE] and blender_object.hide_render is True: + return False + + if export_settings[gltf2_blender_export_keys.ACTIVE_COLLECTION]: + found = any(x == blender_object for x in bpy.context.collection.all_objects) + + if not found: + return False + return True |