The remainder of this paper is structured as fol-
lows. Section 2 reviews existing techniques for tex-
turing and geometry batching. Section 3 introduces
the concept of texture-atlas packing to improve batch
sizes. Section 4 presents details for integration, im-
plementation, and rendering packed texture atlases.
Section 5 discusses the results of our performance
evaluation, the conceptual limitations as well as prob-
lems, and gives ideas for future work. Finally, Section
6 concludes this paper.
2 RELATED WORK
There are different related research projects in the
field of terrain and geovisualization that cover the ren-
dering of large-scale static and dynamic textures us-
ing virtualization as well as out-of-core techniques
and frameworks. However, only few of them focus on
batching as the main application or respect modern
GPU capability for simple implementation and inte-
gration into existing rendering frameworks.
For terrain visualization, multi-resolution mod-
els for terrain textures can be applied (D
¨
ollner and
Baumann, 2000). The rendering algorithm simulta-
neously traverses a multi-resolution geometry model
and a multi-resolution texture model, and takes geo-
metric and texture approximation errors into account.
In contrast to out approach, it uses multi-pass ren-
dering and exploits multi-texturing to achieve real-
time performance. This approach can be extended
for managing multi-resolution textures in multiple
caching levels exhibiting frame-to-frame coherency
(Hua et al., 2004; Okamoto et al., 2008).
With respect to virtual 3D city models, the prob-
lem of large numbers of texture switches and limited
graphics memory was addressed in (Buchholz and
D
¨
ollner, 2005). They present a level-of-detail tex-
turing technique that is based on a hierarchical data
structure of all textures used by scene objects and is
created in a preprocessing step. At runtime, it requires
only a small set of these texture atlases that represent
scene textures in an appropriate size depending on the
current camera position and screen resolution.
In (Boubekeur and Schlick, 2006) an interactive
out-of-core texturing approach is presented that en-
ables interactive modification of large textures using
point-sampled textures at various scales, without re-
quiring additional parametrizations. Therefore, an
adaptive in-core point-based approximated geometry
is required that uses an out-of-core point-sampling al-
gorithm. This approximation is used for interactive
and multi-scale point-based texturing in combination
feature-preserving kernel to convert the point-based
model into a global 3D texture.
Based on previous approaches, sparse virtual tex-
turing (Mittring and Crytek, 2008) simulates large
textures efficiently using less texture memory than
these would actually require. On a per-frame bases, it
uploads only required texture data to video memory.
A fragment shader is used to perform the mapping
from the virtual large texture coordinates to the actual
physical texture coordinates using an indirection tex-
ture. This technique can also be applied to texture for
large quantities of smaller textures (texture atlases).
Taibo et al. present an approach for high reso-
lution, real-time texturing from dynamic texture data
sources (Taibo et al., 2009). An out-of-core texture
visualization uses per-fragment texture LOD com-
putation, is independent from the geometry engine,
and thus can be integrated into existing terrain ge-
ometry engines. Feldmann et al. extend the con-
cept of geometry independent texture clipmaps (Tan-
ner et al., 1998) to handle dynamic texture data (Feld-
mann et al., 2011). Their approach incrementally gen-
erates a clipmap from a large virtual texture of dynam-
ically changing content and extent, using of a tile-
based clip-map approach and spatial indexing data
structure for access.
3 TEXTURE-ARRAY BATCHING
Figure 3 shows an overview to our concept and its
components. It basically consists mainly of three
stages: a pre-processing step (A) generates an input
data structure for our batching algorithm from a num-
ber of given data sets. It extracts texture meshes and
sorts the textures used for these meshes. It further
converts all input meshes into a common format, i.e.,
a common vertex attribute configuration, to facilitate
merging into new batches. Subsequently, the actual
batching process (B) creates new batches of geom-
etry and texture data. It therefore creates a mapping
between newly created geometry batches and their as-
sociated textures, grouped by texture arrays. Finally,
during the rendering step (C), the mapping, which
is basically an additional indirection during the tex-
ture mapping process, is evaluated at run-time using
shader programs.
Preparation of Input Data. The creation of texture
arrays and geometry batches can be performed in a
pre-processing step based on a texture hierarchy. A
texture hierarchy is a data structure that can be de-
rived both from scene graph or manager-based ren-
dering systems. In a scene-graph based rendering sys-
tem, one can assume an implicit texture hierarchy is
GeometryBatchingusingTexture-arrays
241