Something Very Wrong Is Happening With My Landscape Painting Tool

So I was messing with my scene and noticed that whenever I mixed multiple layers on the same tile, all of the layers would loose the normal map detail, and they would only earn the detail back if I left just 1 layer painted on that tile. Its kinda hard to explain.

Here in the video its visible that when I paint the tile with 2 layers, the entire tile looses the normal map detail, the same happens with the other tiles if I paint on them

I will also provide the materials of the landscape and layers below!

Landscape Material:

Layer1:

Layer2:


Ignore the lerp alpha being empty, its just for demonstration :slight_smile:

I cannot see what Im doing wrong…

My monkey brain figured it out, each input (base color, specular, normal,etc) needs its own specific Layer Blend node. I guess it makes sense now.
Previously I was blending Base color, specular, roughness and normal data into the base color, now I know they need to be separated per layer blend.

You don’t need to layer blend each channel. Blending whole material attributes should work.

Could be the lack of normal info in your grass function was causing it to be ignored? Try wiring it like it was with some random normal map added to it (or just a blue vector3).

1 Like

I tried that before, unfortunately it didnt solve anything, it only made it worse, for some reason it makes my textures to not load in the viewport which I thought it was happening because I reached the maximum amount of texture samples on my landscape material but then I noticed that Im only using 1 texture (Macro Variation texture) multiple times, so it only counts as 1 texture, also the textures are set to Wrap!

I dont mind having it this way, as long as it works. Still a wierd behaviour.

Hmm, no idea what it could be then. Unless there’s some conflicts with alpha or height blend layer info somewhere? My most recent landscape mat has entire mat functions blending into one layer node and it works just fine to split off and feed into rvt object.

But, yea, if multiple blends work, then they work lol. All those wires would drive me crazy though.

Im not using alpha right now, the only not so normal thing that Im doing is, Im converting the macro variation texture which is black and white noise into a normal by using NormalFromHeightMap node and plugging the output into the normal of the layers, but I doubt that affects anything.

Thanks for the help anyway!

Is there a specific reason you are sending material attributes to a virtual texture output, then pulling from a virtual texture sample as the entire material?

Isnt that the way to setup a Runtime virtual Texture for your landscape?

If you are looking to capture the landscape as a virtual texture, there is a Runtime Virtual Texture Volume, that can snap to the dimensions of your landscape and capture to a virtual texture from there.

Im also doing that, also the node setup that I was using in the images above, match the ones that Epic uses on their RVT setup examples.


This image is from their Runtime Virtual Texturing UE5 Documentation website.

As you can see its the same setup with the exception that they have a switch to not use the RVT if the computer running the game does not support RVT’S.
This probably is bugged on my project because I upgraded my project from 5.1 to 5.1.1 which tends to brake stuff which already happened before a few times.

Actually there was another thing causing a similar issue with the normals of the landscape.

Here is the post that solved it:

If you have multiple layers in your landscape and (lets say) you have a rock layer that uses a normal map and then you have another layer (grass) that doesnt use a normal map, and then you try to paint both in the same landscape tile, you will get wierd results like seams, wierd tiles that reflect alot or nothing all of the sudden, darker tiles than others, etc.

So if you have a layer with a normal map, plug in normal textures or a vector 3 ( 0,0,1) in all of the other layers.
If you have a layer with a specular map, plug also a “0” or a “1” or a specular map in all the other layers!
Same goes with all the other inputs!