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]