Culling Distance Problem Surface Scatter
Hi, dash-Team. - Is it possible that the surface scatters end culling distance for grass didn't go further than 3000? The grass meshes are nanite and "preserve area" is activated. There is no problem, when I paint them with the foliage painter.
See screenshots. As you can see, there are no end culling problems with the trees.
See screenshots. As you can see, there are no end culling problems with the trees.





18 Replies
Hey @der_urig
Thanks for the pictures and info, let me check a bit and get back to you! 🙂
Could you try this UE cmd command?
foliage.MaxTrianglesToRender 1000000000 or another number, the default is 100 mil
Also, try the command r.ForceLOD 0
Hi, Jonathan. Sry for my late response I wasn't at the working place. - I tried those commands and because they are nanite meshes i also tried those:
r.Nanite.MaxNodes=8000000
r.Nanite.MaxVisibleClusters=8000000
Unfortunately nothing's changed.
hey there, do you have anything in the output log?
End Culling simply sets the Hierarchical Instanced Static Meshes'
Instanced End Culling
attribute on that Actor which just fades out individual instances from that distance from the camera.
Does it still cull if you set it to zero?Hi, Balu. - Thanks for your suggestions. I tried it with zero as end cull distance but it didn't changed anything.
Regarding the output log: I found those messages
LogSlate: Window 'T_LawnGrass_tkynejer_8K_ORDp' being destroyed
LogSlate: Window 'T_LawnGrass_tkynejer_8K_ORDp' being destroyed
LogWorld: UWorld::CleanupWorld for World_26, bSessionEnded=true, bCleanupResources=true
LogSlate: InvalidateAllWidgets triggered. All widgets were invalidated
LogWorld: UWorld::CleanupWorld for World_27, bSessionEnded=true, bCleanupResources=true
LogSlate: InvalidateAllWidgets triggered. All widgets were invalidated
LogWorld: UWorld::CleanupWorld for World_28, bSessionEnded=true, bCleanupResources=true
LogSlate: InvalidateAllWidgets triggered. All widgets were invalidated
LogWorld: UWorld::CleanupWorld for World_30, bSessionEnded=true, bCleanupResources=true
LogSlate: InvalidateAllWidgets triggered. All widgets were invalidated
AssetReimport: New page: Outstanding source content changes 15:21:57
LogPython: GN.ResourcesUtils - add_resource_to_project - Error copying on diff [WinError 32] Der Prozess kann nicht auf die Datei zugreifen, da sie von einem anderen Prozess verwendet wird: 'E:\02 Unreal\01 Referenzen\Campus_2023\Content\Polygonflow\Materials\FoliageMaterial.uasset'
LogPython: GN.ResourcesUtils - add_resource_to_project - Source path C:\Users\urig\Polygonflow\Dash\Plugins\UnrealEngineContext/resources/editor/Materials/MaterialsNanite does not exist
LogActorFactory: Actor Factory attempting to spawn Class /Script/Engine.Actor
LogActorFactory: Actor Factory attempting to spawn Class /Script/Engine.Actor
so basically even on non-cull it's getting culled
definitely some unreal setting that needs to be turned off, looking into it
are you using world partitioning?
even with high density and fairly big polycount object if it's nanite there's zero culling:
if i switch off nanite it gets culled but I can use
foliage.MaxTrianglesToRender
and just set it to super high
if you have time we could do a little video chat and we could try pinpoint it
was able to repro, happens only w/ megascans foliage assets atm(prolly translucency, or the kind of mesh), happens in both Foliage Paint and Surface Scatter
I just don't use nanite on foliage usually. Although it's def related to screen size area since if you scale up using
Min Scale
Max Scale
more will apear. The reason in your example the foliage painter seemed to work is that the scales of the grass seems to be much larger.Preserve Area doesn't seem to do anything for me in 5.3 which supposedly alleviates this.
@der_urig
for Nanite the solution is to override Opacity Mask Clip Value, for me 0.16 worked well

you can go lower if need to it still persists, or higher if it allows it
This is a really helpful thread thanks guys!
@Ascenial will go over all this and make a FAQ about it as these are unreal shenanigans, our tools(surface scatter, grid scatter, path scatter, etc) use HISM, same as Foliage Painter with the same attributes so in theory there's zero difference.
the only "problematic" part atm is world partitioning, but as soon as you are done with anything that outputs an instancer type from our tools, you can select it and then convert them w/

which fixes world partitioning problems, aaaaand you can paint after
No.
@Balu The material setting works great. Thanks a lot for your time and help.