After migrating from 4.27 to 5.3, the bUseFullPrecision setting has been replaced with bUseFullPrecision_deprecated.
In theory this code in Material.cpp should automatically upgrade it to use FloatprecisionMode:
if(bUseFullPrecision_DEPRECATED && FloatPrecisionMode == EMaterialFloatPrecisionMode::MFPM_Half)
{
FloatPrecisionMode = EMaterialFloatPrecisionMode::MFPM_Full;
bUseFullPrecision_DEPRECATED = false;
}
Because the default value for FloatPrecisionMode is EMaterialFloatPrecisionMode::MFPM_Default I tried changing that to:
if(bUseFullPrecision_DEPRECATED)
{
FloatPrecisionMode = EMaterialFloatPrecisionMode::MFPM_Full;
bUseFullPrecision_DEPRECATED = false;
}
The issue is that bUseFullPrecision_deprecated seems to be false on all (or most) materials, even though bUseFullPrecision was set before.
I’ve tried adding a propertyredirect:
+PropertyRedirects=(OldName="Material.bUseFullPrecision",NewName="bUseFullPrecision_DEPRECATED")
I’ve also tried directly renaming bUseFullPrecision_deprecated back to bUseFullPrecision, but the value is always false.
I think this did work for some materials eventually but most are still on EMaterialFloatPrecisionMode::MFPM_Default.
The materials haven’t been resaved since the migration, so it should automatically update the FloatPrecisionMode?
We had quite a few materials set to use full precision and it’s not always easy to see which materials need it, so we’d like to avoid manually re-enabling it.
bUseFullPrecision is a bit field value, maybe that’s why the propertyredirect doesn’t work correctly?
UPROPERTY()
uint8 bUseFullPrecision_DEPRECATED : 1;
Any help would be appreciated.