Bladeren bron

ColladaLoader now assigns individual materials to submeshes as needed

Optional assignment of individual materials to submeshes, addresses #3606
contriteobserver 4 jaren geleden
bovenliggende
commit
338abded12
1 gewijzigde bestanden met toevoegingen van 6 en 1 verwijderingen
  1. 6 1
      code/AssetLib/Collada/ColladaLoader.cpp

+ 6 - 1
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<std::string, size_t>::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;
                 }