Let's say I have a terrain system which uses a brute force approach to rendering; a typical regularly spaced grid which covers the whole area, and there's no level of detail system.
One possible approach would be to use a quadtree to subdivide the grid, and choose the best levels of detail in realtime, but I'd prefer not to do this for a couple of reasons.
For me, a better approach would be to optimise my grid to remove detail in flat areas (of which there are sometimes many) while retaining the detail in areas with more intricate geometry.
Are there any popular algorithms which do this? I'm not sure where I should start my research. Note that I don't need dynamic level of detail - I just need to take a fixed terrain grid with procedurally generated heights and optimise it once, to be presented statically at play time.