Download

Using Displacement maps with Nanite

I must say I was sincerely thinking that the next step for UE5 would be having camera distance based tessellation for static meshes but we got Nanite instead which while awesome might be time consuming especially for time constrained projects.

So with Nanite, I am wondering if there is way the devs can implement a displacement slot in the material editor or a displacement function for static meshes and using the modeling tools, the displacement can be applied to the nanite mesh.

Because with the material editor, we can blend, combine and mix different displacement maps as well as tile them and that can be applied to the nanite mesh inside UE5.

On a side note, does anyone know how to turn off displaying Nanitestats. I entered Nanitestats 0 in cmd window and it doesn’t stop displaying.

Displacement will be deprecated starting with UE5EA+ and I also don’t see how Nanite is time consuming lol.

I thought only Nanite meshes didn’t support displacement, standard LOD0 static mesh does.
You could always turn off Nanite for that particular mesh as Nanite and standard static meshes still work hand-in-hand.

UE5 could definitely use a modern update of parallax occlusion maps that works better w/lumen and etc. in large part thanks to tools like substance designer.

But that’s a common set of feedback already.

Well, that isn’t good news. So how do you use nanite with a large environment that is a dessert with dunes, no rocks allowed? You have to blend between 3 or more textures in an external software and create the displacement map and set it up all over again in ue5?

Thats double work tbh, and you can’t use kitbashing because of the unevern flat surfaces the environment requires. So if you make changes to the tiling or mask used for blending, you have to remake the displacement again.

This may not seem like much but if you have a good number of assets requiring this, its gonna be disruptive workflow wise everytime.

@JW3153 True but if the meshes are quite large, turning it off might not be the best approach.

@Frenetic_Pony Maybe, but I think since Nanite is now a thing is all the more reason why displacement should have been front and center natively in UE5 especially using it with the material editor.

I’m assuming here, but I think that’s what the virtual heightmap stuff is going to solve. I’ve seen a video showing it used to achieve the same result as displacement materials.

Really, Thats good to know. Does it work with materials from static meshes?

EDIT: Seen a vid on youtube but they are for landscapes only.

The virtual heightmap stuff is landscape only. There’s a screenspace based tesselation ability with the water plugin, but that’s still of course not really covering all the use cases for displacement maps.

What happens if you don’t want to kitbash, what happens if you want to use a lot of procedural meshes from Houdini or UE’s own spline and modelling systems? How are you supposed to make foliage and characters with the same detail level as nanite without it, especially as Nanite won’t cover those for a while, if ever.

Nanite is great, but hyper focused on one very specific asset class through one very specific art pipeline. Displacement would help a lot with all other cases, virtual heightfields too, so if tesselated displacement is going to be deprecated a replacement would be useful.

I wholeheartedly agree.

I personally find landscape system in ue4 to be outdated and welcome the introduction of nanite but what they need to do is find a way people can embed the displacement setup they make using materials to the static mesh imported into UE5.

If one sets up a mesh that has the bare minimum quads it needs in an external software and imports it into ue5, converts to nanite, subdivides it and bakes the displacement to the mesh from the material setup, disconnect the displacement node setup link to the material in the material editor since it is no longer needed as the displacement has been applied to the static mesh, this is better.

You can always change the displacement node setup especially where tiling is involved and re apply to the mesh and disconnect the setup after.

We also get to keep the file size down as we don’t need a high file size for mesh imported into UE5 and Nanite compresses the file size of this meshes after subdivision and the displacement is applied.

This is already possible with the modeling tools in UE5, we just need to find a way to use node setup from the material editor or maybe a material function?

Ah yea, I understood the original complaint being related to landscape. I fully agree.

Perhaps its time to integrate some form of screen space displacement as an option for lower-res meshes?
SSDM: Screen Space Displacement Mapping (divideconcept.net)