Decimate-like Functionality in Landscape Mode

Would it be possible to implement some sort of attribute in Landscape mode that would allow us to control the vertex count “with minimum shape changes” (https://www.blender.org/manual/modeling/modifiers/generate/decimate.html), such as ‘ratio’ does in decimate modifier in Blender? This would help tremendously when attempting to create low-poly terrain. I best I am able to achieve through the cross-product trick is this:

5abdc4b0527d0c212467f17914adbca4d67d3a10.jpeg

Unfortunately, this is sorta a one trick-pony. He can do spiky terrain nicely, but that is about it. Hills do not look good using this because of the amount of vertexes being used. For now I am only using it as a base layer for the map and using static meshes over it to achieve to overall look I am going for, but it would be nice if the landscape could be a tad bit more flexible. With that being said, UE4 is love, UE4 is life.

Correct me if I am wrong but isn’t that which you are describing TESSELLATION? I know you can use tessellation to increase detail tremendously.

Tessellation is both expensive and applied to the whole mesh afaik. Im assuming he would like to be able to increase/decrease the density of vertexes in any given place on the terrain.

You assume correct. I have been unable to figure out any other tricks that would help obtain that look without just using static meshes. It is not a big deal, but it would be an awesome to be able to have that control.

Ive always wanted a similar feature as well, to allow finer details when sculpting the terrain and as well as to smooth out large plateaus on their sides.

So sort of like ROAM patch terrain, except that it would be precalculated?

In one of the digital foundry videos they were discussing the tech behind RISE OF THE TOMB RAIDER. I think one of the interesting things were they used some form of TESSELLATION for the snow that Lara would walk through. Essentially only sub-dividing the areas which required more detail. I am not sure how it is done. My approach for static mesh terrain would be an aggressive LOD system but that probably wont work with very large meshes and probably wont work with terrain.

I remember a while back I read an article for mobile development where they were discussing using Mipmapping to select areas required for the displacement but I don’t really know enough on the technical side of this.

First of all the landscape is height map driven so this is not possible, and you can’t create like in the pic total vertical walls with details.
Second the vertex in the terrain are always in the same possitions, so you can’t handle a style like in the picture, only if you use a external model.
To this case a voxel terrain system should be better but in UE4 aren’t nothing of that…

*You can edit the density of the landscape.

you could tessellate the landscape based on the slope, so you tessellate cliffs to get more polys on them. it will not look like a hand-made low-poly mesh but it will be better than stretched polygons

for not having the same vertex positions, you can offset them in X and Y with a noise texture hooked into WorldPositionOffset. that would already allow you to achieve a much less uniform topology look as opposed to the default grid-looking vertex positions

The problem I can see is that the current Tessellation level is based on distance, and also divided into discrete chunks (components) - both of which give landscape it’s power and speed. Start adding additional methods to calculate the tessellation and you start incurring significantly more cost. I imagine that it would also be difficult to avoid introducing holes and split-vertices in the terrain, which you obviously don’t want.

You can reduce the density of a Landscape, and you can modify the LOD levels too - but looking at what OP wants he might just be better off making a mesh in a 3D package and importing that. I doubt even a Voxel system would work very well for that style of terrain, you’d struggle to get the sharp edges. A static mesh would be infinitely faster, would give you finer control over the UV’s and even per-poly collision would probably be faster too. Hell you could even divide it up into chunks and LOD each individually if performance is still a concern. Sometimes the old methods are the best :slight_smile:

EDIT: Also worth adding that you can export the Landscape you’ve already made as an OBJ and import that into a 3D package like Max.

TheJamsh: I reckon there’s a way to make Tessellation not behave on a distance-based scale, a setting in the material itself.
Then if the Tessellation Factors allow an input like a texture you would be able to control where the tessellation happens. there’s also the Retopologize tool, which might do exactly that, but more properly.

You make some fair points about the static meshes approach, but Landscape has a superior and much hassle-less workflow just because of sculpting and LOD.
Aside that, and LOD aside, a Landscape is faster than a static mesh (talking about a mesh with the same density). This simply because memory-wise, the Landscape is only a 2D array of Z positions, while a staticmesh is a list of XYZ positions / vertex normals / tangents.

Oh sorry I meant the tessellation of the Landscape mesh itself, which is what the Landscape uses for LOD. Currently there’s no way to change that (you can tweak the parameters, though).

That looks like a good solution but I think that no collide with the player.

If you go for the WorldPositionOffset method, Landscape has a tool to re-compute the collision based on the WorldPositionOffset stuff from the material
On the paper, everything you need is all there :slight_smile:

This is very interesting! Where can we read more about this feature?
I was planning to do this manually by using the same math in material and physics calculation for the tank suspension to add fine grain details to landscape. So we don’t have to ride over completely flat polygons anymore.

I haven’t actually used it myself but I know it’s there (that’s why I said ‘on the paper’)
You can read about it here: Landscape Sculpt Mode in Unreal Engine | Unreal Engine 5.3 Documentation but it doesn’t say much (just try to use it I guess)

You mean “retopologize”? Are you sure it uses material for this? One would expect for this to work on a whole landscape not only cliffs.

The retopologize tool seems based on the landscape (per painted area or something, no idea). it’s not something about the material
the material thing would be if you go for Tessellation, but really, if the retopologize thing works it seems better to use it