When making a huge terrain, say 20 km squared, is it better to create it out of 100 smaller chunks, or 20 larger chunks? The terrains would be very detailed and realistic, meaning loads of grass, trees, boulders, hills and whatnot.
Also, If I use the smaller ones, and write up a script that will only load up terrains directly attached to the one you are on at the moment, wouldn’t that be the least performance killing?
I don’t think there’s enough information to say. Are you talking about making terrain visible to the same distance either way, or are you just talking about chopping up your world map? Is the terrain being generated psuedorandomly? Are that heightmaps coming from images?
You don’t want to send too many geoms to the GPU separately, you don’t want an excessive number of polys on screen, and you don’t want your main thread blocking to load a bunch of stuff all at once either. If you really want to maximize performance, make your code able to accommodate either and do some manual tuning.
One Mesh (=chunk) can only have up to ~65k vertices, so with that limitation in mind you will be able to calculate how large a chunk can be while also having all necessary detail.
Minecraft uses 16x128x16 chunks (xyz).