Browse Source

Merge pull request #101271 from aaronfranke/gltf-directional-light-no-range

GLTF: Don't write unused light properties
Rémi Verschelde 7 months ago
parent
commit
e8c5d99fea
1 changed files with 15 additions and 9 deletions
  1. 15 9
      modules/gltf/extensions/gltf_light.cpp

+ 15 - 9
modules/gltf/extensions/gltf_light.cpp

@@ -221,21 +221,27 @@ Ref<GLTFLight> GLTFLight::from_dictionary(const Dictionary p_dictionary) {
 
 Dictionary GLTFLight::to_dictionary() const {
 	Dictionary d;
-	Array color_array;
-	color_array.resize(3);
-	color_array[0] = color.r;
-	color_array[1] = color.g;
-	color_array[2] = color.b;
-	d["color"] = color_array;
-	d["type"] = light_type;
+	if (color != Color(1.0f, 1.0f, 1.0f)) {
+		Array color_array;
+		color_array.resize(3);
+		color_array[0] = color.r;
+		color_array[1] = color.g;
+		color_array[2] = color.b;
+		d["color"] = color_array;
+	}
+	if (intensity != 1.0f) {
+		d["intensity"] = intensity;
+	}
+	if (light_type != "directional" && range != INFINITY) {
+		d["range"] = range;
+	}
 	if (light_type == "spot") {
 		Dictionary spot_dict;
 		spot_dict["innerConeAngle"] = inner_cone_angle;
 		spot_dict["outerConeAngle"] = outer_cone_angle;
 		d["spot"] = spot_dict;
 	}
-	d["intensity"] = intensity;
-	d["range"] = range;
+	d["type"] = light_type;
 	return d;
 }