Bug: Paint Landscape

Hello, I’m new here at Engine and I came across a huge doubt. Every time there is a meeting of 3 different textures, counting with the base material of the floor, the checkered texture appears and it doesn’t leave there at all, not even compiling. Help me I don’t know what to do.

as far as i know this is a limitation of the landscape.
i think by using weightmaps you should avoid this because they are basically alphamaps but their value adds up to 1 so there is always only 2 materials blending on any single pixel or landscape vertex

Thanhk you

It is not at all true that you can only have two layers blend.
I blend more materials than that and it works fine!
What render/shader model are you using? What’s your graphics card? And are you SURE there are no shaders compiling? Sometimes it takes a while.

i read somewhere that but i dont know what is the limiting factor, if its the landscape material or some other layering method. maybe its for older shading models dunno

I really wish people would stop giving ■■■■ answers.

OP, set all your textures to Shaderd:Wrap
Google that.

Every item has a limited number of texture samples. The landscape usually gets bloated with several textures so you ran out faster.

comments about other people giving ■■■■ answers

then proceeds to give ■■■■ answer

if it was the sample limit the whole material would have defaulted to the grey material, not just a component

No. only the landscape component that has exceeded the limit turns to the default grid material.
As a rule of thumb, if you have No Idea what you are talking about, do not answer a question. Thanks.

[quote=“didel23, post:7, topic:234292”]
comments about other people giving ■■■■ answers

then proceeds to give ■■■■ answer[/quote]

This is amazing! I almost could not resist piling on the recursive reference here :slight_smile:

Speaking of such answers “the sampler limit” changes per terrain component, because the material gets re-compiled / re-optimized based on which layers actually have data in them. So when you touch a component with some new material it hasn’t seen before, it will re-compile that material for the particular textures/layers it actually uses.

Also, mobile materials have some really low maximum limit in actual use, I seem to recall 3. Which is why “which target is this?” matters.

Mobile supports up to 16.

Default is 8. Max is 12. out of those some samplers may not be available.
DX11 allows for 128.

I’m talking about “landscape material layers touching a block” not “number of samplers.” They are of course somewhat related – if you have diffuse and normal samplers, that’s two samplers per layer, and then you need to sample the splat map itself, which gives you 7 samplers for three layers. This might in turn indicate that getting away with a single sampler per layer could help significantly!

Looks like they lifted the three-layer limit, presumbably by doing splatting/overdraw, though!

Mobile landscapes are no longer limited to just three Landscape layers. While three is still an optimized case, any number of layers are supported provided there are sufficient Texture Samplers.

Which is a nice win!

More on more phones strive to support DX11 standards/libraries, so its not at all unexpected.

The number of layers per component is directly related to the # of samples, which is why most noobs run out and post about it in the forum.

Each layer has a number of samples.
If you paint multiple layers on a component, and they don’t share the same texture sample, then you eventually run out of sample like shown above.

There’s tons of techniques to mitigate this, including stuff used by the virtual texturing. Or simple UV slicing. Or packing of the channels.

Kite, for instance, uses the R channel of the base color as roughness (if I remember correctly).

Doing things right also helps with shader complexity later on, when you need to optimize the mess that is the built in landscape system to get a decent frame rate.

Then again, on mobile you just create a mesh impostor, delete the landscape and use the baked mesh… a lot easier to balance the performance that way.

Não sabia que precisava de um modelo de renderização de shaders! Qual devo usar? Minha Placa Gráfica é Otima. E não a shaders compilando.