Unreal Engine 5.5.4 introduces GroomComponent validation between the Groom asset and Binding asset via GHairStrands_GroomBindingValidationOnComponent (command line : r.HairStrands.GroomBindingValidationOnComponent)
We are seeing a Validation failure with assets that have Strands data but are set to use Cards for LOD 0.
There appears to be logical mismatch between InitResources, which only allocates RenRootResources if Strands are enabled vs Validation, which tests for RenRootResources if Strands simply exist.
In our tests, enabling Strands instead of Cards at LOD0 did cause Validation to succeed. However, the Validation logic still appears to be incorrect.
Sorry for the late reply. Indeed, good catch, this is the first time I see a report of that issue.
Could you try the following code on your side? Base on the repro steps I managed to repro the issue on my side, and the code below fix the issue.
`if (LocalBindingAsset && GHairStrands_GroomBindingValidationOnComponent > 0)
{
// Ensure the groom binding asset’s resources match the groom asset’s resources.
// They can mismatch when the groom asset has been edited and the groom binding hasn’t been updated/finished to be built yet.
const uint32 NumGroup = LocalBindingAsset->GetHairGroupResources().Num();
check(NumGroup == GroomAsset->GetHairGroupsResources().Num());
for (uint32 GroupIt = 0; GroupIt < NumGroup; ++GroupIt)
{
const UGroomBindingAsset::FHairGroupResource& BindingResource = LocalBindingAsset->GetHairGroupResources()[GroupIt];
const FHairGroupResources& GroomResources = GroomAsset->GetHairGroupsResources()[GroupIt];