\section{Conclusions}
We have presented a complete LOD terrain algorithm including the major
features of deformation and out-of-core rendering. To the best of
our knowledge, this
is the first out-of-core deformable terrain algorithm.  Refinement
is not only based upon the viewing frustum, but also takes into account
the selected deformation brushes. This allows data that is not being
viewed to remain in memory and be subject to deformation. Previous methods
that allow out-of-core rendering usually preprocess the geometry into a
triangulated irregular mesh for optimal polygon throughput, and require
that the terrain mesh remain static. Other in-core algorithms
support changes to the underlying heightmap, but need to recalculate
and propagate nested error-bounds through a hierarchal structure. Our
approach eliminates the need for any geometry tessellation or propagation
after a modification to the terrain heightmap. By exploiting the features
of a regular grid, x and z coordinates will never change requiring only
updates to the y coordinate (height offset). The quadtree structure
exploits a child-parent relationship in which child nodes actually
point to their parent’s data. In this way, when the data of children
nodes are modified, the pointer actually dereferences some parent data
completely eliminating any propagation back up through the quadtree. The
need for nested error-bounds is also eliminated by depending solely on
the view position for refinement. Even though this results in a less
accurate refinement, the tessellation is tolerable and the tradeoff of
propagation removal is well worth it.

Deformation is allowed to be done at any resolution within the extended
quadtree. The quadtree may be extended to a user specified resolution
by scaling up the original terrain and adding procedural fractal detail
to the leaf nodes. These extra nodes are created on the fly in real-time
and only need to be saved to disk if deformed. Since detail addition is
so subtle, the extra nodes do not need to be spatially deterministic
and can be randomly created each time. By comparing the time stamp
of a node’s parent, data may procedurally adapt to a low resolution
modification using this same method to create detail.

Along with our algorithm, we have presented support for large texture
maps, fast normal calculation, and dealing with large world coordinate
and depth buffer precision.

\paragraph {Limitations:} The terrain is represented as a heightmap,
precluding such features as caves and overhangs. The dimensions of the
input heightmap are required to be $2^{N} + 1$ on each side to allow
for optimizations. Additionally, the preprocessing step to build the terrain hierarchy is non-trivial
for large datasets.


