Landscape HLODs are broken in 5.7.2 (Github Release branch)

Hi,

We’ve run the commandlet to generate HLODs and added this to disable nanite.

... -dpcvars="r.nanite=0" ...We are seeing good results, but are concerned that this might force Fallback mesh to be used when generating the HLOD geometry? What impact wil this have?

[Attachment Removed]

Hi David,

In our setup, we only disable Nanite during the material/texture baking step, not for the whole HLOD build flow.

You can apply this by searching for

// Material

in

LandscapeHLODBuilder.cpp

and adding the temporary Nanite-off logic there for the bake pass.

static const auto ICVarNanite = IConsoleManager::Get().FindConsoleVariable(TEXT("r.Nanite"));
			int32 OldNaniteValue = 0;
			if (ICVarNanite)
			{
				OldNaniteValue = ICVarNanite->GetInt();
				ICVarNanite->Set(0);
			}
			ON_SCOPE_EXIT
			{
				if (ICVarNanite)
				{
					ICVarNanite->Set(OldNaniteValue);
				}
			};

We have not fully root-caused it yet due to time constraints, but from RenderDoc captures it looks like some edge clusters may be incorrectly culled during baking, which then causes the bad result.

[Image Removed]FYI, some teammates are now testing a pipeline that reads baked SRVT data directly. This UDN thread is relevant: [Content removed]

We believe this may lead to better performance, mainly because Landscape HLOD can be batched more effectively, and SRVT also gives room for additional visual features.

[Attachment Removed]

Yes, you’re correct we will be using a similar approach as suggested by Yanchen in previous comments.

Thanks,

David

[Attachment Removed]