From b811efebe2d2d47232f155ae0c83fe7af81b623b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tur=C3=A1nszki=20J=C3=A1nos?= Date: Sat, 7 Sep 2024 11:33:06 +0200 Subject: [PATCH] fbx importer fix: ensure all vertex property counts are the same as positions, fixes issue with some mixamo models --- Editor/ModelImporter_FBX.cpp | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/Editor/ModelImporter_FBX.cpp b/Editor/ModelImporter_FBX.cpp index d387d4b5e..89822ddf1 100644 --- a/Editor/ModelImporter_FBX.cpp +++ b/Editor/ModelImporter_FBX.cpp @@ -471,6 +471,39 @@ void ImportModel_FBX(const std::string& filename, wi::scene::Scene& scene) morphs[i].vertex_positions.resize(num_vertices); meshcomponent.morph_targets[i].vertex_positions.insert(meshcomponent.morph_targets[i].vertex_positions.end(), morphs[i].vertex_positions.begin(), morphs[i].vertex_positions.end()); } + + if (!meshcomponent.vertex_normals.empty()) + { + meshcomponent.vertex_normals.resize(meshcomponent.vertex_positions.size()); + } + if (!meshcomponent.vertex_uvset_0.empty()) + { + meshcomponent.vertex_uvset_0.resize(meshcomponent.vertex_positions.size()); + } + if (!meshcomponent.vertex_uvset_1.empty()) + { + meshcomponent.vertex_uvset_1.resize(meshcomponent.vertex_positions.size()); + } + if (!meshcomponent.vertex_colors.empty()) + { + meshcomponent.vertex_colors.resize(meshcomponent.vertex_positions.size()); + } + if (!meshcomponent.vertex_boneindices.empty()) + { + meshcomponent.vertex_boneindices.resize(meshcomponent.vertex_positions.size()); + } + if (!meshcomponent.vertex_boneweights.empty()) + { + meshcomponent.vertex_boneweights.resize(meshcomponent.vertex_positions.size()); + } + if (!meshcomponent.vertex_boneindices2.empty()) + { + meshcomponent.vertex_boneindices2.resize(meshcomponent.vertex_positions.size()); + } + if (!meshcomponent.vertex_boneweights2.empty()) + { + meshcomponent.vertex_boneweights2.resize(meshcomponent.vertex_positions.size()); + } } meshcomponent.CreateRenderData();