I am trying to optimize tessellation for my landscape. The idea is to project a white circle at the player/camera position and use that info to tessellate the area close to the player. When I activate Flat Tessellation and put in a constant 0 to de-activate it, the fps is the same as when using a constant 1. (See pictures)
Look at the constant value and FPS in the viewport:
That means even if I mask out an area in the shader to “deactivate it” with a 0 value, it won’t help since the tessellation is still as heavy as before. Is tessellation unusable for big landscapes or is there a way around this? I would think that every company/person who uses tessellation for an environment should run into the same problems but there are pretty much no info at all about UE4’s tessellation on the internet… I have other threads here on other tessellation questions but no one seems to have the answers. There must be someone out there that can help!
The hardware already tries to only tessellate polygons near the camera even if you don’t manually mask by distance.
There is also a rather huge fixed cost to applying the tessellation shader to landscape that will be incurred even when not doing any tessellation. So it is likely that since your camera was not looking up close to the ground, the amount of new tessellated polygons between your comparisons was fairly low.
It also looks like your landscape needs better LOD settings. You should never see a basically solid wireframe like that. The tessellation shader is most likely choking because there are so many vertices. Try increasing your “lod distance factor” while possibly setting “maxLODlevel” to something like 6 or 7. Sometimes that can bring your landscape wireframe way down.
Even with optimal settings you will have to make tradeoffs in order to use tessellation on a large landscape.