diff --git a/modules/gltf/extensions/gltf_light.cpp b/modules/gltf/extensions/gltf_light.cpp index 2bdcab2f0c..41680baf75 100644 --- a/modules/gltf/extensions/gltf_light.cpp +++ b/modules/gltf/extensions/gltf_light.cpp @@ -221,21 +221,27 @@ Ref 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; }