well, my adventures in engine design continue.
after inverting my testbed engine into boilerplate code and layered libraries, i re-inverted it back into an engine and callback design.
now i'm wondering how to best implement a generic ground drawing routine. i have both dynamic mesh and chunk based code developed. i want the routine to be useful for a wide variety of game types, shooters, flight sims, rts games, etc.
there will be a few parts to the routine:
1. the method used to draw: dynamic mesh, dynamic quads, static chunks, etc.
2. the heightmap: procedural, bitmap based , etc
3. texture info: tiled, blended, splatted, etc.
it would be nice if drawing method could be independent of heightmap and texture info.
drawing method can just use a float heightmap(x,z) API call to separate the heightmap from the drawing routine.
but texturing method will possibly affect the mesh drawing method.
for tiled textures, a get_ground_tex(x,z) API call can be used to separate the texture data from the drawing routine.
for blended, i suppose it might be something like get_ground_texture _set(x,z), which would return all textures, normal maps, etc for the quad at x,z.
splatting gets a bit more complex though.
i suppose that a texturing method needs to be selected first, as that will tend to define how the rest will work.
so, blending and splatting? is that pretty much the state of the art, along with mega textures, perhaps?