A "property name" is the name of the just the property without regard to the group that it's in. A "group name" is the name of the group. And a "property ID" is the full unique name of a property in the form "groupName.propertyName". This is important preparation for upcoming changes where property sets can contain other property sets, and property IDs can be arbitrarily long like "layer1.baseColor.factor" for example.
The naming changes include variables, some code comments, and the .materialtype file format. I was able to make these changes in a backward compatible way so a property or group "id" field has been replaced with a "name" field, but "id" is still supported for compatibility. StandardPBR, EnhancedPBR, StandardMultilayerPBR, and Skin have all been updated. Note that MinimalPBR has not been updated, proving that backward compatibility works. (We can update this one too at some point though).
Testing:
Opened up materials in the material editor.
Ran AtomSampleViewer in dx12 and vulkan with no new failures.
Signed-off-by: santorac <55155825+santorac@users.noreply.github.com>
//! The name of a specific shader setting. This will either be a ShaderResourceGroup input or a ShaderOption, depending on m_type
AZStd::stringm_nameId;
AZStd::stringm_fieldName;
//! For m_type==ShaderOption, this is either the index of a specific shader in m_shaderCollection, or -1 which means every shader in m_shaderCollection.
//! For m_type==ShaderInput, this field is not used.
AZStd::stringmessage=AZStd::string::format("Property '%.*s.%.*s' not found in material type.",AZ_STRING_ARG(groupNameId),AZ_STRING_ARG(propertyNameId));
AZStd::stringmessage=AZStd::string::format("Property '%.*s.%.*s' not found in material type.",AZ_STRING_ARG(groupName),AZ_STRING_ARG(propertyName));
//! Returns whether a specific property is explicitly hidden.
//! Note this follows the same rules as QWidget::isHidden(), meaning a group that is hidden will not become visible automatically when the parent becomes visible.