I'm writing my own game engine using Java/OpenGL. I'm creating levels in Blender 3D and exporting them in a custom file format. I'm not going to be auto-generating any terrain - everything is going to be exported directly from Blender.
I'm trying to figure out the best way to deal with textures for the static objects in my scene (including very large objects like long ridges of cliffs, grassy fields, canyon floors, etc). One possibility is to just use the textures at they are applied in the editor. I have a lot of tiling textures for grass and dirt and such that are not too big and which cover large meshes. This doesn't take up much texture memory space, but is a little inflexible from an art/design standpoint. Also, if I want to do something special - like create a blend shader to have a dirt path run through my field - I'll need to code a unique shader to handle this case. (To complicate things further, Blender doesn't provide support for custom GLSL shaders, so exporting unique things like this will be non-trivial).
Alternately, I can create a single texture atlas for the entire level and bake everything onto it. This way I don't have to worry about special purpose shaders or multiple tiling textures. The down side is that this texture would be enormous. I'm worried such a large texture might be bigger than my device can handle.
Anyhow, I'm not sure what the best practice is in these cases. Should I bake everything out, or have each model with its own texture?