Tesselation needs to come back, desperately

I… honestly have no idea where to even begin with this.

Well, to explain the reason why tesselation, wpo, and deformation are not supported currently, from the stream (at a question asked about procedural meshes I think), Karis said that the algorithm that generates the nanite mesh is too slow for real-time. So deforming a mesh a lot each frame would need the system to regenerate the nanite mesh each frame.

WPO is not supported on Nanite meshes. That’s fine. We can just not run Nanite for cases where we need deformation. Except wait, we can’t tesselate those meshes anymore, because tesselation was taken out, so your only option is to subdivide the source mesh, but then you can’t use WPO because Nanite… Well, you get the idea. It’s a vicious circle.

3 Likes

I think you are all once again missing the fact that on the stream they said that they want to add support for deforming meshes.

Here’s the timestamp.

2 Likes

Problem is there should be a way to easily snap nanite meshes to surfaces that are uneven especially for terrains/landscapes/static base meshes. This is problematic for say example sand dunes in a desert covering a huge landmass. Also a way to blend them into each other too like how you blend meshes into landscapes.

Look at infinity weather product on marketplace . Seems to be great use of it right there.

2 Likes

For whomever is reading. I wouldn’t mind Tessellation b/c it does provide a great way to use math/textures to break-up, randomize, and cheaply (?) add detail nearer the character. Given it can be texture driven, or otherwise in a material; I’m always a fan…

Particularly with landscapes, I would love tessellation to be more performant. For static meshes, you can take a CHEAP mesh and add a lot of cheap detail to it.

I am afraid that is a tool after all, not a final product.

Gears 5 used it for snow. I don’t know that this really qualifies as a good example though, as they built “their own custom a-sync tessellation” for it.

I assume virtual heightfield meshes may solve this particular use-case though.

Yeah, that definitely qualifies as a good example.

gotta say though, tesselation is still super useful as long as we are not all rocking 5 TB SSDs.
if I turn my level thats using blended tesselated material layers into nanite its size will explode from a couple hundred MB to multiple gigabytes, retaining the exact same visual quality as before, though performance might be a bit better.

3 Likes

Does this mean that any sort of displacement is just not happening in the meantime? Painting landscape layers and blending any displacement detail, just not going to happen?

Still, custom implementation. I don’t know anyone who managed to squeeze UE4’s default tessellation into their performance budget, from my testing it was always a monster performance hog.

Exactly what I planned on using it for as well: snow, mud, anything goopy/deformable.

I like creating detailed floor meshes out of 10x10 sheets and using tessellation to add random details since it can all be noise/texture driven. It’s nice to be able to just-apply a material and have it all work itself out.

From what I can see with the virtual heightfield mesh, it only works on the Z-axis (unless I am missing something)? It’s not true vertex-aligned deformation, is it?

I don’t mind not having tesselation. But what alternative can you provide for getting runtime landscape deformation for mud/snow tracks, crater.
Context: Having a system which uses virtual texture and RVT decals for drawing realtime deformation on landscape, for tracks on mud, snow (+puffing), explosion crater etc.

So, some second thoughts on this.

I was able to get the virtual heightfield mesh (VHM) working, and somewhat well by my standards. All I-myself really wanted out of tessellation was to add that fine-level of detail to help break up the mesh, etc, it’s all texture/material driven which is handy, all the reasons we like.

For landscapes SPECIFICALLY, it was always such a hog, costing me 10’s of FPS (that ■■■■ RenderQuery!!!), BUT whereas the VHM always crashed for me, I managed to get it working today.

ref: Finally getting the hang of the newer heightmesh in UE426! - Album on Imgur

Results look GOOD to my eye, pretty much what I wanted to get out of it, so for landscapes at least, I am VERY happy with the VHM as a replacement.

That leaves static meshes which seems to be nanite as a solution, but I’d still like some kind insert-extra-vertices-here type of thing. For me, it’s the idea that I can tie it to material logic that really makes it happen; just smoothing-out’ a surface by inserting vertices is good, but I’d still want that low-level control over things so it comes out exactly as I see fit…

1 Like

So some third thoughts…

I was on a roll with the new landscape thing I got to play with and I wondered if I could blend a mesh with the VHFM as well as sample the color…

Behold, my friend, Mr Conehead, with the lower portion, a skirt if you will, being mapped to the shape and texture of the (hidden) VHMF:

Same cone just moved up to show how it looks:

Same cone with the heightmesh turned visibile to see how it blends:

W/border:

Nifty, eh!

The idea here is now that I have a drag/drop solution for a landscape I can now ‘just’ drag-drop meshes and expect them to blend seamlessly with the landscape… I DO need to improve the blending, but POC is that this works, works well, and for what it’s worth, gets a big thumbs-up on keeping Tessellation. Unless nanite can be driven via a material in this manner, I wanna keep tessellation for my static meshes…

Thoughts?

1 Like

I agree where you said that UE5 is still incomplete, and needs more time to progress, but I disagree with you when it comes to Tessellation. As someone explained in another forum topic related to this very same issue here, Tessellation cannot be substituted with Nanite because it is a completely different use case.

Tessellation has advantages outside of just displacing models such as smoothing the surfaces of meshes (even skeletal) and also be used to create very complex stylized animated displacement effects on the fly. All of which utilize translucency, and many other material based effects that the devs didn’t really seem to have intentions for when it comes to this Nanite feature. Nanite is just mostly designed for compression, and handling huge amounts of triangles.

The other thing is that Nanite relies too heavily on external software outside of unreal, and this means that no matter how much they optimize the actual conversion process of meshes into Nanite, things on the 3D modeling software side wont improve at all. With UE5 everything already seems like a much slower process now because 3D modeling software still has a long way to go before catching up to what UNREAL 5 can handle. I already saw this as an issue after finding out the steps that had to be taken just to get a subdivided mesh into the engine. UE5 literally throws us at the mercy of less powerful programs in order to get the most out of these features.

When Tessellation was still a factor, dealing with limits of a modeling program wasn’t an issue. On some level, full dependency on Nanite in these areas can actually become counter productive. There is no reason that both features cannot be included into the software. Epic needs to leave the choice to the developers so that we can utilize these tools how WE see fit. This is one of the biggest advantages that UNITY has over unreal right now. I left Unity and will NEVER go back, but I DO miss being able to just build whatever kind of shader I wanted, and utilize old features no matter how much the program itself kept upgrading. Sometimes it just felt like you had more control, and that’s a GOOD thing.

I feel like there is no reason to remove something that is working REALLY well especially if they cannot match what that thing could ALREADY do before removing it.

4 Likes

For me, the 50,000ft view is that I want to be able to leverage the power of textures/materials to help drive this type of integration, etc.

I can see that the mega-structures of nanite can do a LOT, I mean FFS, it looks amazing, but I don’t want to have to instance my way to high levels of detail, if I can otherwise use a material to some of the lifting algorithmically.

If there is a way to build/randomize mega-structures, that would be great, but I can foresee there is a decent artists-technique to building them, so might not readily lend itself well to automation?

2 Likes

Texture driven detail is important in part for spline/houdini workflows. Nanite doesn’t work for a high portion of this, but the speed with which you can construct a world is unmatched, not even nanites “no bake” stuff comes close.

The Ascent, easily one of the best looking UE4 titles, or any title, was managed by a fairly small indie team in part thanks to a heavily houdini based workflow. You can see some of their stuff on Artstation, but the tools they build like “room builder” were brilliant, snap snap, click click click and drag, and suddenly you have a good looking room. Click a few more times and suddenly a custom set of piping models are in place snaking around your level in exactly the way you want.

3 Likes