Landscapes need a rework after years without big changes

Someone said about Cryengine, I tried in other engines to see what happen and well take 700Mb of Ram for a 8x8Km map and UE4 take more than 10GB of Ram…

So let’s do some math. You want 8km^2 size with 0.5m details. Minimal amount of storage space this need is (16*1024)^2 * 2bytes for heights = 512Mb. For rendering you just need few thousand indices to make grid and share vertices. Memory for this is negligible. At editor you can double this so you can edit and render it smoothly. You also need to store paint weights for this. First layer could be free. Second layer cost byte per sample. So 256Mb per layer after the first one. For editor you can double this. XY offset map is 512Mb but this should be optional. For absolute performance layers could use smaller texture than heights. To make bigger landscape than this you probably need streaming. But streaming should be simple. If only couple first LOD would load high detail heightmap and rest of the landscape could use single global height texture 1/16 of size.

Making this kind of system is quite simple but making good and robust tools are nightmare.

Also painting landscape based on slope degree was requested a very long time ago.

yeah that was part of my suggestion post
always good to reinforce some of the points :smiley:

Memory footprint of UE4 terrain is frankly huge. While you can’t really do much with the heightmap size, How the weightmaps are approached should be probably overhauled. Why not store texture ID per vertex, rather than weight of every texture? Surely you would loose some flexibility and control over blending, but I would prefer it over inflated memory usage.

Frostbite has the best terrain system in the industry at the moment. There are several really helpful PDFs on that Epic can also take a look at. (If interested).
Battlefield 3 had 8k terrains while the game as a whole runs perfect even on some low end PCs. With Star Wars they even have massively used tessellation and layer blending on the terrains and still the game as a whole runs at a butter smooth 60FPS.
Epic did do some massive open world showcase with Kite Demo but never really took the tech to a usable state. There were many complains about how bad it ran but the blame was usually diverted towards the huge texture sizes and such things while in fact, unoptimized and old systems played the major role there. This can’t be a fix to come with 4.15 or 4.16. It will take it’s time and needs a lot of effort which I hope to see it happening sooner than later.

Terrain rendering in Frostbite is quite similar to how it is done in UE4(judging from PDF out there at least). Core difference is probably how layer masks are stored.
Actually, you’d be very surprised about how faster kite demo landscape performs, after getting rid of duplicate runs of UnpackNormals function and getting in dynamic flow control.

Lol, the Issues system has voting. So far I see people getting their ideas submitted to Issues system, yet not even authors bother to come and vote. Epic already stated that votes do count. Come and vote for this one Unreal Engine Issues and Bug Tracker (UE-14056)

since when is UE-14056 public? yesterday it wasnt! :eek:

I’m pretty sure that votes on the issue tracker are far from influence factor.
Actually, I just realized that all my feature requests were connected to landscapes in some way. I’ll leave the short list here once more in desperate hope of catching few extra votes.

In another thread I made similar posts. Users replied in a similar manner. Epic chimed in and said while it’s not a decisive factor, it’s quite influential one.

you mean the one about tessellation, that lead to Epic limiting tessellation on landscapes except for the highest quality LOD? :rolleyes:

I’d agree that “quite influential” is good description.

Nope. I mean particular issue where landscape tessellation is performing considerably worse as compared to static mesh coupled with dynamic shadowcasting.

tbh I need to get the same values between landscapes right now and is imposible, the mirror tool don’t work between landscapes, and the sculpt tool don’t have something to scale to the same value of the near landscape, and the copy paste tool can’t rotate and flip… I can’t use 4 small landscapes without get holes between…

Am I the only one who wants a sculpting mode for landscapes? I’m tired of makeing holes into the landscape to make overhangs with static meshes :mad:

Well, what you are describing, instantly brings landscape system to a new degree of complexity. I’m pretty sure that you are not the only one, who would like this feature, but I doubt that something like that is happening in the next few years.

Hevedy, I think there is something wrong with your setup. I have used an 8k landscape map. and my memory footprint has never gone over 4 GB for the UE4. It usually hangs around 2.5 Gb, idle. And neither my terrain looks as jaggy and sharp as yours.


With Tessellation enabled -

Well your setup is not at 255 quads no 127, and about the other detail, place a character of the normal character size you will see the 1m = 1vertex.

And the memory use turn up when you edit the landscape, you just used an external heightmap.

You sould notice a 4GB of use only in a empty scene with the landscape without textures. And in the images you send 50-60% of CPU use looks like not too normal as you can see.

If you use 255 quads for 8k map with 32x32 components, then the overall resolution will be 16,321m. That will effectively make it a 16k map, not 8k.
with 127 Quads, even when editing Landscape, the memory doesn’t go over 4GB. I have used a fully textured map with foliage painted and memory usage remain around 4-8 GB depending on what I was doing.

If you want to use 16k map, then you are better off with tiled map with world composition, I’m not sure even CE5 can handle a single 16k map.

No the size of UE4 is 8x8 and you can check the defautl size is 8x8 not 16x16 with all at is 8x8km with a 1m = 1vertex poor detail.

You’re a luck by the way, cause there we are more people with the same problem.

And there is other problem can’t use different landscapes since you can’t with the engine tools without multiple generated heightmaps make the landscapes in sides have the exact height…