4-way blend material: Transition problem

Hello, I have static mesh landscapes that I would like to paint with vertex colors, so I’ve just created a 4-way blend material for this task.
It works, however, all textures seem to blend through the first ‘base’ texture, which in this case is a green grass texture:

Bez tytułu.jpg

As you can see, the textures blend with green tint that comes from the green ‘base’ texture. Is it possible to eliminate that?

… I’ve just replaced the green grass texture with pink color to visualize this better:


It looks like typical behavior, when painting vertex colors in Blend Weights mode. This should not be the case, If you paint each channel individually.

Hmm, I’ve just tried painting individual channels in ‘Color’ mode (by changing Paint Color to R/G/B) and it provides the same effect.
In ‘RGB’ View mode I see that e.g. green color blends with red color properly, but it still blends through the base texture instead of green-assigned texture and red-assigned texture…

… Ah, OK, I got it :slight_smile: Separately painting RGB channels == checking/unchecking the Red/Green/Blue/ checkboxes and painting with white color :slight_smile: Thanks, now it works with proper transition!
UPDATE: It doesn’t work when painting over existing colors :frowning: Because when I paint e.g. green on red, the RGB results in… Yellow.

… Something is wrong with the vertex painting. I’ve painted the colors like this, in Color mode:


Yet it doesn’t effect the texture:


… But vertex colors work when I paint it via ‘Blend Weight’ mode.
This is strange, even if it clearly shows green & red vertex colors, it doesn’t apply proper blend texture…

Sorry for combo post, but I’ve found a solution: The example material in the documentation is wrong. Here I’ve found a working material - the difference is the opposite order of ‘Alpha’ inputs:

With material like this, all the problems mentioned above are fixed.

I am glad you found a solution. It also looks to me like most people could probably skip the final lerp if you treat the 1st layer as the ‘base layer’, meaning layer0 has no alpha, everything else just gets painted over it. That is mentally what makes more sense to me anyways. And it would be cheaper.

Ah, I think now I understand how this is intended to work - thank you for the explanation!