Subdivision models

if they’re far away enough, you can leave it not subd
and if you need it sub-D and it’s close up you can try using alembic cache maybe?

otherwise just start with high res meshes and let the engine create LODs, you can get away with a lot of polys with the engine especially if you use lots of instancing. I’ve got it in the millions with not much trouble, but depends on your hardware