diff --git a/src/Model.cpp b/src/Model.cpp index a2f42e9..547e940 100755 --- a/src/Model.cpp +++ b/src/Model.cpp @@ -17,11 +17,19 @@ Model::Model(OBJ &obj, ResourceManager* rm) if (face.Material != currentMaterial) { currentMaterial = face.Material; + // Load texture auto texture = std::shared_ptr(rm->Load("Texture", currentMaterial->DiffuseTexture.FileName)); + // TODO: Load normal map + std::shared_ptr normalMap = nullptr; + // Load specular map + std::shared_ptr specularMap = nullptr; + if (!currentMaterial->SpecularMap.FileName.empty()) + specularMap = std::shared_ptr(rm->Load("Texture", currentMaterial->SpecularMap.FileName)); + // TODO: Load material parameters // Create new texture group (start index of new group is upcoming index) - TextureGroup texGroup = { texture, index, index }; + TextureGroup texGroup = { texture, normalMap, specularMap, index, index }; TextureGroups.push_back(texGroup); currentTexGroup = &TextureGroups.back(); } diff --git a/src/Model.h b/src/Model.h index e1d7fa6..8d94a7d 100755 --- a/src/Model.h +++ b/src/Model.h @@ -21,7 +21,9 @@ public: struct TextureGroup { - std::shared_ptr Texture; + std::shared_ptr<::Texture> Texture; + std::shared_ptr<::Texture> NormalMap; + std::shared_ptr<::Texture> SpecularMap; unsigned int StartIndex; unsigned int EndIndex; };