Adding Displacement
Setting up & using displacement on the Studio licences of PANORA|make
PANORA|make's paid licenses supports landscape displacement, using Nanite (5.4+) or legacy Virtual Heightfield Meshes. Both methods are compared below:

Minimum UE Version
5.4
5.1
Performance Cost
Big
Recommended only for cinematics or 30fps targets.
Moderate
Depending on the level of resolution of the VT
Texture quality
Same
It's the same material ; no difference.
Moderate
Depending on the level of resolution of the Color VT.
Virtual Texturing required
No
Yes
Excluding a Sub-Layer from caching will also exclude it from being rendered in the VHM.
Collision and Shadows
Yes
No
Displacement depth
Free
The displacement can go upwards, downwards, or both; and follow the landscape normals.
Upwards only
The displacement only goes upwards from the landscape; regardless of normals.
Keep in mind that both are highly experimental and have issues.
VHMs are legacy and probably won't be updated further, don't really feature collisions or shadowing, and can have runtime bugs when packaged with blocky artefacts.
Nanite Displacement is very performance heavy - adding 4ms of GPU render time on a mobile 3070 GPU and has issues with AMD GPUs as of UE 5.4. Having to manually add config lines in the .ini files of the project shows how experimental the feature is!
After the initial setup, you just have to enable the Displacement space in the Sub-Layer's material settings, and then set your map.
The features and setup required are listed on the tabs below depending on your choice.
Setup Instructions
In the Project Settings, ensure that Nanite is enabled...

...and enable Nanite on the Landscape. Make sure to rebuild Data after enabling it.

Then, go in your project's DefaultEngine.ini. Look for a section called "[/Script/Engine.RendererSettings]" and add these two lines under it:
r.Nanite.AllowTessellation=1
r.Nanite.Tessellation=1
Then restart your project. You should now have access to the Nanite Tessellation features in the Global Options.

Enabling it will allow the Displacement maps to be used with Nanite. If it is disabled, they will only affect Virtual Heightfield Meshes.
You need to have set virtual textures on the terrain with the volumes. See Landscape Caching for more information.
Place a Virtual Heightfield Mesh actor in your scene, and in its detail set the Virtual Texture to your "World Height" VT.

Then, click on "Set Bounds" and in Heightfield click on "Build" next to "Build MinMax Texture". Let it build its mesh.
The build time can take some times, depending on the size of your terrain and size of your height VT.
Then, create a new material.
It will be used to apply the texture of the landscape into the Virtual Heightfield Mesh.

The material should look like this : a Runtime Virtual Texture Sample linked to our normal VT, which sets the Color/Specular/Roughness/Normal to our Heightfield Mesh.
Assign this material to your VHM and you're done !

The VHM can be hidden in editor to not interfere with the edition of your Landscape Instance, in its details. It is hidden by default !
The displacement maps & their force values blends with each other, if 4 sub-layers blends with each other then their dispalcement would be a middle-ground between each of their values.
To use the Nanite Displacement when cached, you'll need to add a Runtime Virtual Texture Volume containing a VT using the type "Displacement", which will be drawn on by the Landscape just like the Color and World Height.
Last updated