Tied up a few loose ends to support deeply nested property groups.
Simplified the call back for MaterialTypeSourceData::EnumeratePropertyGroups while also providing more data. Made the Material Inspector join nested property group display names to be like "Layer 1 | Base Color", since the leaf property groups are shown as a flat list in the inspector. Fixed CreateMaterialAssetFromSourceData to include the imported json files in the list of sourceDependencies. This triggers the Material Editor to hot-reload when one of these json files changes. Updated a few places that were still assuming only one level of property group. Updated EditorMaterialComponentInspector to apply the per-property-group material functors, before it was still only applying the top-level onces. Moved some accessor function implementations to the cpp files, per feedback on another already-merged PR. Testing: Made changes to MinimalMultilayerPbr (in AtomSampleViewer) to use nested property groups, and saw the correct behavior in the Material Editor's property inspector. Used MaterialComponent's property inspector to edit a StandardPbr material instance. Confrimed that functors were correctly controlling property visibility by enabling and disabling things like emissive and clear coat. Used MaterialComponent's property inspector to edit a MinimalMultilayerPbr material instance. Saw all the expected groups and properties show up. Confirmed that per-group functors were correctly controlling property visibility. Used MaterialComponent's property inspector to export a material instance and confirmed the .material file included the expected properties. Signed-off-by: santorac <55155825+santorac@users.noreply.github.com>
This commit is contained in:
@@ -117,6 +117,20 @@ namespace AZ
|
||||
shaderOptionName = m_shaderOptionNameContext + shaderOptionName;
|
||||
return true;
|
||||
}
|
||||
|
||||
bool MaterialNameContext::HasContextForProperties() const
|
||||
{
|
||||
return !m_propertyIdContext.empty();
|
||||
}
|
||||
|
||||
bool MaterialNameContext::HasContextForSrgInputs() const
|
||||
{
|
||||
return !m_srgInputNameContext.empty();
|
||||
}
|
||||
|
||||
bool MaterialNameContext::HasContextForShaderOptions() const
|
||||
{
|
||||
return !m_shaderOptionNameContext.empty();
|
||||
}
|
||||
} // namespace RPI
|
||||
} // namespace AZ
|
||||
|
||||
Reference in New Issue
Block a user