Download

Huge increase in landscape shader count after enabling tessellation.

Hello, usually the shader count seems reasonable, but when I try to use landscape layer blends with tessellation (PN Triangles, Adaptive, No Crack-Free, Max Displacement of 100), the shader count increases dramatically, from 100s to 1000s. Is there something I’m doing wrong?

No. Its just a feature.
you can balance (or try to, imho they still havent fixed any of that at all) the landscape LOD to try and exclude LOD0 and get your frames rate back to normal.
it really is situational and depends heavily on the size of the components the landscape is made of.

Most importantly, disabling Adaptive checkbox on the material will allow for the tessellation to not affect the whole landscape, and you can also introduce a distance mask to only increase the multiplier in an area of about 10m or 20m from the character. Which reduces tris count overall.

There are tons of issues doing this on the landscape however, mostly because the landscape attempts to transition between mips with tessellation in a very very poor way.
Notably, instead of having a clean transition between mips, the system skews the vertex start/end by it’s own arbitrary amount - which looks fine without tessellation.
When tessellation is enabled, and you land on top of one of those squewed sections, the tessellation density jumps up to insane amounts per cm. Which cause the rendering thread to freak.
This is due to the fact that the tris getting tessellated is already small in size. Dividing a 1cm tile into 64 parts would result in each vetex being 1/64th of a cm apart.

I still havent really found a proper workaround to this. The shaders offer no way to detect distance between verticis of any kind as far as i understand. It would be super simple if we could just say “apply a tessellation multiplier of 0 to any area that is closer then 10units from another vertex”…