IEEE Visualization 2004 Tutorial
Interactive Texture-Based Flow Visualization
Abstract
Interactive texture-based flow visualization has become an active
field of research in the last three or four years. Recent
progress in this field has led to efficient vector field
visualization methods and, in particular, to improved techniques
for time-dependent data. This tutorial covers approaches for
vector fields given on 2D planes, on surfaces, and within 3D
volumes. Both the theoretical background and the GPU-oriented
implementations of many of these techniques are presented, along
with a demonstration of their usefulness by means of typical
applications.
Lecturers
Gordon Erlebacher, Florida State University, USA
Robert S. Laramee, VRVis, Austria
Daniel Weiskopf, University of Stuttgart, Germany
Course Organizer
Daniel Weiskopf
Institute of Visualization and Interactive Systems
University of Stuttgart
email: weiskopf@vis.uni-stuttgart.de
Duration
Half-day.
Level of the Tutorial
Intermediate.
The tutorial is aimed at scientific researchers and developers of
visualization tools. Participants should have basic programming
skills and some background knowledge of flow visualization; they
should be familiar with OpenGL and / or DirectX. Basic knowledge
of graphics hardware and GPU programming is helpful, although a
brief introduction to GPU programming will be given in the
tutorial. Basic previous knowledge of flow visualization is
recommended.
Course Slides
The up-to-date slides that were used during the tutorial
can be downloaded as PDF files.
Electronic Videos
Source Code and Examples
We promised at the end of the tutorial to upload some
examples and source codes. This part of the web page is
still being extended; here is the first example:
2D Texture Advection (Direct3D)
This simple code (authors: Matthias
Hopf and Daniel Weiskopf) implements 2D texture advection with
bilinear resampling. It is a quick-and-dirty hack that
was developed for Direct3D 8. Unfortunately, this code is
provided "as is" - without any support or documentation.
2D LIC (OpenGL on Mac)
This source code (author:
Gordon Erlebacher) implements 2D LIC on GPUs.
It runs on Mac with OpenGL.
The code was developed and tested on Panther 10.3.6 on a Powerbook with an
ATI Radeon 9600. The current version of the code is not commented and
supports steady flow only.
Organization and List of Topics
- Introduction [15 min] (D. Weiskopf):
Introductory words; motivation; visualization pipeline;
traditional flow visualization techniques (glyphs, geometric
streamlines, feature-based approaches), overview of the course
- Basics of GPU-Based Programming [15 min] (D. Weiskopf):
Structure of modern GPUs (graphics processing units);
rendering pipeline; low-level programming; shading
languages
- 2D Texture-Based Flow Visualization [60 min] (G. Erlebacher):
Line integral convolution (LIC), texture advection,
Lagrangian-Eulerian Advection (LEA),
Image Based Flow Visualization (IBFV), dye advection,
large data visualization
via tiling, generalization of time-dependent 2D flow visualization
within a generic framework, CPU vs GPU implementations,
applications (meteorology, CFD)
- Texture-Based Flow Visualization on Surfaces [40 min] (R. S. Laramee):
Object space vs surface parameterization (e.g.,
on curvilinear grids) vs image space approaches,
Image-Space Advection (ISA), Image Based Flow Visualization on
Surfaces (IBFVS), flow on isosurfaces,
CPU vs GPU implementations, applications (visualization of CFD simulation
data, in-cylinder flow of automotive engines, oceanography)
- 3D Texture-Based Flow Visualization [40 min] (D. Weiskopf):
3D LIC, 3D texture advection, 3D IBFV, preprocessing
of streamlines in textures (Chameleon system), GPU implementations,
perception issues
- Summary, Questions and Answers [10+ min] (all speakers)
Description of Topics
Introduction. The tutorial starts with a short
introduction that contains an outline of the time schedule, some
examples of areas of application for flow visualization, a few
example images for alternative visualization approaches
(streamlines or similar geometric objects, feature-based
techniques), and the classification scheme that we follow to
structure the topics of this tutorial. The following
classification parameters are used: spatial dimension of the
visualization domain (2D, 2.5D = on surfaces, and 3D), steady vs
unsteady flow, CPU vs GPU-based approaches, and type of internal
representation (object space vs image space). Dimensionality
serves as basis for the overall organization, the other aspects
are indicated along the discussion of the corresponding
visualization methods.
GPU Programming. A brief summary of some background of
GPU programming is included to support participants that have some
previous knowledge of GPU programming. A comprehensive
presentation of GPU programming, however, is beyond the scope of
this tutorial.
2D Flow Visualization. This part deals with
texture-based flow visualization techniques for 2D planar domains.
We start with fundamental "classic" approaches like LIC and
original texture advection. Subsequently, more recent techniques
for time-dependent flow are explained in detail, ranging from LEA
to IBFV and dye advection. Building on this algorithmic
background, application, implementation, and large-data
visualization topics are discussed for these techniques.
Implementation issues are focused on details of GPU realizations.
Finally, a generic framework is presented to compare the
previously mentioned techniques and to related them to each other.
2.5D Flow Visualization. This part focuses on recent
developments for texture-based flow visualization on surfaces.
Both ISA and IBFVS work on image space to avoid problems of older
approaches that require a time-consuming computation in object
space or a parameterization of the surface. A brief comparison
between object-space, image-space, and parameterization approaches
serves as introduction to this part. Special attention is paid to
the application of these techniques to real-world examples from
CFD because a good choice for the surface is essential to an
intuitive and effective visualization.
3D Flow Visualization. We discuss 3D texture-based flow
visualization in the last part. A brief presentation of 3D LIC is
followed by an in-depth discussion of 3D texture advection. One
major issue of dense 3D representations is the large amount of
numerical operations involved. Therefore, efficient GPU
implementations play an important role and are compared for 3D
IBFV and GPU-based texture advection. As an alternative approach,
a pre-computation of streamlines within a volumetric texture, as
in the Chameleon system, overcomes some of these efficiency
problems. Finally, some perception issues of visual clutter and
spatial perception are mentioned and an outlook on possible future
developments for perception-oriented interactive representations
is given.
Summary. The tutorial closes with an overall questions
& answers session.