Download

Deleting Landscape Components and Replacing them with Static Meshes (Performance)

So I am developing a mod for the game Squad (unreal 4.23.1), I am trying to create a jungle landscape with a 16 sq km (4065x4065 resolution) landscape with at most 256 components. My current plan is to take a 8129x8129 64sqkm landscape with 1024 landscape components, delete components down to 256 components, create a static mesh of the height map of my full landscape, and fill in the deleted components with their static mesh equivalent; cutout from the aforementioned full landscape static mesh. The idea is to have these as super dense jungle which will be unable to be maneuvered through by ground troops (some I plan just being a static mesh of triple canopy tree cover with no modeled ground), but can be flown over with helicopters to mimic a much larger 64 sqkm while the actual maneuverable landscape is still 16 sqkm.

Is this idea performance viable? Will trimming a 8129x8129 1024 component landscape down to 256 components with a combined surface area equal to a 4065x4065 resolution landscape give the same performance as a landscape that was originally imported as a square 4065x4065 256 component landscape? Does a non square landscape that is missing components in its center cause issues? How would the landscape coord node work in this situation? Thanks for your time.

Not seeing any benefits so far.

Pretty much.

No.

Coordinates would be as if components were present.

Thanks for the reply. When you say “not seeing any benefits” you would mean, if the replacing static meshs were exact copies of the associated landscape components? I wasn’t clear in saying that I was planning on lowering the triangle count by merely modeling the top canopy of the replaced components and adding extra fog to mask the lack of detail, maybe breaking up the outline with a few tree imposters sticking out of the top. Or is there another issue that might come from using large static meshs like this that you are alluding to?

Your component math seems way off.
max landscape size is ~8km and it is bad for performance on lower end cards due to the sheer size of each individual component and the fact they don’t lod down if they are active.
basically when you position yourself in between 4 tiles you get lod0 on all of them and thus you increase the tris count by a ton even if the tiles are mostly occluded.

Yes, you benefit performance wise from using static meshes instead - assuming they are lower tris count and size than their landscape counterparts.

If they are exactly the same, you may still get some benefit from it… for one, you won’t have to have tessellation on without a way of turning it off, or the silly mip system that automatically tessellates lod transitions…

Using large static meshes can be an issue, but it depends more on their tris count.
for instance, a 1000m^2 mesh, with verticis every meter (1,000,000 vertex) takes a really long time to import (particularly if it isn’t pre-triangulated) or may even crash the engine…

Max landscape size is around 8x8km I believe which is 64 sqkm (8161x8161 is 1 cm per pixel scaled by 100 to 1m which is about 8x8 km). 1024 or 32×32 components with 254 quads a components 254x32 is 8128+1=8129, lowering down to 256 or 16×16 components with 254×16 is 4064+1=4065. So where is the off math?

So something to look out for is to make sure that the player doesn’t hang out near component edges is what you mean? In regard to you comment about components getting lod0 if the player is between components.

​​​​​​​So it might be a good idea to break up the meshs and turn them into proxy meshs in editor, or maybe use multiple HISM per replaced component?

Sure the math checks. You have 2 different options for the 8k size landscape. The biggest one is the worse having the largest components.

if your max needed size is 16km you have better tile options. You should use those instead.

Being near the edge of several components is unavoidable. Even if they are large. Currently you can’t really force the engine NOT to use lod0 either.

No need to break up stuff really. You can use world composition and generate the mesh in engine with whatever parameters you see fit.
You can keep a copy of both so you can modify and update the landscape, produce the new mesh and reload the level that uses the mesh. It even bakes down the paint to one single texture (and a normal) making it much better for performance.
you do somewhat loose the ability to have phis mat on it. To get it back you have to color map the different layers on a version of the engine that supports it (post .23 I think)

The way you would benefit from hism is when using same size identical tiles.
Potentially… if its for visual only you could use the heightmap to manually displace a hism tiled world. Visual only because you get no collision on it, but it should be cheaper because of the instancing and culling that would occur.

Based on your original post.
play with wold composition on the landscape size that perform bests for your PC.
on a 1080ti or less 1009 is your go to.

Unfortunately this is a mod for Squad (multiplayer fps) so world composition is not an option. What you mentioned about HISM is intriguing though, I might experiment with those.