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>2022-02-12 16:06:54 +0300
committerJulien Duroure <julien.duroure@gmail.com>2022-02-12 16:06:54 +0300
commit4003baf03d7d6d78ef4c16be79c73edadf87759c (patch)
tree73ab4b72016fc850b4b14b458408f02923a830b4 /io_scene_gltf2/blender
parent3b088fc33dc62950887977ee3ecd0ce01d03ebd3 (diff)
glTF exporter: Option to not export texture images
Diffstat (limited to 'io_scene_gltf2/blender')
-rwxr-xr-xio_scene_gltf2/blender/exp/gltf2_blender_gather_materials.py5
-rwxr-xr-xio_scene_gltf2/blender/exp/gltf2_blender_gather_materials_pbr_metallic_roughness.py10
-rwxr-xr-xio_scene_gltf2/blender/exp/gltf2_blender_gather_texture.py4
-rwxr-xr-xio_scene_gltf2/blender/exp/gltf2_blender_get.py9
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: