Explorar o código

Fix order of transformation in GLTF import

From the gltf 2 spec, the order is R  * S. Previously we did S * R, which broke some mesh with non-uniform scale.

Fix #23356, Fix #14725
Vivatchai Kaveeta %!s(int64=6) %!d(string=hai) anos
pai
achega
32dd9c67c6
Modificáronse 1 ficheiros con 1 adicións e 2 borrados
  1. 1 2
      editor/import/editor_scene_importer_gltf.cpp

+ 1 - 2
editor/import/editor_scene_importer_gltf.cpp

@@ -237,8 +237,7 @@ Error EditorSceneImporterGLTF::_parse_nodes(GLTFState &state) {
 				node->scale = _arr_to_vec3(n["scale"]);
 			}
 
-			node->xform.basis = Basis(node->rotation);
-			node->xform.basis.scale(node->scale);
+			node->xform.basis.set_quat_scale(node->rotation, node->scale);
 			node->xform.origin = node->translation;
 		}