Generic Adaptive Mesh Refinement
My implementation of the technique involved rendering the geometry using hardware instancing of a single quad whose positions are calculated in a vertex shader. By changing the the subdivisions of the quad you can easily add or remove detail to your base geometry. The geometry can be synthesized analytically in the vertex shader such as in the video below or it can be fed into the shader as a texture buffer.
I think this technique is an interesting alternative to the geometry shader for refinement or synthesis since the geometry shader tends to be slow due to it’s non-parallel design.