You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
o3de/Gems/Atom/RPI/Code/Source/RPI.Edit/Material
santorac 8fbd2aaaf5 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>
4 years ago
..
LuaMaterialFunctorSourceData.cpp Tied up some loose ends with nested property group support. 4 years ago
MaterialFunctorSourceData.cpp Added support for deeply nested material property groups. 4 years ago
MaterialFunctorSourceDataRegistration.cpp Shorten copyright headers by splitting into 2 lines (#2213) 4 years ago
MaterialFunctorSourceDataSerializer.cpp Instrumented support for the JSON importer for material type files. 4 years ago
MaterialPropertyConnectionSerializer.cpp Added backward-compatible support for the old "id" key in material type files, which is being renamed to "name". 4 years ago
MaterialPropertyGroupSerializer.cpp Added backward-compatible support for the old "id" key in material type files, which is being renamed to "name". 4 years ago
MaterialPropertyId.cpp Added support for deeply nested material property groups. 4 years ago
MaterialPropertySerializer.cpp Added backward-compatible support for the old "id" key in material type files, which is being renamed to "name". 4 years ago
MaterialPropertyValueSerializer.cpp Removed unnecessary MaterialSourceData::Property class. 4 years ago
MaterialPropertyValueSourceData.cpp Shorten copyright headers by splitting into 2 lines (#2213) 4 years ago
MaterialPropertyValueSourceDataSerializer.cpp Shorten copyright headers by splitting into 2 lines (#2213) 4 years ago
MaterialSourceData.cpp Tied up a few loose ends to support deeply nested property groups. 4 years ago
MaterialTypeSourceData.cpp Tied up a few loose ends to support deeply nested property groups. 4 years ago
MaterialUtils.cpp Merge branch 'Atom/santorac/RemixableMaterialTypes4_FlatMaterialFiles' into Atom/santorac/RemixableMaterialTypes4_Layering 4 years ago