diff options
author | Julien Duroure <julien.duroure@gmail.com> | 2022-02-12 16:06:54 +0300 |
---|---|---|
committer | Julien Duroure <julien.duroure@gmail.com> | 2022-02-12 16:06:54 +0300 |
commit | 4003baf03d7d6d78ef4c16be79c73edadf87759c (patch) | |
tree | 73ab4b72016fc850b4b14b458408f02923a830b4 /io_scene_gltf2/blender/exp | |
parent | 3b088fc33dc62950887977ee3ecd0ce01d03ebd3 (diff) |
glTF exporter: Option to not export texture images
Diffstat (limited to 'io_scene_gltf2/blender/exp')
4 files changed, 25 insertions, 3 deletions
diff --git a/io_scene_gltf2/blender/exp/gltf2_blender_gather_materials.py b/io_scene_gltf2/blender/exp/gltf2_blender_gather_materials.py index a15f0f8d..ff0c2cfe 100755 --- a/io_scene_gltf2/blender/exp/gltf2_blender_gather_materials.py +++ b/io_scene_gltf2/blender/exp/gltf2_blender_gather_materials.py @@ -114,7 +114,10 @@ def __gather_emissive_factor(blender_material, export_settings): if emissive_socket is None: emissive_socket = gltf2_blender_get.get_socket_old(blender_material, "EmissiveFactor") if isinstance(emissive_socket, bpy.types.NodeSocket): - factor = gltf2_blender_get.get_factor_from_socket(emissive_socket, kind='RGB') + if export_settings['gltf_image_format'] != "NONE": + factor = gltf2_blender_get.get_factor_from_socket(emissive_socket, kind='RGB') + else: + factor = gltf2_blender_get.get_const_from_default_value_socket(emissive_socket, kind='RGB') if factor is None and emissive_socket.is_linked: # In glTF, the default emissiveFactor is all zeros, so if an emission texture is connected, diff --git a/io_scene_gltf2/blender/exp/gltf2_blender_gather_materials_pbr_metallic_roughness.py b/io_scene_gltf2/blender/exp/gltf2_blender_gather_materials_pbr_metallic_roughness.py index 88f3eb69..e885b21b 100755 --- a/io_scene_gltf2/blender/exp/gltf2_blender_gather_materials_pbr_metallic_roughness.py +++ b/io_scene_gltf2/blender/exp/gltf2_blender_gather_materials_pbr_metallic_roughness.py @@ -53,7 +53,10 @@ def __gather_base_color_factor(blender_material, export_settings): alpha_socket = gltf2_blender_get.get_socket(blender_material, "Alpha") if isinstance(alpha_socket, bpy.types.NodeSocket): - alpha = gltf2_blender_get.get_factor_from_socket(alpha_socket, kind='VALUE') + if export_settings['gltf_image_format'] != "NONE": + alpha = gltf2_blender_get.get_factor_from_socket(alpha_socket, kind='VALUE') + else: + alpha = gltf2_blender_get.get_const_from_default_value_socket(alpha_socket, kind='VALUE') base_color_socket = gltf2_blender_get.get_socket(blender_material, "Base Color") if base_color_socket is None: @@ -61,7 +64,10 @@ def __gather_base_color_factor(blender_material, export_settings): if base_color_socket is None: base_color_socket = gltf2_blender_get.get_socket_old(blender_material, "BaseColorFactor") if isinstance(base_color_socket, bpy.types.NodeSocket): - rgb = gltf2_blender_get.get_factor_from_socket(base_color_socket, kind='RGB') + if export_settings['gltf_image_format'] != "NONE": + rgb = gltf2_blender_get.get_factor_from_socket(base_color_socket, kind='RGB') + else: + rgb = gltf2_blender_get.get_const_from_default_value_socket(base_color_socket, kind='RGB') if rgb is None: rgb = [1.0, 1.0, 1.0] if alpha is None: alpha = 1.0 diff --git a/io_scene_gltf2/blender/exp/gltf2_blender_gather_texture.py b/io_scene_gltf2/blender/exp/gltf2_blender_gather_texture.py index a8ec7f79..96146523 100755 --- a/io_scene_gltf2/blender/exp/gltf2_blender_gather_texture.py +++ b/io_scene_gltf2/blender/exp/gltf2_blender_gather_texture.py @@ -35,6 +35,7 @@ def gather_texture( :param export_settings: configuration of the export :return: a glTF 2.0 texture with sampler and source embedded (will be converted to references by the exporter) """ + if not __filter_texture(blender_shader_sockets, export_settings): return None @@ -56,6 +57,9 @@ def gather_texture( def __filter_texture(blender_shader_sockets, export_settings): + # User doesn't want to export textures + if export_settings['gltf_image_format'] == "NONE": + return None return True diff --git a/io_scene_gltf2/blender/exp/gltf2_blender_get.py b/io_scene_gltf2/blender/exp/gltf2_blender_get.py index e925bf25..0b1946e5 100755 --- a/io_scene_gltf2/blender/exp/gltf2_blender_get.py +++ b/io_scene_gltf2/blender/exp/gltf2_blender_get.py @@ -250,6 +250,15 @@ def get_factor_from_socket(socket, kind): return None +def get_const_from_default_value_socket(socket, kind): + if kind == 'RGB': + if socket.type != 'RGBA': return None + return list(socket.default_value)[:3] + if kind == 'VALUE': + if socket.type != 'VALUE': return None + return socket.default_value + return None + def get_const_from_socket(socket, kind): if not socket.is_linked: |