I am currently working my way through a lot of the documentation, youtube videos, and forum posts. The methods I have seen so far are:
- Import a single height map as an Unreal landscape and scale it to your desired size.
I have read from one user that scaling messes up LOD and performance. I have seen nothing else to confirm this. It kinda makes sense though? Can anyone confirm or deny this and provide reasoning or a link? I have looked but can’t find much.
The main drawback is having less resolution in your landscape. I don’t think 1m precision is enough, so I don’t want something even less precise.
- Divide your heightmap into multiple tiles, import them all to the same level as landscapes, and join them together.
It is unclear to me how to seemlessly join these tiles together. Would the sides line up? The UE tools for joining landscapes together didn’t seem adequate when I tried it.
I also do not yet understand what the optimal configuration of tiles would be with world partition. Multiple 8km x 8km tiles? 1km x 1km? And how many components per tile? How many sections? What resolution? I need to research this more.
- Make each tile its own level and use creative level design to link them up.
This would work, of course, but I don’t know if it is doable without undesirable landscape alterations. Say you have a large, flat area. You split it into two levels to make it work better in UE. There is a line on one side of each level where it should cross to the other level. Is there even a way to make it so you can just walk into any point in that line and phase to the appropriate location on the other level? Even if so, it would take a lot of work to make the borders look good.
- Convert your heightmap to a static nanite mesh (or multiple meshes) and import them to unreal engine.
I am interested in this because you are not limited to 8km x 8km and you can have as much terrain resolution as your system can handle. You can also have multiple levels of terrain. If I am not mistaken, heightmaps only allow 1 vertical data value. I have also heard from a few sources that nanite makes it rather performant to do this.
However, it seems that many built-in engine tools would not work with this. It is not clear to me if LOD would be generated automatically like when using landscape heightmaps. I think it would with because of Nanite? Also, most older posts say static meshes would be much less efficient, but I am not sure if Nanite completely changed that. Also the docs say at one point that landscapes are recommended over meshes for terrain, but that was for UE 4.27 and I don’t know if it still holds.
So, there is ambiguity as to whether nanite meshes outperform landscapes.
It seems that Nanite is experimental for landscapes in the new build of UE. I think the best option would be #2 above (if you can find an optimal setup) and use nanite meshes wherever the landscape precision isn’t suitable. Can anyone think of methods that I didn’t mention? Also, what would be a reliable way of testing performance if one wanted to compare multiple methods?