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?

  • 2
    \$\begingroup\$ This is opinion based question, because we don't know what kind of levels and restrictions you have. Perhaps baking everything into one geometry/texture will work for you, perhaps not.. \$\endgroup\$ – Kromster Aug 31 '15 at 16:51

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.