Landscape material error

Hi guys,

I am trying to create a landscape mat with 6-8 layers.

Here is the landscape with 4 layers

Once I add these 2 layers:

I am getting this error :
7532542e04.png

Is it because I can only add 16 textures in a material? How can I workaround that ?

Also how should I be able to use those awesome ground tiles materials from Kite demo if they are instances of the master material in a landscape? Is there any better way to do it? Is it possible to have tesselation on landscape?

Thanks in advance!

Try selecting your texture sample nodes and setting “Sampler Source” to “Shared: Wrap”. That gives you more samplers.

For the Kite Demo terrain, we used versions of the materials that were setup as Material Functions. Generally they were pretty simple, using diffuse as roughness and specular by using a Lerp with scalar parameters. I thought we included some of those but maybe they accidentally got cleaned up since no terrain was released with the Marketplace project. I can post an image of one if you’d like. They will be in the full KiteDemo release soon as well.

Hey Ryan,

Thanks for sharing.

Yes an image would be awesome. I have no idea how to use the material instances except for taking the textures and adding them manually inside my landscape mat. Full kideDemo release? omg that’s awesome news!

What about tesselation? Not possible on landscape mat?

Tessellation is possible but generally very expensive on terrain. For KiteDemo we did not use it.

Here is a typical ground layer for the Kitedemo terrain. This one is for the layer of RiverRocks, which we used as both riverbed and scree piles:
8aab8169bf1ace9c730fca09322ca0c52b8dd0d1.jpeg

Notice that we still used the displacement even though we didnt use tessellation. Displacement can still come in very handy for improving the blend quality by using the “HeightLerp” material function.

You can use it to make the edge go from this:

To this:

The displacement is also useful for blending in water to make it look like it is more wet in the deep parts of the texture:
eba26d4fdceff53077cb2ed169b569c2a1000479.jpeg

And also note that there is an output pin for displacement raw (without intensity, on the actual Attributes node) and also one for heightmap raw, and one for Displacement with intensity. That is simply because some blending functions might use the 0-1 range but other functions we might want to use the actual height of the displacement.

1 Like

Hi Ryan, thanks for taking the time to give such a detailed reply.

I must say the result looks pretty amazing. I am having some problems achieving it.

I am not sure how to use the make attributes node, I tried to do it the same and then from the make attributes to connect with a layer and it resulted in an error. Then I’ve tried to bypass the make attributes node and just connect simply the normals/rough/spec with layers but then I am not sure how to make the world displacement pin available on the final node. ( other than setting tesselation on in the material’s details.)

P.S : How soon will the kite demo be released?

where do you actually utilize the height lerp to make the edges so much nicer, I didnt see it in the material blueprint

I use a “layer sample” node and then I use that as the transition phase input to the height lerp function. Then the desired heightmap texture goes into the “height” input, and we use the “matlayerblend” material functions to blend entire layer attributes using the alpha output from heightlerp.

re: material attributes, the image I posted above is using material attributes. You make the attributes inside of the individual material functions. Then to blend between a material attribute you use a node such as “MatLayerBlend_Standard”. I also made some such as _withdisplacement that you may also want to use since standard is fairly limited.