Strange Missing Textures On Landscapes

Hey everyone, hope all is well!

Got an interesting issue I’m running into: my landscape has a sort of Tetris pattern going on where certain quadrants of the landscape aren’t showing the material I’ve applied. I’m just curious as to why this may be the case.

Thanks!

Hey Andrew, thanks for the response!

I looked around a bit to see if I could find the answer for this myself, but found nothing, so I’m curious as to what sort of values the extensions take? Would you put in the size of the terrain itself, or something else?

As far as the material is concerned, I’m not, at least right now, doing any sort of displacement, at least as far as I know (I am rather new to all this…) Below is an image of the setup, the bottom wires, in case you’re wondering, lead to an unused tessellation bit.

A quick break down would be that I have a set of four textures for albedo, normals, roughness, specular, and AO, feeding into a layer blend set to alpha blend on each layer, which is then hooked up to the main node.
Each layer has been populated with a raw image output from World Machine (as well as the heightmap itself.)

You mention landscape bounds, could it be that the textures themselves are not lining up correctly? Or would that present itself in other ways?
I’m wondering because I’m not so sure my raw image bounds match the landscape’s…

Again, I’m really new to this, so in essence I have no idea what I’m doing.

Hey Hypocrita,

So your issue looks like it could be related to the bounds of your landscape. If you are using World Position Offset or Displacement within your material and are pushing the vertices of your object past its bounds, then certain areas or the entire landscape will begin to flicker.

To counter-act this behavior we’ve added the Positive and Negative bounds extension for the landscape actor. See the below image for directions on how to modify these settings.

Let me know if you have further questions or need additional assistance.

Cheers,

So I do have a couple of inquiries in regards to how you are creating your landscapes material. I am assuming it is all on one layer, which is why they are all sharing a Landscape Coordinate node.

Could you provide me with either steps, or your project so I can see the issue on my end and possibly figure out what is occurring?

After creating your material and applying it to the landscape, have you created the ‘LandscapeLayerInfo’ for the layer itself?

Since you are not using WPO or Displacement, then we can rule out the bounds idea for now.

Thank you,

As far as I’m aware, I’ve applied the material and set the layer info, then pointed it to a raw image file upon creating a landscape actor.

Which files from the project would you need? That might be the simplest thing to do.

I’ll try to explain as best I can what process I took to get to these results, though.
First thing, I imported a few texture sets, by that I mean albedo, normals, etc for each texture imported, like mud or grass.
I put those into a material and hooked up all the UVs for each texture to a landscape coordinate node, set to 5 for the scaling in the coordinate node.
After separating them into each texture type, albedo with albedo and so on, I hooked up each, for instance, albedo to a landscape layer blend node, set to LB alpha blend and 1 for the preview blend.
Then I hooked up the output of the blend node to each material channel, let it compile shaders, and those kind of results showed up.

I’ve also had, when messing about a bit, completely black images on the landscape, not just spotty texturing. As best I can tell from my debugging, it seems like that at least comes from the blend node, although why, I’m not sure.
I mention that just in case it has some bearing on the issue at hand.

Hopefully that explains things a bit. If not, though, just let me know what files you need and I’ll get them to you. =-)

My main question here is, are you importing heightmap or are you creating one within the editor?

At this point I might need you to zip up your project and share it with me so I can see what is occurring on my end. I prefer you upload it to a shareable google drive link so I can download and have a look.

Also, in case you had not seen the documentation yet, we do have some solid documentation on Landscape Materials and the nuances of creating landscapes. Take a look at the links below for more information.

Landscape Materials

Landscape Technical Guide

Let me know if you have further questions or need additional assistance.

Thank you,

Ah, I’ve been importing one that was made in World Machine.

I’ve not looked at this project in a little bit, and after coming back to it, I had to re-import the heightmap so that I could demonstrate the issue.
However, strangely enough, the issue didn’t actually present itself. At this time, I had the material only set up with a diffuse channel.
After seeing that, I decided to try hooking up all my maps, four textures for albedo, normals, specular, roughness, and AO.
The issue then became an issue that apparently is caused by putting too many textures into the shader. After cutting that back one at a time, the issue with spotty textures presented itself once that previous one stopped showing up.

Now I have questions: currently for 4.13, what are the limits for custom textures within a material? I’m also curious as to how the layering system works when you’re importing raw image files during the heightmap import process. Like what overwrites what? Or is it purely a system of white regions get written, black gets ignored, and they’re just sort of spliced together based on what you import and how your material is set up?

I’ll be researching these myself, but figured it best I mention them here regardless. If you would still like to see my project, I’ll share a link. The map file is called “Test,” and the material is “TerrainMaterial_2.”

Let me know if you have any other inquiries. =-)

Link to project

So there is a hard limit that is in place by default which restricts your landscape from using more than 4 texture samples per landscape component. To avoid this limitation you can set your texture samples to Shared:Wrapped which will allow you to use up to 128 unique texture samples.

This was implemented in our 4.6 engine version release which you can look over for yourself by following the link below.

[Unreal Engine 4.6 Release Notes][1]

Let me know if you have further questions or need additional assistance.

Cheers,

Awesome, exactly what I needed to know. Looks like everything is working now as intended.

Thanks for all your help! =-)