From 5c2d12dea380580ebd14feeea8c29856234761d0 Mon Sep 17 00:00:00 2001 From: aaronp64 Date: Sun, 16 Nov 2025 10:52:36 -0500 Subject: [PATCH] Check if scale/offset values are provided in gltf KHR_texture_transform Update GLTFDocument to check if scale/offset values exist when reading KHR_texture_transform extension --- modules/gltf/gltf_document.cpp | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/modules/gltf/gltf_document.cpp b/modules/gltf/gltf_document.cpp index 6f9295c94b9..1a3957cd70e 100644 --- a/modules/gltf/gltf_document.cpp +++ b/modules/gltf/gltf_document.cpp @@ -3209,16 +3209,20 @@ void GLTFDocument::_set_texture_transform_uv1(const Dictionary &p_dict, Refset_uv1_offset(offset_vector3); + if (texture_transform.has("offset")) { + const Array offset_arr = texture_transform["offset"]; + if (offset_arr.size() == 2) { + const Vector3 offset_vector3 = Vector3(offset_arr[0], offset_arr[1], 0.0f); + p_material->set_uv1_offset(offset_vector3); + } } - const Array &scale_arr = texture_transform["scale"]; - if (scale_arr.size() == 2) { - const Vector3 scale_vector3 = Vector3(scale_arr[0], scale_arr[1], 1.0f); - p_material->set_uv1_scale(scale_vector3); + if (texture_transform.has("scale")) { + const Array scale_arr = texture_transform["scale"]; + if (scale_arr.size() == 2) { + const Vector3 scale_vector3 = Vector3(scale_arr[0], scale_arr[1], 1.0f); + p_material->set_uv1_scale(scale_vector3); + } } } }