Texture-making workflow for large worlds and ways to optimise texture-loading (HDRP)

Hey,
I want to make 1:1 world of my hometown (huge project) with very high quality textures or make it at least look as realistic as possible. I make my 3d asstes using Maya and then the textures using Substance Painter.

This is the workflow I use: Maya(3d asset and UV maps) > Substance Painter (texture-making) > load them up in Unity HDRP and let it do its own thing.

This is obviously not great for optimisations but given this workflow what should I do to end up wit ha very nice looking world with minimal damage in GPU performance? Should I load the map into parts? If so any advice? Should the textures be exported in a smaller quality or is there a way to scale them up when I get closer?

Hey, here are some tips you could use:

1 “Should I load the map into parts?”
That’s a good start - normally what you’d do is segment your map in as many parts as you want. On Start, you want to load the entire map and then “turn off” the parts that are not visible to the user. As the user rotates, you can turn off the parts that are no longer seen, and turn on the parts that come into view (enable gameobject works). You still want to load the entire map on Start to avoid instantiating and destroying objects at runtime.

2 " Should the textures be exported in a smaller quality or is there a way to scale them up when I get closer?"
You could look into something called Level of detail. This means that the geometry of your 3D objects is simplified when the user is far, and you gain more detail as the user gets closer. I think this works on textures as well. Take a look here:

Lastly, I’d recommend you use the Memory profiler. It lets you see which textures are having the biggest impact on memory, and you can downscale the ones that are not essential (i.e. too far from the user or the 3D object it affects is very small).

Hope it helps!