I am creating a landscape with static meshes instead of landscape actors. Questions about texturing.

I have a 15km x 15km map made out of static mesh tiles of 3km x3km each. So I have 25 tiles. Each tile is about 50k tris at LOD0. I was wondering what options of texturing do I have.

These are 2 tiles:

  • I could generate masks for the whole map or for each tile individually. But the masks would have to be huge in resolution in order to avoid missplaced textures.

Since these are static meshes, I could UV unwrap them in 2 ways:

  1. Each tile would have its own material and then I can apply a mask for only that tile. I woudl have a total of 25 different materials.
    Example of concavity mask for the tile on the right above:

  2. Make a huge atlas of masks (like 8k) and unwrap each tile on top of the mask that belongs to that tile.

  • I could also make a procedural texture that detects things like slopes and apply the same material over the whole map.

Anything else?

So, from various discussions, some strong opinions are that making static meshes is apparently the way to go, but I still like to muck around with actual landscapes. I cannot really seem to figure out how to turn the landscape-tiles INTO static-meshes so, that also kinda paints me into a corner lol.

Either-way though you have many of the same shader/material tools available. Placing stuff by XYZ, slope-mask, etc is all the same on a landscape-mesh vs a mesh-mesh, nanite or otherwise. You can still render-to Runtime Virtual Textures, still sample that in the heightmesh.

The only major difference between using meshes and the landscape-mesh is the output to the grass-layers. Meshes cannot output to the landscape grass-layer (grrrr). BUT you can still paint on them with the foliage-painting tool, so it’s more just no auto-grass.

My personal experience is with using landscape and the heightmesh. It has no collision and has to rely on the underlying landscape (which you can at least hide in the main-pass, recouping some cost) so any rocks, deformation you do with it isn’t something you can climb on etc. For something along a souls-like, smaller is better. But given the underlying RVT as source for the heightmesh, information can be widely shared, facilitating mesh-blending with landscapes and more-creative options vs just PBR. I went to tracking alpha for layers, biomes and the like and then drawing them out completely in the height-mesh pass. The landscape renders only meta-information (alpha, height, water-mask, etc) into the RVT and then that can be sourced by many things in shaders so they can be sensitive to being a swamp, or on in water, or whatever you want. It also allows the landscape to be massively-scaled up and still define a very fine level of detail and granularity as tracking alpha allows one to be less-precise vs straight-up-PBR information.

Each application has it’s uses, I’m not championing one over the other, just exploring options.