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; } }
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]
There's no existing public thread on this issue, so head over to Questions & Answers just mention UE-149933 in the post.
1 |
Component | UE - Rendering Architecture - Materials |
---|---|
Affects Versions | 4.27, 5.0 |
Target Fix | 5.1 |
Created | Apr 22, 2022 |
---|---|
Resolved | May 6, 2022 |
Updated | May 16, 2022 |