UE5 Landscape displacement

there are any way to apply displacement to the landscape from a texture? i didn’t found any way to activate it

From what I have seen and read, displacement and tessellation are deprecated or removed from UE5; but I could be wrong. The idea is that the introduction of Nanite makes those obsolete - although I disagree to a certain extent.

I have read the same, but for example If i want to apply displacement to my landscape material I can see that there is still world position offest, but, with nanite in this version, We can’t apply displace the landscape without geo?

Th

That is what I understood as well.

A friend of mine says Nanite does the rasterization using the Computer Shader and does not follow the normal hardware rasterization pipeline. Now I am not sure if this is correct or not, but this kind of explains why we are restricted from doing any kind of deformation, displacement, tessellation etc… on a per vertex basis on Nanite meshes.

So from all that I have seen so far we may not be able to deform Nanite meshes at runtime, so that rules out procedurally generated meshes (like roads, paths …). Displacing a landscape using a heightmap will require us to displace the vertices of the mesh during the vertex shader pass, and if Nanite triangles do not go through the vertex shader pass, then there is no way to apply any kind of runtime transformations on the vertices.

Do keep in mind that these are guesses and not authoritative. I could be completely wrong about this.

1 Like

I’m going to guess that Virtual Height Field Meshes are the future for us deforming landscapes based on the material applied to them. There’s an experimental plugin for it in UE4 and 5. I haven’t tried it in UE5 but it definitely works fine in UE4 to get the effect without actually using standard displacement tricks like Parallax or Tessellation.

Yes. You need to use Virtual HeightField Mesh & here’s a tutorial for that:

5 Likes

Nanite won’t have tessellation (well displacements, WPO or any sort of mesh deformation) for the 5.0 launch in 2022.

And they even not considered using Nanite for Landscapes.
They suggested to use Virtual Heightfield Mesh.
(All these were mentioned in this: Nanite | Inside Unreal - YouTube)

I am toying with that for a quite sometime & it looks like a really good solution. See: Displacements on Unreal Engine 5(UE5) Landscapes with Virtual Heightfield Mesh - YouTube

Interesting. I hope something like this is eventually supported for normal planar meshes as well, so that we could do procedural generation of tris.

2 Likes

I think this is already exists. There are some clever projects on GitHub & Epic also demo something with foliage generation.

Anyway, they address this in the above talk as well. It won’t have Nanite support or something like that. But, anyway what’s happening with Virtual HeightField Mesh is also interesting. It can change LODs quite fast too.

Hope, someone could reuse that logic & extend from there.

Thank you, I will try to make it work on my current project, do you think that is a good solution? I mean, I want to convert one of my U4 projects to U5 but the landscape’s shader is did it with displacement

Have fun trying to get virtual heightfield working with world partition. Unreal should have supported the traditional displacement and tessellation until they worked out the bugs.

I have tried many ways and cannot get virtual texture or virtual heightfield to work with larger open world maps using world partition. It works fine on a non world partition map; with of course big fps drops which is the opposite intention of this new direction.

This now breaks every workflow, may have to consider Unity!

3 Likes

Does anyone know how to use the VHFM without Open Land?

4 Likes

It would be great to find a solution that doesn’t require all this extra plugin juggling and 15 minutes worth of weird settings. Are we still at a point in UE5 where it’s not possible to apply a displacement map in a straightforward way?

2 Likes

The problem is that without normal displacement basically UE5 can say bye-bye to ArchViz. Recently I was working on the project in UE5. I have imported the BIM model. Great. The facade of the building is made of bricks. The only one thing I could add was bump, since the displacement is no longer there. And there is no way to “change geometry of the wall” before to have the bricks already in 3D.

This is such a wrong decision on so many levels. But this hits probably 50% of the 3D market which uses UE.

1 Like

I would agree with the idea of nanite replacing landscape displacement if it were actually a full replacement. It’s not.

It does not work with heightmap-generated landscapes. It does not work with landscape texture painting. It will not work with procedural foliage. It will require you to work outside of unreal on an external application for any other displacement use cases.

It is not a suitable replacement at all. I honestly think I would rather have displacement than nanite.

VHFM is allegedly going to do these things, but it is significantly more annoying to set up and there is no documentation. AFAIK it’s still experimental.

They basically cut off half their users at the knees with this change. Don’t deprecate older tech until the replacement is fully functional…

2 Likes

I would remind you guys that you are using an early access version of UE5 and we still do not know what the featureset of Nanite will look like or the state VHM will be in when UE5 actually launches.

1 Like

That’s true, but at this point it would be nice to have some of these questions at least partially addressed, I would think that they must have an idea of what would be available on release. It hard to plan development not knowing if and how they will handle these critical features.

1 Like

Yes…at least knowing whether or not we can expect essential feature sets or not would be a huge step forward.

It is early access but it’s not like its 2 years out. Spring 2022 is SOON, and we still don’t know if this will be fixed…which makes me worry that maybe they don’t know yet whether these things which are absolutely essential for many workflows will be fully functional by then.

Again it comes back to the issue of…why are you deprecating features before their replacements are ready to fully replace old functionality.

I have tested Virtual Heightfield mesh on a 8x8km single landscape using world partition.
It does work as a kind of layer on top of existing landscape.
And ofcourse it does not have collision so dont displace it to extremely.
Was able to do normal displacing and overlay puddle depth’s etc.
With that size landscape you cannot use water river/lakes with it but as a test it did work.

1 Like

I think it’s a very stupid decision to remove the displacement mesh material function, because many materials with displacement effect need this function, which is very flexible. Nanite is fixed and rigid, and can’t realize those functions at all. Can’t this function coexist with Nanite? I think it’s very ridiculous. The important thing is that Nanite has many major defects, Transparent materials are not supported, skin animation is not supported, double-sided effects are not supported, and multiple materials will also have problems

1 Like