Why is my landscape painting rigid and "square"?

I’ve found few answers to this, which all more or less say “increase the landscape resolution”. But this has never worked for me. Why is it that when I paint a layer onto my landscape, it looks like this? This is weight blending, by the way, if that’s at all relevant. Attached is an example of what I’m talking about.

I want a smoother, more rounded edge on the path and dirt patch. How can I get that? Or is there something else I’m missing, here?

image

Turn on the wireframe visualizer ^

Go into your landscape details panel, search LOD. Change those numbers to make more vertices, thus increasing the landscape resolution.

Landscape texture painting is done per vertex. Therefore, the only way to get better resolution is increase the amount of vertices (this is what people mean when they say increase the resolution.)

Hey BIGTIMEMASTER, thanks for your help.
However, when I follow the steps as you laid out, I can tell that the vertices are changing, but they aren’t necessarily increasing. What people have meant when they say “increase the resolution” is using the settings when first setting up a landscape to do so (such as ‘section size’, and quite literally, the ‘overall resolution’ setting). My issue is that even on the highest setting (8161x8161 vertices) in there I see a very miniscule difference to even the lower settings.
UE5_LandscapeSettings

As far as I can tell, without tesselation the most resolution you can get from the landscape is 1m faces. I think that if you are wanting what appears to be less than 1m resolution, you’ll want to use a height blend layer type in the landscape material.

This will break the blending up from being linear and make it look more natural, based on your textures height texture.

It’s a bit to setup but there is many tutorials on the subject:

Landscape Textures - Building Worlds In Unreal - Episode 3 - YouTube

Intro to Unreal Landscapes - Alpha, Weight and Height Blend Modes - YouTube

I always caution though - don’t evaluate a single aspect of the total art in isolation. Assuming you will have grass, trees, and other props breaking up the landscape, you may be solving a problem that won’t actually exist.

1 Like

Height blended layers was definitely the way to go.

How did you do it @Maladrum? I have the same problem and High blended materials don’t change anything. Here is the example with weighted-blend but it looks the samy no matter I change:

Have you solved this issue? I’m currently facing the same problem.

Hey guys!

Can anyone advise on how to use the height blending in order to get rid of the square problem when painting over landscapes?

Appreciate it!

Allen

Its not magic, it wont “get rid” of anything.
It may lessen the visual effect.
And many times that’s more similar to gasolene on dumpster fire that is UE4 landscape when you needed water.

I havent really reviewed the topic but i did see some BS that needs to be pointed out.

  1. the paint is not “per vertex” its actual paint.
    But the texture you are painting to equals 1m^2 to a pixel (default landscape 100x/y scale).

This is farily consistent, so the paint essentially matches up between any size landscape.
Larger size = more pixels.
Not a different ratio.

  1. tessellation never did anything for anyone, if anything it made performance worse and caused bugs on landscape tile intersections.

It was mentioned above with some other BS. Its not. It doesnt affect anything. Never did.

  1. I don’t actually see the proper solution to the problem listed, granted I barely skimmed throguh the topic. To have less of pixel like effect you need to run a texture or some other type of medium as the alpha of the Lerp between the landscape layers.

Given #3, a height blend partially does just this.
Generally, it isn’t enough.

This is simply due to the texture UV sizing.
Texture Scale is geberally the same or very similar across areas, to the point where the visual effect of the height based lerp is not actually enough to properly introduce enough diversity into the layer overlap to stop noticing the Square nature of it.

So? What do you do?
well, you can run the same idea manually.

No one on any professional project is likely to be using the landscape layer blend node stuff illustraded here

Mostly because their perormance is really bad.

So what do people do?
Well, you have layers which are an alpha (black/white) texture representing the way you paint the landacape.

You use that as the driving factor of a lerp to cover what the white area would be with your desired texture, while the black area is the rest or output of all the other combined layers.
(More layers, more perfeomance downsides ofc).

In the case of a simple 3 layer material you always have.
A base - no paint.
That is the initial layer you begin with.
And the 2 layers you want to paint in.

The material will looks something like.

Uv > texture > A of lerp.
UV > texture of grass > B of lerp.
Sample Grass > alpha of lerp.
Output into A of anotber lerp
Samole Rock > alpha of another lerp.
Uv > Texture of rock > B of another lerp.

You build up from there, and can add infinite complexity.

What you can also do is to math fudge your sample’s alpha:
Say you want the one pixel to be more than 1 pixel of paint. You can probably power of 10 the paint sample, and clamp it back to 0/1 range so that the material colors in not just the 1 pixel you ended up painting as a layer, but several other pixels around it.
I believe something similar to this is used in the GC kite demo.

However note that because the demo had to be somewhat performant, they obviously don’t really use landscape paint.
Its done with individual textures.

2 Likes

Adding to this.
A creative way to generate some sort of a blend.

You know the alpha of the blend occurs in situation where the value of the layer is Less than 1.

You can run a branched IF statement (apparenly you have to use Custom nodes again in ue5)
and output a texture channel (values below 1) on top of the alpha value, clamping the result in a 0 to 1 range, and using the output of the branch operation as the alpha of the lerp.

could end up being cheaper than a height blend if you utilize existing texture channels to make it.

Bumping this. Is there any way to tesselate landscapes further? Hight based blends aren’t really cutting it for paiting detail blends for smaller scenes.

I actaully found it. All I had to do was to rescale huge landscape object. Now I have verts in the right scale :smiley: Can’t believe it was so easy to fix…

1 Like

Hi, could you please explain how did you do that?
i’m having the same issue and didn’t understood what you did
thanks in advance!

Thats not a fix.
All that is is a reduction of around 500% in performance.

The landacape is made to operate with 1 vertex every meter.
Any variation of that will cause problems.

Yeah, this is what I did. Simply grabbed landscape plane and manually scalled it. Having 1 meter limit is really bad. There should be a way to subdivide areas of terrain that could use more. And if landscape can’t handle any operations like this is should be removed as a feature. As being simple useless with AAA. New system should be made.

I called it a fix as it allowed me to get nice painting in. But agreed that performance wise this might be a overkill. Unless game is small zone based.

i read your post explaining the alpha texture method but i don’t know how to actually do that. (create the alpha texture with the desire path and scale) do you know of any video or text tutorial where i can learn more about this method?
thanks in advance

Not really, but you just need to lerp of height lerp the two layers.
Manually ot using the landscape node for it

No need to increase the tesselation!
You just need to make sure your layer blend is Alpha blend in your landscape material (not the default Weight Blend):

:slight_smile: