浏览代码

ColladaLoader now assigns individual materials to submeshes as needed

Optional assignment of individual materials to submeshes, addresses #3606
contriteobserver 4 年之前
父节点
当前提交
338abded12
共有 1 个文件被更改,包括 6 次插入1 次删除
  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;
                 }