[1.6] Problem with Vegetation Applied via Terrain Layers

I am attempting to create vegetation variation by using the Terrain Layers to distribute groups of vegetation. I am running into what seems to be an LOD issue with this method. Initially I thought it to be one of two things, a texture LOD issue, or a terrain LOD issue. I believe I have eliminated these as a cause and am at this point completely stumped. I’ve dug through the cvars to find every possible variable and spent hours trying to find it but was unsuccessful. I did find the two vars I thought might fix it but here is the video to demonstrate the results.

Starts out with e_TerrainLodRatio at 0. Switch “Detail layer view distance” in Environment from default to 0, then to 100. Switch e_TerrainLodRatio back to default (0.5).

https://youtu.be/yE1XhLN4Fmw

I realize this is not the recommended method to distribute vegetation, but this is the most logical for the number of plants I want to distribute and the uniformity of the distribution over multiple varying areas.

I believe this behavior can be replicated easily with any project/level.

Thanks!

Hey @andrewg, have you tried adjusting the “LOD Distance” and “MaxViewDistRatio” properties?

3357-vegelod.jpg

That could help with the draw distance popping you are seeing. Let us know if adjusting these settings has any desired effects.

These settings don’t seem to have any affect on the popping that I’m seeing. As I said, I’ve tried every variable I could find that seemed to pertain to LOD on the vegetation, terrain mesh, and the textures themselves.

Left: placed via Terrain Layers. Right: placed by painting.

https://youtu.be/R8R_Lap0GkE

Thanks!

Thank you. I have been able to replicate on multiple machines, and others have been able to replicate as well. It seems as if the veg. that is spawned on terrain layers is affected by a different LOD mechanism than typically painted/distributed vegetation. It seems to me as if it is related to the terrain mesh LOD, however unaffected by the cvars that change the way terrain LOD is calculated. I have spent quite a bit of time trying to narrow down the lines of code responsible for the distribution via terrain layers that might vary from the standard mass distribution method, but have come up short so far.

Thanks for the video. Can you give me some insight on how you created the vegetation layers? This info might help our techs.

Hey @andrewg, looks like one of out techs was able to reproduce this issue and we are investigating further to see if it is a bug and if we can identify a solution/workaround. Just wanted to keep you in the loop here.

Thanks for the info. I will add this info to the ticket.

Curious to see if there is a possible workaround for this issue. Maybe I’m missing a tool or method here. I’d like to randomly and consistently disperse groups of vegetation over only a portion of a terrain, with more than one group of vegetation types.

3825-vegetation01.jpg

Ah, good find! Thanks for sharing.

Ok, after some further digging through the code, it appears as if this issue is related to the cached sectors that the procedural objects are using. It seems that the cvar e_ProcVegetationMaxSectorsInCache can’t be changed, which doesn’t allow for any more sectors to be allocated. FYI there is a debug mode for the procedural vegetation e_ProcVegetation = 2:

3790-ly01.png

3851-ly02.png

EDIT: Changing this cvar requires a restart, so it must be set in either the game.cfg or the system*.cfg. SOLVED!

This problem is directly related to the e_ProcVegetationMaxSectorsInCache system variable, which must be set in either the game.cfg or the system.cfg file. Just add a line like this:

e_ProcVegetationMaxSectorsInCache=64

This setting requires an editor restart, which is why changing the value in the editor doesn’t show any change.

3851-ly02.png

Hi all, I have some new info from one of our engineers:
I made some improvements a few months back to how merged mesh vegetation LOD’d out over distance. The defaults are still quite aggressive, but can be changed with cvar. Check out e_MergedMeshesLodRatio and e_MergedMeshesViewDistRatio to control total distance that merged mesh vegetation renders and where the quality starts to drop off. Also e_MergedMeshesInstanceDistShadows controls how far away to render shadows on merged mesh vegetation. User should be able to make things much better by tweaking some values, at least in the latest version of LY.

Hope this helps!