Description

When UMaterialInstanceConstant::UpdateCachedData() updates CachedExpressionData.PropertyConnectedMask for material instances with layers incorrectly, it can lead to various graphical issues including using the wrong vertex shader variant that doesn't support WPO or missing opacity masking.

See the attached sample repro project.

Example base material from repro case:
[Image Removed]

Steps to Reproduce
  1. Create a simple material M_WPO with "Material Attribute Layers" node (no need to connect) and plug something into the WPO property input
  2. Create a material layer asset ML_Test
  3. Create a material instance asset M_WPO_Inst based on M_WPO, then set its background material layer to ML_Test
  4. Apply M_WPO_Inst on a built-in Plane actor (or any mesh that's non-Nanite)

Expected
The mesh draws with WPO using the world grid material

Actual
The mesh doesn't use the correct vertex shader and has a yellow skybox error message written on it because of depth test issues in basepass

[Image Removed]

Have Comments or More Details?

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

0
Login to Vote

Backlogged
CreatedNov 20, 2024
UpdatedDec 9, 2024
Pull Requests
12624 - hozhaoea
View Jira Issue