Description

Observed by a licensee:
[Link Removed]

When a material instance points to a material, and the material is edited to change a texture and the material and material instance are saved, the material instance's dependencies in the reference viewer are not updated.

They should be updated in the package header when the materialinstance is saved, and these updates should make their way into the editor's assetregistry due to UAssetRegistryImpl::OnDirectoryChanged causing ScanModifiedAssetFiles.

Steps to Reproduce

UDN:
[Link Removed]

1. Create a material, with a texture sample parameter connected to basecolor.
2. Set any texture (Texture_A) on the texture sample parameter
3. Save the material asset
4. Create a child material instance asset of that base material
5. On the material instance, display the references using the reference viewer, you will notice that it points to Texture_A which is expected.
6. On the base material asset, change the texture connected to texture sample parameter from Texture_A to Texture_B.
7. Save the base material asset
8. Save the material instance asset
9. On the material instance, display the references using the reference viewer, you will notice that it still points to Texture_A instead of Texture_B

Observed Result:
The material instance still references the old texture (Texture_A)

Expected Result:
The material instance should reference the new default texture (Texture_B) OR don't reference at all the texture at all since it is not overridden at the instance level.

Note: If the material instance is dirtied and then resaved, the material instance references are correctly refreshed and point to Texture_B

Have Comments or More Details?

There's no existing public thread on this issue, so head over to Questions & Answers just mention UE-161539 in the post.

0
Login to Vote

Cannot Reproduce
ComponentUE - Rendering
Target Fix5.1
CreatedAug 22, 2022
ResolvedSep 27, 2022
UpdatedOct 7, 2022