Moved the material slot list from ModelLodAsset to ModelAsset, so all the slots live in one main list. This removes data duplication between LODs and cleans up the code a bit.
I had to update the ModelLod class to take in both the ModelLodAsset and ModelAsset for initialization so it can fetch the slots for each mesh. Signed-off-by: santorac <55155825+santorac@users.noreply.github.com>
This commit is contained in:
@@ -29,6 +29,33 @@ namespace AZ
|
||||
m_asset->m_name = name;
|
||||
}
|
||||
}
|
||||
|
||||
void ModelAssetCreator::AddMaterialSlot(const ModelMaterialSlot& materialSlot)
|
||||
{
|
||||
if (ValidateIsReady())
|
||||
{
|
||||
auto iter = m_asset->m_materialSlots.find(materialSlot.m_stableId);
|
||||
|
||||
if (iter == m_asset->m_materialSlots.end())
|
||||
{
|
||||
m_asset->m_materialSlots[materialSlot.m_stableId] = materialSlot;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (materialSlot.m_displayName != iter->second.m_displayName)
|
||||
{
|
||||
ReportWarning("Material slot %u was already added with a different name.", materialSlot.m_stableId);
|
||||
}
|
||||
|
||||
if (materialSlot.m_defaultMaterialAsset != iter->second.m_defaultMaterialAsset)
|
||||
{
|
||||
ReportWarning("Material slot %u was already added with a different default MaterialAsset.", materialSlot.m_stableId);
|
||||
}
|
||||
|
||||
iter->second = materialSlot;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void ModelAssetCreator::AddLodAsset(Data::Asset<ModelLodAsset>&& lodAsset)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user