Simon Premoze, William B. Thompson, Peter Shirley, Visual Simulation
Lab at the University of Utah
their approach is to analyze a panchromatic geospecific input image,
use image techniques to "normalize" them (remove shading and shadowing effects)
and
classify the image into categories
they can then reconstruct, with geotypical textures, an image which
is flexible in regards to time of day and 3D vegetation, which can look
far better than just doing a simple drape of the source image
traditional drape of panchromatic aerial imagery
rendering using the techniques from the paper
numerous programs generate procedural textures from a variety of parameters
e.g. Texture Editor (freeware
for Windows) which includes a callable library (header/dll)
one approach, used by many games, is to generate a large number of tiles,
consisting of each type of ground cover, and transitions between each possible
combination of adjacent types
a good description of this approach is found in
Procedural Landscapes
(2001 GDCE presentation) by Glenn Corpes, particularly
the system used for Magic Carpet
The Synthesis of Snowcovered Terrains, Sinyan Law, Byong Mok Oh, Jonathan
Zalesky, MIT 1996 [no longer online]
a radical idea (1998)
satellite data tends to be of very poor quality, and makes it difficult
to do smooth transitions to high-detail ground texture based on known cultural
(GIS data) features
a possible solution: generate the macroscopic ground texture by "rendering"
the full-detail, small-area information such as land use, vegetation coverage,
roads etc. using geospecific textures only, repeatedly downsampled as needed
that way you save the considerable cost of the geospecific data, and are
likely to get a smoother transition as well
something like this was actually implemented a decade later in an
academic paper (2008):
Uses vector descriptions of linear and areal features, with
associated shaders to specify their appearance (terrain color and
material), their footprint (effect on terrain shape), and their
associated objects, rasterized as needed and cached on the GPU