Tesselation needs to come back, desperately

Sorry, I think I finally understand. You’re right, subdividing huge surfaces is not practical when modular assembly is not an option.

Yes! Exactly! It’s not like I’m against nanite, when I’ll be able to upgrade my video card, I’ll definitely use it on anything that can be replicable/instanded, of course! The only reason why many of us are ■■■■■■, is because nanite is not a valid replacement for tessellation as yet. There are way too many uses for “tessellation”, and actually whole “world displacement”, that now are simply missing from the engine, making it look like a toy. Of course people are angry.

1 Like

Tessellation can cause FPS to drop, I actually stopped using it on all my projects, only normals for now, it´s even works if you use tessellation on landscapes.

Nanite has other issues, but I’m sure Epic is working on them, if not, the engine would already be released.

Still I believe it should stay in UE5, why remove it… or anything that previously worked fine in UE4, it just adds more possibilities to the engine

1 Like

There’s a way to use it, so you don’t subdivide a whole mesh. There is a subdivision node for it.
Follow this tutorial that shows how to change subdivisions by distance from a camera (sorry it’s in German, but you can easily follow what he’s doing):

1 Like

More basically make as tight a mask/alpha that you can to define where you need tessellation, and multiply your tess-value by that.

For my part, I find I can target the extra triangles this way, have tessellation applied to a variety of things in the scene and still only have it where I just-need-it.

Agreed that Luman and Nanite makes it a lot easier to ‘carry’ lighting information since you can make the models/assemblages as dense as you want, but I’d still like to be able to slip in a few triangles here and there to help a curved skirt of a model blend a bit better with the landscape, vice-versa, etc, etc; I appreciate ‘handy’ things.

“Still I believe it should stay in UE5, why remove it… or anything that previously worked fine in UE4, it just adds more possibilities to the engine”

This. I mean, if it’s still on the card as feature, why not expose it? Everything in Unreal, or any engine is more about using what’s performant for your project. If tessellation fits, why not at least let it be run?

1 Like

I think I just really don’t understand how you are using dynamic tesselation. This seems like so much more work to get something simple. Can you post an example of one of these use cases in ue4?
Ue4 has very good autoLOD tools. If you are doing non-game projects where memory is not an issue, why not just tesselate where you need it and LOD things down? It will run much better

So, some of this is the challenge, some of this ascetics , and some of this pipeline: I wanted to be able to make it such that a landscape and meshes could ‘talk’ to one another such that one could really drag/drop them together and have the material-logic sort out all the blending.

I didn’t want those seams in rocks. I wanted the rocks to come up ‘out’ or underneath ‘rising’ out of the soil so that the landscape layer would gather in the folds of the mesh and give it a more contiguous flow; no sharp seams or the like where they make sense to make go away (vs say intersecting wooden-beams). Organic would be the word; a literal edge-case…

Thus, currently, in UE4:

Fugly; I hate it. That is a set of “Huge_Canyon_Sandstone_Cliff_veoneio_3d” from Quixel Mixer, exported at 2k, LOD0, scaled to 3x (Stuff is always so tiny!).

Previously, one could use mesh-distance fields to get things to sense one another, but that always seemed to expensive, and the fidelity too low for my tastes. With (runtime) virtual-textures, performance is great and viable to get landscapes/heightfield-mesh to blend with other-stuff.

To-wit, with my solution enabled:

Ultimately, this also works across different slopes and mesh configurations, marrying the two so it ‘just-works’:

If one uses the RVT to blend just the albedo/normal, it looks good-enough in most cases, and for flat-things, or surfaces aligned to whatever I’m blending into, you really don’t need any displacement:

However, it’s those sheer-surfaces again that can ruin the illusion; stretching with just blending texture information:

As compared with the mesh-blending added back in:

Since I know the height of the mesh-pixel and the height of the landscape, I can bend that portion of the mesh right-below/at/above the landscape out so it blends better. Using an RVT to blend a mesh is great, but the more shear the surface (dot-product = 1) to the source of the RVT, the more that oh-so-obvious seam appears and for normals, no real way (that I can see) around that particular use-case. So! What to do, bend the mesh…

From something like this:

To this:

Any good alpha will be tight and only right-where-you-need-it, same here, I only need to bend out that portion of the mesh from right above the landscape to the portion below. All to make the two surfaces less oblique with regards to one another, all to make the normals align better, all to make the lighting more consistent across the two on the albedos…

…All to make a single fraking line go away… :scream:

Ultimately, for me, nanite is awesome, I love it, I get how it really culls out what you really don’t need, etc. BUT, at some level one still needs skirts, or, admittedly, one could use a pre-tessellated mesh, but that also presupposes my landscapes and meshes are made specifically to go together. Teams align over things like this, create standards. I create standards too but as far as assets, for the solo-dev like me, I really wanted to create some kind of drag/drop solution. This works for me and opens up all the marketplace assets I might want to use, that I can just-count on them being ‘compatible’ with other stuff.

I might be a niche type of use-case, but that’s what I am using tessellation for.

If Epic could get the tessellation of the height-mesh to just wash-over everything so I could drive it with materials, that would be ideal. Otherwise, yeah, took a little mathing to get here, but it was actually fun and I learned a lot along the way. It’s performant, tight, and doesn’t really cost as much as you might thing it should for what you get (IMHO)

EDIT, up really close:

Their reason for removing tessellation:

2 Likes

Hey guys,

Make sure we’re being civil with one another when trying to generate ideas or solutions. Remember we’re all just trying to help! :slight_smile:

1 Like

So basically, hardware tesselation is gone, but they are planning on bringing tesselation and displacement back as part of Nanite (or at least that’s what I got from that post). That sounds acceptable enough for me. Just hope they don’t put it on the backlog and we have to wait 4 years of updates before it happens.

3 Likes

If I can put tri’s where I need them, that’s the use-case. If I can get this in Nanite, I’ll be happy.

I have started a petition you can sign to help save Tessellation!
Nanite is not a replacement for tessellation in most cases. Also tessellation + displacement maps are invaluable for generating procedural meshes with high detail.

2 Likes

Man, I’m sorry to break it for you, but it’s not about petitions… Epic engineers didn’t remove it because they’re lazy or ignorant. There must a serious technical hurdles that weren’t possible to overcome. If tessellation already didn’t work on some platforms… it means it’s not exactly proper technology to support in the following years. Love it or hate it :wink:

Epic doesn’t remove stuff until it becomes a blocker for technological advancement. Matinee from UE3 lived through the entire UE4 generation, although it was primitive and generally unusable.

Rendering tech is always a set of compromises. You can’t always introduce new features or introduce entirely different renderer (when almost nobody in the industry has sth similar) and keep all older elements intact. Especially if the engine supports various platforms.
This new approach was developed over the span of a decade. If it would be so easy to support feature X because someone from community petitioned, they would support it already :wink:

2 Likes

Ok, but not everyone is releasing games on every existing platform, there are designers who are making games only for PC, so removing it because it doesn’t work on mobile… it’s kind of ridiculous, it is also a problem for projects using UE4.26-27, and then trying to upgrade hundreds of materials to UE5.

FPS is actually worst now (UE5 preview) for the default scene, even youtubers are saying that UE5 is just for pictures LOL, but I understand it is just a preview.

The fact that 1 person made this petition, it doesn’t mean it’s almost 4K views, and 74 comments do not add up, or should be ignored.

2 Likes

Lumen, Temporal Supersampling and Virtual Shadow maps are enabled by default on new projects in UE5. Disable these and you ought to see comparable performance with UE4. Otherwise if you choose to use those features, you will indeed pay, like anything else.

1 Like

They clearly stated that tesselation isn’t even supported on consoles.
The engine is developed for all platforms. It’s not made just for you and your needs. Especially if you don’t pay for support - just guessing it as you raise issues on the open forums.
It’s a crazy difficult job to maintain all rendering features available on many platforms, not always possible.

They didn’t remove tesselation from the PC, they removed this concept from the renderer entirely.

Anyway, I would love to have Custom Stencil support in Nanite and… There are a few important features not supported by Nanite there and I’m afraid they would focus on that more than bringing the old tech back.
It’s not like I’m against your petition. It’s just… engineering resources are finite.

I have projects on UE5 and there’s comparable performance to UE4. The last time I checked it was 2-3ms slower on GPU, but that’s with Nanite on (fixed cost) and more expensive TAA algorithm. Lumen and Virtual Shadows were too costly in my cases, indeed.

Sure would be nice to get tesselation back.

5 Likes

There is something that works: UE5 Geometry Script - Displacement Map - YouTube

I assume this will not work for landscapes, though? Which is a huge part of the problem.

I used tessellation to smooth out characters. Why remove it? (unless it absolutely can’t help but clash with nanite etc.)

It was very helpful indeed in so many ways.

1 Like