This tutorial will describe the steps to create a landscape that renders to a virtual heightfield mesh.
The heightfield mesh is an experimental feature within Unreal that creates an endlessly tessellating surface which can render-out height information. Think of it like a flat-sheet that one feeds the Z-position to via a runtime virtual texture (RVT) stack. Things render into the RVT which then drives the look and position of the heightfield mesh.
If you were previously using landscapes with traditional tessellation, then this is the new, mechanical replacement for such a thing.
UPDATED: fixed the lighting issue caused by not having hidden-shadow enabled for the landscape. updated the relevant pic and part of the tutorial. your landscapes should now properly cast shadows into the world, properly creating dark areas, lee in the light.
Thanks for the tutorial! Following this is the first time I’ve been able to get good results using RVTs + VHM on a landscape.
I noticed there is a single error in your doc though:
The chapter where you describe setting RVT Height Properties, the image there is the Details Panel for the Landscape actor, not the RVT_Height object
I was able to figure out what to set in the RVT_Height object properties by reading your notes later in the post, but just wanted you to be aware of that as it took me a few minutes to realize that I was not in fact missing something haha
Fixed, and a couple other things fix. I think I might have transposed the pictures but I went through again to make sure they are where they are supposed to be.
Added a couple more for verbosity (on the Main objects).
I Have a flash idea like:
step 1 : Create a heightfield using world creator, export 1K and 4K heightmap.
Step 2: Create a landscape in UE 5.6 using 1K heightmap import.
Step3: In Runtime Virtual Texture output, use 4K heightmap texture sample instead of world position.
A 2k landscape w/4k heightmap might work for the import on the landscape vertices, but for the actual per-pixel height on the heightmesh, that’s only 1/2 meter resolution. Fine on import but not runtime. As well a VT cannot feed another VT so it would break.
Nanite landscapes are better in the long run, just-as performant, much better lighting/culling. I don’t see the heightmesh doing much since Epic hasn’t updated it in a while.
I’d consider the tutorial outdated, but there are solid concepts therein.