Tracking down landscape color difference

Hey, any help would be great as I’m really scratching my head on this one…

I’m creating a new landscape material for our project as our previous material was really eating up our frame rates and we’re getting a colour difference between the two and I just can’t figure where its coming from…

In the attached screenshots, the original material is on the left and the new material is on the right… The new material looks faded and desaturated, but all of the buffer visualisers look identical (base color, normals, roughness, ao etc.) (we’re using a slightly different roughness map, but I don’t think it’s different enough to be causing this effect). But somewhere between the base colour and scene colour this fading is added. Both screenshots are on the same map with all same lighting and post-processing etc, with just the material swapped. The source textures in both materials are the same…

If anyone has any ideas where this color change might be coming from would be a great help…

Many thanks,
Mach45

Images in order: Final fully lit version, Buffer Visualisation: Base Color, Normals, Roughness, AO, Scene Colour, Final Image

If set in static lighting and you haven’t baked - usually - the colors slightly differ, could that be it?

What are the differences between the two landscape materials? Perhaps there were other changes made to the lighting?

Open your textures in UE4 and make sure all the settings are the same (sRGB, etc.).

Hey, thanks for the replies…

How do you mean by baked? We’re using static lighting, do you mean running a lighting rebuild…? (have done that and no change)

The main difference between the two materials is that the original one was using a 4x4 atlas with diffuse, normal, and an rmao map (with height and roughness) (all using standard color sampler).

The new material isn’t using an atlas, so separate samplers (shared:wrap) for each texture set, with each texture set having a diffuse with roughness baked into its alpha (colour samlper) and a normal with height baked into its alpha (linear colour sampler)…

The layer blend and final material output settings are identical in both materials…

Image1: New material - image outputs go straight into layerblend then material output.
Image 2,3,4: Old material - image 2 outputs go straight into layerblend then material output.

So the old material looks more complicated, but really its just unpacking the atlas, the only difference in how the actual textures are treated I can see is the custom node in the seamrem function (which as I understand it just adds some padding when generating the mipmaps so you don’t get bleeding lines from the pixels of the adjacent textures when generating/wrapping the mipmaps).

Any help would be really appreciated as this issue is really bogging me down, and I need to start making some progress… :confused:

Hey, sorry to bump but if anyone has any ideas on this would be great…

Has to be a result of the lerp with the texture blend function.
nothing else looks likely to affect colors.
try swapping the textures in it to solid black /.white colors. If the end result is gray, the issue is the lerp.

Can you explain the Blend Overlay with the 01AltLowTint? In the previous material, what is the BMF_Atlas_Tint? I’ve haven’t seen this.

I would remove the Blend_Overlay. Just connect the Grass RGB directly.

Or, instead of an overlay, multiply each individual RGB channel by its own float_1 (or Vect3 * Vect3). This requires some trial and error. Feels like a hack, but it works.

FFR, you can save a copy of the original material and experiment with that. Best way to learn.

Also, the lighting build “bakes” the static lighting, it creates a lightmap. Are you using dynamic lighting? Generally, if I need one, I try to drop the other.

And yes, by baked I meant have you rebuilt the lighting after waiting for the landscape material to compile.

Pro tip. Create a landscape with just 1 component. Duplicate the material, add the material instance off the duplicated material to the landscape.
With the latest engine you’ll have to wait a while for shaders to compile. Having the least amount possible of landscape components will speed this up a tad bit.

I like it.

Hey, sorry for the late reply things got a bit hectic here for a bit… Thanks for your replies, I did some more investigating and after a lot of tracking found the problem… Basically the material has a lot of layers (16) available, and I forgot to attach the const 0 to the specular input of a couple of the higher layers… For some reason although those layers weren’t being painted to the landscape they still had the above effect on the landscape…

ps trying a few of the things you mentioned eg. attaching black/white to the lerp function and got quite a cool effect… :slight_smile: https://youtu.be/P1AWZJ2-FCQ

Thanks again for help…