Description

The licensee reports that this issue is caused by the following code not performing a Buffer update.

.\Engine\Source\Runtime\Renderer\Private\ShaderBaseClasses.cpp
void FMeshMaterialShaderElementData::InitializeMeshMaterialData(...)
[Image Removed]

Therefore, the following fixes may solve the problem.

 

	if (SceneView /* && StaticMeshId >= 0 */)
	{
		checkSlow(SceneView->bIsViewInfo);
		const FViewInfo* ViewInfo = (FViewInfo*)SceneView;		
                if (/* Add */ StaticMeshId >= 0 && MeshBatch.bDitheredLODTransition && !(bAllowStencilDither && ViewInfo->bAllowStencilDither))
		{
			if (ViewInfo->StaticMeshFadeOutDitheredLODMap[StaticMeshId])
			{
				DitherUniformBuffer = ViewInfo->DitherFadeOutUniformBuffer;
			}
			else if (ViewInfo->StaticMeshFadeInDitheredLODMap[StaticMeshId])
			{
				DitherUniformBuffer = ViewInfo->DitherFadeInUniformBuffer;
			}
		}

 

Steps to Reproduce

1. Use DistanceCullFade node as the material.
[Image Removed]
2. Set the Material and Desired Max Draw Distance for each mesh.
[Image Removed]
3. When played, it works on Static Mesh, but not on Skeletal Mesh.
[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-149933 in the post.

1
Login to Vote

Fixed
ComponentUE - Rendering Architecture - Materials
Affects Versions4.275.0
Target Fix5.1
Fix Commit20073555
Main Commit20073555
CreatedApr 22, 2022
ResolvedMay 6, 2022
UpdatedMay 16, 2022