Download

Tesselation Factors Beyond 16 (Are these viable now for landscapes?)

So I was unimpressed with landscape displacement due to the low max triangle density, so I manually increased the max tesselation factor to 64 in the PN and flat tesselation shaders. The PN triangles seemed to really tank performance but the flat tesselation looked really good and had only a 1ms increase in performance and still pretty low memory overhead (using adaptive tesselation set to 500 fade distance). I’m using a 2070 super so I’m not sure what it will look like on and cards, but most complaints I’ve seen in regard to amd performance is from 2016 so maybe it’s improved. Also this is in editor and with only 1 material with no foliage so that might get a lot worse later on. FYI using a slightly modified version of the megascans displacement material.

Just curious though if anyone has experience with this and if their are any other performance issues I’m not seeing.

Tons of performance issues. As a rule of thumb if you want to tessellate throw unreal landscapes out the window.
Use your own static meshes and you’ll have no performance issues.

also, note that adaptive means that the whole mesh is tesselated instead of just the area you are in. So you cannot fade over distance and you end up over triangulating the scene.
This obviously becomes an issue when you also have other geometry in the scene.

Another issue to look out for is that the higher the tessellation factor the more you destroy performance when at the edges of the components where the automated (and complete s h i t I may add) MIP process takes over.
you have no way to disable the automated mip process either, so you will always have areas of the landscape that have 1mm of space between on x or y between 4 vertex.

Do you think any GFX would be happy to do the math of where in world space 64 triangles need to appear within an X by 1mm space? No. They aren’t. And the performance reflects this.

Using a static mesh, which doesn’t have any of the MIP process absurdities the landscape has, doesn’t have any of those issues.

Thank you for the response. Ok, so it is performable but I’ll probably have to just use my own static mesh instead of an unreal landscape. In regard to your comment about adaptive tessellation, you’re saying that adaptive tessellation will increase the triangle count at higher LOD’s because it will always at least slightly tesselate part of the mesh, no matter the distance? Btw I’m using distance based tesselation that comes packaged with the quixel material.

Correct. It keeps the whole component/mesh at the same tessellation amount instead of allowing for a gradual falloff. Whereas, with adaptive off your distance function can work freely.

I doubt quixel can do anything beyond the usual for reducing tessellation at a distance… its a tried and true method/formula and/or a core concept.
You can optimize it by forcing calculations into custom UVs so that they happen on the cpu, but it makes little to no difference between using the custom uv or just doing the math before using the UV for the mask.

If it is an option, you’re much better off just waiting for virtual heightfield meshes to be implemented in my opinion

It is mostly fine to unclamp tess factors. 15 must have been some old legacy thing.