From 338abded1284b4390a14e179722fc89639fc72bf Mon Sep 17 00:00:00 2001 From: contriteobserver Date: Sat, 23 Jan 2021 02:20:58 -0800 Subject: [PATCH] ColladaLoader now assigns individual materials to submeshes as needed Optional assignment of individual materials to submeshes, addresses #3606 --- code/AssetLib/Collada/ColladaLoader.cpp | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/code/AssetLib/Collada/ColladaLoader.cpp b/code/AssetLib/Collada/ColladaLoader.cpp index 99cb8c305..3bd2a7d02 100644 --- a/code/AssetLib/Collada/ColladaLoader.cpp +++ b/code/AssetLib/Collada/ColladaLoader.cpp @@ -557,7 +557,12 @@ void ColladaLoader::BuildMeshesForNode(const ColladaParser &pParser, const Colla faceStart += submesh.mNumFaces; // assign the material index - dstMesh->mMaterialIndex = matIdx; + std::map::const_iterator matIt = mMaterialIndexByName.find(submesh.mMaterial); + if (matIt != mMaterialIndexByName.end()) { + dstMesh->mMaterialIndex = matIt->second; + } else { + dstMesh->mMaterialIndex = matIdx; + } if (dstMesh->mName.length == 0) { dstMesh->mName = mid.mMeshOrController; }