Download

Large Landscapes vs Level Streaming

Hi all,

So I am about to begin work on a large environment project which I would initially think to use the new Landscapes tool to make one huge mass of stuff.

However, on the forums I have read alot about how “expensive” and “performance killing” large terrains can be. This concerns me greatly and one workaround that I thought of was to create some smaller terrains and then use Level Streaming to mesh them together?

Could anyone comment on this as a technique and the overall performance hits from each solution. Purely for discussion, let’s assume this concerns a terrain at near to the limit of landscape.

TL;DR: When considering physics collision and game performance, how does a single large landscape face up against several smaller landscapes streamed together?

I have a very similar question as the OP, only I want to add a little more specificity. How does UE4 handle a far off distant view of a single large landscape if the game is using streaming levels for the landscape?

For example, open world game, some high altitude locations allow view of very distant scenery. But on the contrary, the engine is using level streaming, so my understanding of it is that those distant sceneries would not be visible because the player is too far for the stream trigger to activate. I understand it as, “Player is withing x-distance of area=load specific area of landscape”.

So, that level stream trigger wouldn’t be activated if the player is far away from it, and a beautiful view of scenery objects, kilometers away, would be empty/not stream (load)

Which summarizes into my version of the OP’s question:

How can we simultaneously allow level streaming for areas (“levels”) near the player, but later in-game, allow those areas to be viewable (lod versions of course) if the player reaches a more distant geographical point that gives a wide, distant view of the landscape?

Is large open world level streaming better than classic LOD/“fog” hiding trickery. So much depends on a landscape’s ever-changing views. Things once hidden can be unhidden by turning a corner.

Example: A landscape area “level” with a castle that was hidden behind a small mountain, may be set to stream into game when player is 0.5km away, but not streamed otherwise. However, that same castle “level” area may become visible when the player is 3km away with a good clear view of the castle’s location.

Is their one solution for 2 different views?

Which sounds best for a big open world: level streaming or old but reliable lod based landscape with unfortunate pop-in issues?

(Sorry I tend to ramble on too much and can’t be concise. I hope the questions make sense.)

Whether you stream it or not, you still got it all loaded in at the same time no matter which of the two you do, as you’d need to be able to see the entire thing at once when standing on a mountaintop. That means you still got all that collision there, all that stuff to render, and the problem with not being able to populate the huge open space.

Alternatively a possible work around hack could be to have a low rest distant terrain mesh/actual terrain in the persistent level, and to then streamed in a more detailed copy of that terrain in small cells when you get up close, along with meshes placed on top. Thus that way when you look in the distance you’d see a large open landscape, but it would only load cells of detail as you walk around.

That does make the workflow a bit annoying though, as you need to match the two terrains together (or probably it would be smarter to use a huge staticmesh for the distant terrain rather than a landscape). You’d also have issues making the cells load nicely (you’d see them just appear, not fade in or such, unless you make all materials masked and you fade them in or you make all meshes use the LOD system and abuse that to fade at the same time as you load in a cell, but then it is getting really hacky)

Perhaps what’s needed is an LOD system that can add or remove a large scope of detail smoothly over great distances. It can’t be crude like we usually see in games where the geometry of mountains and buildings can be seen morphing dramatically from not very far away. The simplification of geometry needs to not sacrifice the outline of the object from the player’s point of view. Objects and terrain should be compressed/flattened to a plane that is always facing the player so that objects always have the correct outlines as the player travels around the level.