Procedural landscapes or landscape materials or foliage

Yea , i didn’t know about that , thanks. So those settings you have in there would be about what i should use? When i bring that up , the position fields are just 0’s. Now if i can just get the map loaded again, i put a Nav Mesh bounds volume on the persistent level and ever since it won’t load the map. It is stuck on 30 percent.

Well i changed nav mesh to dynamic and it is working , i also activated navigation invokers. Here’s a question , how do you package a world comp world? Do i need to include all the tiles as package levels , and persistent too? thanks

When I package for this, I just the whole project. My compressed package size for 100km^2 is around 33GB or so.
not sure what happens if you select levels and exclude one of the tiles or the impostors by using the selected levels options.
I would wager it doesn’t work properly or it just packages them anyway.

As far as the other q.
No the settings por positions you can ignore. Thats just the location of one of my tiles.
the LOD settings are also default. You need to read the tool tip and set them up appropriately.

Run some tests with just 1 rile. Modify the material so you can see it change the base color or something. And test the distance at which they come in/out. The most important settings.

So what do you do when areas you are working around , intersect near other tile borders? Like say if i have a lake that is sitting in 3 different tiles. Or sculpting or painting a trail or road that crosses tile borders? Seems like it can be hard to tell if you are nearing a border when placing things on the map.

that’s why I usually work on separate levels - unless it’s something that needs to be map wide like splines. for those, I use a specific level that’s map wide and load/unload when edits are needed.
definitely do not use landscape splines with world comp. That just makes a mess.

also, whatever you are doing, you can always unload the tiles you aren’t working on. Prevents you placing objects where they shouldn’t be

A level that is map wide , would that be the persistent level? Good point on unloading tiles (or even making them invisible ), slipped my mind it did.

I keep other things in the persistent and have a specific dedicated level for spline actually.
Dealing with 300 roads in a 100km^2 area was getting to be problematic.
and I’m considering splitting the river splines off into their own level too.

Mind you. Those are control splines used mostly by gameplay with no “load” or visual to them.

So on an 8K world comp map , what would you recommend setting the streaming distance to? Also when generating the imposter landscape on that size map , what would you recommend the imposter distance be? thanks

I mean , the imposter distance would normally be greater than what the streaming distance is ?

Lol 0, and even delete the landscape :stuck_out_tongue:

If you want performance, you need impostors to take over right away. Leaving just the landscape you are on at the landscape level.

You’ll still get a performance hit when on intersecting tiles because you’ll have a maximum of 4 landscapes each displaying a huge 2x2 component at LOD 0.

So if you are benchmarking performance, make sure to spawn at the corner of a tile in such a way you have all 4 landscape tiles for testing the worse possible load.

for my map, I reduce LOD distribution as much as possible, trying to keep LOD3 (displayed as red) mostly active 100% of the time under the character.
on other maps this may not work. Depends on inclines/smoothness really.

Impostor tile distance is based off the initial tile stream distance. Which is why it’s labeled relative.
never tried negative values.
Maybe that would work to create some overlap and prevent some load glitches once in a while. Reality is, you would probably never notice it in a scene with more than just a landscape. Trees cause occlusion, which is usually enough to hide most flashing stuff going on with distant landscapes.

for 1017 tiles, 5km streaming distance has around the same base (material-less) performance I get with just 1 tile of 8k.

You just have to bench different streaming values (at the proper resolution or even x2 the target), there’s no way around it…

To be clear, 1017px tiles with impostors cause around 12k draw-calls too many. That’s why vast landscapes are better off using the less performant 8k tile.

So your saying you would have the streaming layers very low distance and have imposters take over right away ? Can you actually stream at 0 ? What do you mean " delete the landscape"?

On 8k size you sort of have to for performance… you (I anyway) need a stable base above 80fps on 4k. Hard to reach with no material, so… yes. As soon as possible without having too much “distortion” visible. Let’s say around 1km away from the player. If you want to push is I would still stick to less than 4km half the tile size. So that at least while ON the tile the other levels are impostors.

Not really.

well, once you have the impostor levels you can just take the mesh they pop out and place it inside the main level.
using a static mesh instead of the landscape - while it offers less occlusion and no Grass node, can sometimes be beneficial.
if you do that, just copy the landscape tile levels over to a separate project so you can revert at any time, and manually go into each tile, place the mesh, delete the landscape. Magic.

It’s useful for some things. Deserts. Stuff without grass. Oceans, when you fake them but they still had a map / the player can’t reach the ocean floor, which would /should be a map.

Mostly, the cost reduction comes on ocean situations from the fact that the engine doesn’t consider Z height before loading in the landscape or the impostor. So forcing an impostor ends up being cheaper due to less overall tris / material detail etc.

Definitely not something you just do all the time.

Also consider that once you finalized a level,
If you didn’t use the grass node. Baking LOD 0 mesh, exporting to blender and cutting it up in the same size as components of the landscape can potentially perform much better for the same drawcall count.
Mostly because it has no overhead mip nonesense. And you can control LODs manually.
the material would also need to be redone, usually just baking black/white textures that stretch over the mesh UV. That’s probably why the performance gain happens for me.
it’s a painful process though. Wouldn’t recommend unless you really need that extra 5fps.

And/or you want to create a mesh with high detail in a certain section (player area) and low detail elsewhere. Which the landscape doesn’t really allow for?
think setting import scale to 50% for x/y, baking that out, placing it inside a 100% scale x/y and isolating the area you need detail on - say a creek that wouldn’t paint right.

With the merge you can get extra res where you need. On a static mesh.

■■■■ , i didn’t know all that was involved , i thought once you generate the imposters , it would just place them where they should be when out of streaming range on the actual world comp tiles. I mean , in place of the actual tiles.

at a base level il does.

Any idea what would cause this big tile on lower right ? It used to be all same size square tiles.

Having placed an actor outside of the levels original bounds.

open just the level of the tile, without persistent. And remove the out of bounds object.

How do i know what is the out of bounds object?

I mean also , how do i know which actors are in which level?

Also i can’t seem to find any landscape imposter tutorials i noticed. I’m still just learning world comp , so it is difficult for me to understand . Some Unreal documentation or tutorials would be nice.

for you and everyone else.

They obviously are about to scrap the system, or they probably would have released some updates and tutorials on it in the last year.

As far as knowing what is outside the bounds, you can open up the map on its own, go to unlit mode in order to view something as it probably won’t have lights inside it.

From the top view zoom to where only the map completely on screen, drag select.
then in the objects panel of the level you need to go through and find whatever actor is not selected.

This doesn’t work for large actors that stretch across but those are usually real easy to spot.