summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRémi Verschelde <remi@verschelde.fr>2024-08-12 18:24:27 +0200
committerGitHub <noreply@github.com>2024-08-12 18:24:27 +0200
commit39fc116c5fed3a434aa35087a87d58d518b1033a (patch)
tree4185adbb36001db424fc77229cdb1ba41074e2e1
parentedc0571c96088584685dd7f4d91be773b2a12a03 (diff)
parenteab49cf256a7d2a95f9fda22a63b4731c9ce6bc4 (diff)
downloadredot-engine-39fc116c5fed3a434aa35087a87d58d518b1033a.tar.gz
Merge pull request #94968 from jsjtxietian/obj-import
Fix obj's name set in wrong order when importing
-rw-r--r--editor/import/3d/resource_importer_obj.cpp19
1 files changed, 10 insertions, 9 deletions
diff --git a/editor/import/3d/resource_importer_obj.cpp b/editor/import/3d/resource_importer_obj.cpp
index a0c05598a2..2fbf564ae8 100644
--- a/editor/import/3d/resource_importer_obj.cpp
+++ b/editor/import/3d/resource_importer_obj.cpp
@@ -424,15 +424,6 @@ static Error _parse_obj(const String &p_path, List<Ref<ImporterMesh>> &r_meshes,
surf_tool->set_material(material);
}
- if (!current_material.is_empty()) {
- if (mesh->get_surface_count() >= 1) {
- mesh->set_surface_name(mesh->get_surface_count() - 1, current_material.get_basename());
- }
- } else if (!current_group.is_empty()) {
- if (mesh->get_surface_count() >= 1) {
- mesh->set_surface_name(mesh->get_surface_count() - 1, current_group);
- }
- }
Array array = surf_tool->commit_to_arrays();
if (mesh_flags & RS::ARRAY_FLAG_COMPRESS_ATTRIBUTES && generate_tangents) {
@@ -451,6 +442,16 @@ static Error _parse_obj(const String &p_path, List<Ref<ImporterMesh>> &r_meshes,
mesh->add_surface(Mesh::PRIMITIVE_TRIANGLES, array, TypedArray<Array>(), Dictionary(), material, name, mesh_flags);
print_verbose("OBJ: Added surface :" + mesh->get_surface_name(mesh->get_surface_count() - 1));
+ if (!current_material.is_empty()) {
+ if (mesh->get_surface_count() >= 1) {
+ mesh->set_surface_name(mesh->get_surface_count() - 1, current_material.get_basename());
+ }
+ } else if (!current_group.is_empty()) {
+ if (mesh->get_surface_count() >= 1) {
+ mesh->set_surface_name(mesh->get_surface_count() - 1, current_group);
+ }
+ }
+
surf_tool->clear();
surf_tool->begin(Mesh::PRIMITIVE_TRIANGLES);
}