Landscape painting issue

Hello,

I have a landscape material with 3 layers. To easily demonstrate the issue, I’ve created a solid color as my base layer:

http://uupload.ir/files/qg2_1.jpg

I paint with the second layer:

http://uupload.ir/files/7f8r_2.jpg

Then I paint with the third layer on the second layer, You see a red outline around the third layer, the base layer is bleeding through between the second and third layer:

http://uupload.ir/files/wte2_3.jpg

Let’s change the base layer color to blue, you notice the outline around the third layer becomes blue:

http://uupload.ir/files/juw1_4.jpg

I spent some time but couldn’t find the cause of this.
Note: The issue appears only when using Weight-Blend layers.
Some help here would be really appreciated.

Do you have the same issue, when importing splats from external software?

When using splat map there is no base layer bleeding between second and third layer.

http://uupload.ir/files/ece_61.jpg

http://uupload.ir/files/b3oe_152.jpg

I’ve actually meant to ask if the same would happen if you import the weightmaps into respective landscape layers.

Yes it happens again:

http://uupload.ir/files/hqqk_23611.jpg

This problem existed since release. Whatever is the cause, this effect is undesirable.
Mistaken it to another issue with height-blended layers.

Hmmm… We seem to be plagued with more problems than unanswered feature requests. >.<

Chaining lerps won’t help, when both alphas are low it will turn red, or blue or whatever. That’s how you set it up. Let’s say it’s 20% material A, 80% material B at the edge of where you painted. After the first lerp it’ll be 20% material A, so 80% red. Then after the second lerp it’s 80% of material B mixed with the reddish result of the previous lerp.

There are better ways of setting it up in the documentation. Landscape Material Layer Blending in Unreal Engine | Unreal Engine 5.3 Documentation

Asphalt is a 100% full circle when I paint the dirt on it. So at the asphalt and dirt blend there shouldn’t be any blue or green outline since whatever weight is being added to the dirt layer, there is weight being decreased from the asphalt layer. There is no reason to have any outline in the middle.

Now that material I’m showing in OP is only for demonstration. My main material is so big and at some point I have to use lerps somewhere, have no other way.

It gets blended at the edges even with no falloff and max hardness. Because it’s getting blended they are both between 0 and 1 which means red will appear. If that’s not how it’s supposed to work you should submit a bug report.

Basically when painting with layer 3 on layer 2, whatever weight is being decreased from layer 2 should be added to layer 3. I still can’t see why layer 1 should be gaining weight there in the middle. Still waiting for past 6-7 bug reports to be looked at, so making another report is not really going to help unfortunately.

I’ve actually jumped in incorrectly with my previous post, mistaking it for another issue with height blended layers.
This one is not a problem at all.

So, what actually happens is something like:
When the weight of layer one is 1.0 and weight of layer two is 0.0, you first interpolate between layer zero and layer one using scalar value of 1.0 , and on the output you get only layer one.
Then, you interpolate between result and layer two using scalar value of 0.0 and on the output you get only previous result, which is layer one only.

When the weight of layer one is 0.0 and weight of layer two is 1.0, you first interpolate between layer zero and layer one using scalar value of 0.0 , and on the output you get only layer zero.
Then, you interpolate between result and layer two using scalar value of 1.0 and on the output you get only previous result, which is layer two only.

But when the weight of layer one is 0.5 and weight of layer two is 0.5, you first interpolate between layer zero and layer one using scalar value of 0.5 , and on the output you get 50% MIX of layer zero and layer one.
Then, you interpolate between result and layer two using scalar value of 0.5 and on the output you get MIX of previous result, with layer two, which is essential mix of all three layers, while technically, you have this spot fully covered by two layers.

To get desired blend, it might be an option to multiply layers by their weights( layer zero should be multiplied by one minus sum of other two layer weights) and add their results together.

It is, but when the layer 2 weight is decreased it turns into layer 1 in your setup. But Deathrey explained it better than me anyway.

Are you using weight blended layers or non weight blended?

Weight blended.