render, they also exhibit the major disadvantage of
having fixed spatial resolution, which can yield sam-
pling artifacts. To counterbalance this, three approa-
ches can be applied: first, one can use image-based
distance maps (Green, 2007) to improve sampling.
This approach requires a single texture per hatch and
impacts memory consumptions for a high number of
different patterns. Second, one can convert an image-
based hatch texture to a vector texture representation
encoded in raster-buffers. However, its preprocessing
and implementation is complex. Third, procedural
textures can be applied. In contrast to image-based
textures, procedural-based textures are computed at
runtime and not restricted in terms of resolution and
sampling. These properties qualifies them for imple-
menting hatch patterns in interactive 3D visualizati-
ons. Nevertheless, procedural texturing suffers from a
trade-off between its visual complexity and complex-
ity required for its description, i.e. the more complex
a procedural should appear the longer is its code to
describe. In terms of performance, this results in hig-
her runtime-complexity, thus slower rendering. Ho-
wever, complex hatch patterns are hard to describe
procedurally.
This paper describes a method for composing and
rendering of hatch patterns in 3D GeoVE using pro-
cedural texturing. It introduces a layering concept for
creating complex hatch patterns by combining layers
of simpler ones. This also reduces code complexity
and facilitates reuse. However, using hatch patterns
in 3D GeoVE become a challenging task because mo-
dification of position and viewing angle of the virtual
camera affect the on-screen appearance of patterns.
This may result in distracting, unpleasant effects, e.g.,
Moir
´
e Patterns (Amidror, 2009). With respect to this,
the paper describes different techniques for counter-
balancing such effects.
2 RELATED WORK
This section focus on recent research on and applica-
tion of procedural textures in 3D GeoVE. Rost defi-
nes procedural texturing as ”the process of computing
a texture primarily by synthesizing rather than by re-
lying heavily on precomputed values” (Rost, 2006).
In contrast to image textures, procedural textures are
computed at runtime using vertex and/or fragment
coordinates.
Hatch pattern are of manifold applications in the
domain of geovisualization and information visuali-
zation in general. In cartography for example, hat-
ches are used for representing 3D topography on a
2D map by displaying quantitative measures of the
topographys slope and aspect (Kennelly and Kimer-
ling, 2000). Here, lines are drawn in the direction of
the steepest topographic gradient. This creates tonal
variations throughout the map, which are a form of
analytical hill-shading, creating a 3D impression of
the topography. Also geological illustrations in text
books make use of hatches to illustrate seismic data.
In (Patel et al., 2007; Patel et al., 2008) an approach
is presented for rendering such illustrations. There
are various techniques that can be used and combined
to generate procedural textures. This paper’s concept
is based on propagating a 2D pattern to a 3D space,
and thus generates a so called solid texture (Peachey,
1985). Prominent representatives of solid textures are
wood, granite, or marble textures, that often use noise
to create a natural look (Perlin, 1985; Lewis, 1989).
For mapping a texture to a 3D object, the surface of
that object must be parameterized with 2D texture
coordinates. During the mapping process the color
of a fragment is determined by mapping the fragment
to a texel in the image texture using these coordinates.
In contrast, solid textures use 3D (world) coordinates
of a fragment as input for their color computation.
3 PROCEDURAL PATTERNS
Based on preliminaries and requirements, this section
introduces a basic concept for hatching 3D objects in
3D GeoVEs.
3.1 Preliminaries
Assumptions & Requirements. To apply hatch
patterns to features of a 3D GeoVE, it is necessary
to enrich its geometry with additional per-vertex attri-
butes. In a preprocessing step, an unique object iden-
tifier ID is computed, which enables the identification
of a polygon in the programmable rendering pipeline
during runtime. For mappings independent of geome-
tric representation of features, e.g., per-pixel mapping
of a virtual 3D landscape model, an image-based id-
texture is used (Fig. 1.B). In addition, an axis-aligned
bounding box (AABB) for each feature geometry is
computed and stored as a per-vertex attribute. The
AABB enables the computation of texture coordina-
tes during rendering (Sec. 3.3).
Standard texture mapping (Akenine-M
¨
oller et al.,
2008) that relies on per-vertex texture coordinates is
not always suited for creating consistent hatch pat-
terns. The results depend on a consistent texture pa-
rametrization of the objects surfaces. Such parametri-
zation must be provided in advance and can be hard
to compute. Texture coordinates that are not evenly
Rendering Procedural Textures for Visualization of Thematic Data in 3D Geovirtual Environments
283