From e890169e0a62d0d74f14c19e6074bff44dc22c45 Mon Sep 17 00:00:00 2001
From: Julien Duroure <julien.duroure@gmail.com>
Date: Wed, 28 Sep 2022 18:43:59 +0200
Subject: [PATCH] glTF exporter: clamp base color factor to [0,1], as hard rgb
 values can be outside

---
 io_scene_gltf2/__init__.py                                     | 2 +-
 .../gltf2_blender_gather_materials_pbr_metallic_roughness.py   | 3 +++
 2 files changed, 4 insertions(+), 1 deletion(-)

diff --git a/io_scene_gltf2/__init__.py b/io_scene_gltf2/__init__.py
index b55692df2..a0e2b58ee 100755
--- a/io_scene_gltf2/__init__.py
+++ b/io_scene_gltf2/__init__.py
@@ -4,7 +4,7 @@
 bl_info = {
     'name': 'glTF 2.0 format',
     'author': 'Julien Duroure, Scurest, Norbert Nopper, Urs Hanselmann, Moritz Becher, Benjamin SchmithĂĽsen, Jim Eckerlein, and many external contributors',
-    "version": (3, 4, 25),
+    "version": (3, 4, 26),
     'blender': (3, 3, 0),
     'location': 'File > Import-Export',
     'description': 'Import-Export as glTF 2.0',
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 a5929c05b..61e84b164 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
@@ -71,6 +71,9 @@ def __gather_base_color_factor(blender_material, export_settings):
     if rgb is None: rgb = [1.0, 1.0, 1.0]
     if alpha is None: alpha = 1.0
 
+    # Need to clamp between 0.0 and 1.0: Blender color can be outside this range
+    rgb = [max(min(c, 1.0), 0.0) for c in rgb]
+
     rgba = [*rgb, alpha]
 
     if rgba == [1, 1, 1, 1]: return None
-- 
GitLab