# al - Adobe Acrobat Engineering

al - Adobe Acrobat Engineering

al - Adobe Acrobat Engineering

### You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Proceedings of the<br />

IEEE Visu<strong>al</strong>ization '94 Conference

Copyright © 1994, Institute of Electric<strong>al</strong> and Electronics Engineers. All rights reserved.<br />

No part of this book may be reproduced in any form, nor may it be stored in a retriev<strong>al</strong><br />

system or transmitted in any form without written permission from the publisher.<br />

Person<strong>al</strong> use of this materi<strong>al</strong> is permitted. However, permission to reprint/republish this<br />

materi<strong>al</strong> for advertising or promotion<strong>al</strong> purposes or for creating new collective works for<br />

res<strong>al</strong>e or redistribution must be obtained from the IEEE. For information on obtaining<br />

permission, send a blank email message to info.pub.permission@ieee.org.<br />

By choosing to view this document, you agree to <strong>al</strong>l provisions of the copyright laws<br />

protecting it.

Contents<br />

Preface......................................................................................................................................x<br />

Reviewers................................................................................................................................xi<br />

Conference Committee...................................................................................................... xiii<br />

Program Committee ...........................................................................................................xiv<br />

Honorary Chair Address<br />

Interactive Visu<strong>al</strong>ization via 3D User Interfaces......................................................................2<br />

A. van Dam<br />

Keynote Panel<br />

Introduction: Visu<strong>al</strong>ization in the Information Highway .........................................................4<br />

N. Gershon<br />

Information Workspaces for Large Sc<strong>al</strong>e Cognition..................................................................5<br />

S.K. Card<br />

A Visu<strong>al</strong>ization System on Every Desk — Keeping it Simple...................................................6<br />

S.F. Roth<br />

The Future of Graphic User Interfaces.....................................................................................7<br />

B. Shneiderman<br />

Capstone Address<br />

The Cruci<strong>al</strong> Difference between Human and Machine Vision: Foc<strong>al</strong> Attention.....................10<br />

B. Julesz<br />

Volume Visu<strong>al</strong>ization Systems<br />

PAPERS<br />

Integrated Control of Distributed Volume Visu<strong>al</strong>ization Through<br />

the World-Wide-Web................................................................................................................13<br />

C.S. Ang, D.C. Martin, and M.D. Doyle<br />

A Distributed, Par<strong>al</strong>lel, Interactive Volume Rendering Package ...........................................21<br />

J.S. Rowlan, G.E. Lent, N. Gokh<strong>al</strong>e, and S. Bradshaw<br />

VolVis: A Diversified Volume Visu<strong>al</strong>ization System ...............................................................31<br />

R. Avila, T. He, L. Hong, A. Kaufman, H. Pfister,<br />

C. Silva, L. Sobierajski, and S. Wang<br />

Applications<br />

Implicit Modeling of Swept Surfaces and Volumes.................................................................40<br />

W.J. Schroeder, W.E. Lorensen, and S. Linthicum<br />

Visu<strong>al</strong>izing Polycryst<strong>al</strong>line Orientation Microstructures<br />

with Spheric<strong>al</strong> Color Maps ......................................................................................................46<br />

B. Yamrom, J.A. Sutliff, and A.P. Woodfield<br />

Introducing Alpha Shapes for the An<strong>al</strong>ysis of Path Integr<strong>al</strong> Monte Carlo Results................52<br />

P.J. Moran and M. Wagner<br />

v

Surfaces<br />

Piecewise-Linear Surface Approximation from Noisy Scattered Samples..............................61<br />

M. Marg<strong>al</strong>iot and C. Gotsman<br />

Triangulation and Display of Ration<strong>al</strong> Parametric Surfaces..................................................69<br />

C.L. Bajaj and A. Royappa<br />

Isosurface Generation by Using Extrema Graphs ..................................................................77<br />

T. Itoh and K. Koyamada<br />

Visu<strong>al</strong>ization Techniques<br />

Wavelet-Based Volume Morphing ...........................................................................................85<br />

T. He, S. Wang, and A. Kaufman<br />

Progressive Transmission of Scientific Data Using Biorthogon<strong>al</strong><br />

Wavelet Transform ..................................................................................................................93<br />

H. Tao and R.J. Moorhead<br />

An Ev<strong>al</strong>uation of Reconstruction Filters for Volume Rendering ..........................................100<br />

S.R. Marschner and R.J. Lobb<br />

Visu<strong>al</strong>izing Flow with Quaternion Frames ...........................................................................108<br />

A.J. Hanson and H. Ma<br />

Flow Features and Topology<br />

Feature Detection from Vector Quantities in a Numeric<strong>al</strong>ly Simulated<br />

Hypersonic Flow Field in Combination with Experiment<strong>al</strong> Flow Visu<strong>al</strong>ization ..................117<br />

H.-G. Pagendarm and B. W<strong>al</strong>ter<br />

3D Visu<strong>al</strong>ization of Unsteady 2D Airplane Wake Vortices ...................................................124<br />

K.-L. Ma and Z.C. Zheng<br />

Vortex Tubes in Turbulent Flows: Identification, Representation, Reconstruction.............132<br />

D.C. Banks and B.A. Singer<br />

The Topology of Second-Order Tensor Fields........................................................................140<br />

T. Delmarcelle and L. Hesselink<br />

Visu<strong>al</strong>izing Geometry and Algorithms<br />

GASP - A System for Visu<strong>al</strong>izing Geometric Algorithms......................................................149<br />

A. T<strong>al</strong> and D. Dobkin<br />

Virtu<strong>al</strong> Re<strong>al</strong>ity Performance for Virtu<strong>al</strong> Geometry...............................................................156<br />

R.A. Cross and A.J. Hanson<br />

A Library for Visu<strong>al</strong>izing Combinatori<strong>al</strong> Structures.............................................................164<br />

M.A. Najork and M.H. Brown<br />

Strata-Various: Multi-Layer Visu<strong>al</strong>ization of Dynamics in Software System Behavior ......172<br />

D. Kimelman, B. Rosenberg, and T. Roth<br />

Volume Visu<strong>al</strong>ization Techniques<br />

Differenti<strong>al</strong> Volume Rendering: A Fast Volume Visu<strong>al</strong>ization Technique<br />

for Flow Animation ................................................................................................................180<br />

H.-W. Shen and C. R. Johnson<br />

Fast Surface Rendering from Raster Data by Voxel Travers<strong>al</strong><br />

Using Chessboard Distance...................................................................................................188<br />

vi

M. Šrámek<br />

Par<strong>al</strong>lel Performance Measures for Volume Ray Casting.....................................................196<br />

C.T. Silva and A.E. Kaufman<br />

User Interfaces and Techniques<br />

Spiders: A New User Interface for Rotation and Visu<strong>al</strong>ization<br />

of N-Dimension<strong>al</strong> Point Sets..................................................................................................205<br />

K.L. Duffin and W.A. Barrett<br />

Restorer: A Visu<strong>al</strong>ization Technique for Handling Missing Data.........................................212<br />

R. Twiddy, J. Cav<strong>al</strong>lo, and S.M. Shiri<br />

User Modeling for Adaptive Visu<strong>al</strong>ization Systems..............................................................217<br />

G.O. Domik and B. Gutkauf<br />

Flow Visu<strong>al</strong>ization Techniques<br />

Streamb<strong>al</strong>l Techniques for Flow Vizu<strong>al</strong>ization .....................................................................225<br />

M. Brill, H. Hagen, H.-C. Rodrian, W. Djatschin, and S.V. Klimenko<br />

Volume Rendering Methods for Computation<strong>al</strong> Fluid Dynamics Visu<strong>al</strong>ization...................232<br />

D.S. Ebert, R. Yagel, J. Scott, and Y. Kurzion<br />

Visu<strong>al</strong>izing Flow over Curvilinear Grid Surfaces Using Line Integr<strong>al</strong> Convolution ...........240<br />

L.K. Forssell<br />

Visu<strong>al</strong>izing 3D Velocity Fields Near Contour Surfaces.........................................................248<br />

N. Max, R. Crawfis, and C. Grant<br />

Flow Visu<strong>al</strong>ization Systems<br />

UFAT — A Particle Tracer for Time-Dependent Flow Fields...............................................257<br />

D.A. Lane<br />

The Design and Implementation of the Cortex Visu<strong>al</strong>ization System..................................265<br />

D. Banerjee, C. Morley, and W. Smith<br />

An Annotation System for 3D Fluid Flow Visu<strong>al</strong>ization.......................................................273<br />

M.M. Loughlin and J.F. Hughes<br />

Surface Extraction<br />

Discretized Marching Cubes..................................................................................................281<br />

C. Montani, R. Scateni, and R. Scopigno<br />

Approximation of Isosurface in the Marching Cube: Ambiguity Problem ............................288<br />

S.V. Matveyev<br />

Nonpolygon<strong>al</strong> Isosurface Rendering for Large Volume Datasets .........................................293<br />

J.W. Durkin and J.F. Hughes<br />

Visu<strong>al</strong>ization Systems<br />

Mix&Match: A Construction Kit for Visu<strong>al</strong>ization................................................................302<br />

A. Pang and N. Alper<br />

A Lattice Model for Data Display..........................................................................................310<br />

W.L. Hibbard, C.R. Dyer, and B.E. Paul<br />

An Object Oriented Design for the Visu<strong>al</strong>ization of Multi-Variable Data Objects...............318<br />

vii

J.M. Favre and J. Hahn<br />

XmdvTool: Integrating Multiple Methods for Visu<strong>al</strong>izing Multivariate Data......................326<br />

M.O. Ward<br />

CASE STUDIES<br />

Magnetohydrodynamics and Mathematics<br />

Tokamak Plasma Turbulence Visu<strong>al</strong>ization..........................................................................337<br />

S.E. Parker and R. Samtaney<br />

Visu<strong>al</strong>izing Magnetohydrodynamic Turbulence and Vortex Streets ........................................*<br />

A. Roberts<br />

Visu<strong>al</strong>ization and Data An<strong>al</strong>ysis in Space and Atmospheric Science ...................................341<br />

A. Mankofsky, E.P. Szuszczewicz, P. Blanchard, C. Goodrich,<br />

D. McNabb, R. Kulkarni, and D. Kamins<br />

Visu<strong>al</strong>ization for Boundary V<strong>al</strong>ue Problems .........................................................................345<br />

G. Domokos and R. Paffenroth<br />

Environment<br />

Severe Rainf<strong>al</strong>l Events in Northwestern Peru: Visu<strong>al</strong>ization of<br />

Scattered Meteorologic<strong>al</strong> Data:..............................................................................................350<br />

L.A. Treinish<br />

Visu<strong>al</strong>ization of Mesosc<strong>al</strong>e Flow Features in Ocean Basins .................................................355<br />

A. Johannsen and R. Moorehead<br />

Integrating Spati<strong>al</strong> Data Display with Virtu<strong>al</strong> Reconstruction............................................359<br />

P. Peterson, B. Hayden, and F.D. Fracchia<br />

Medic<strong>al</strong> Applications<br />

Observing a Volume Rendered Fetus within a Pregnant Patient ........................................364<br />

A. State, D.T. Chen, C. Tector, A. Brandt, H. Chen,<br />

R. Ohbuchi, M. Bajura, and H. Fuchs<br />

Visu<strong>al</strong>ization of 3D Ultrasonic Data......................................................................................369<br />

G. Sakas, L.-A. Schreyer, and M. Grimm<br />

New Techniques in the Design of He<strong>al</strong>thcare Facilities .......................................................374<br />

T. Alameldin and M. Shepley<br />

Fire and Brimstone<br />

Visu<strong>al</strong>ization of an Electric Power Transmission System.....................................................379<br />

P.M. Mahadev and R.D. Christie<br />

Volume Rendering of Pool Fire Data.....................................................................................382<br />

H.E. Rushmeier, A. Hamins, and M.-Y. Choi<br />

_____________________________________________________<br />

* Paper not received in time for publication<br />

Visu<strong>al</strong>ization of Volcanic Ash Clouds ....................................................................................386<br />

M. Roth and R. Guritz<br />

viii

PANELS<br />

Ch<strong>al</strong>lenges and Opportunities in Visu<strong>al</strong>ization for NASA’s EOS Mission<br />

to Planet Earth ......................................................................................................................392<br />

Chair: M. Botts<br />

Panelists: J.D. Dykstra, L.S. Elson, S.J. Goodman, and M. Lee<br />

Visu<strong>al</strong>ization in Medicine: VIRTUAL Re<strong>al</strong>ity or ACTUAL Re<strong>al</strong>ity?.....................................396<br />

Co-Chairs: C. Roux and J.-L. Coatrieux<br />

Panelists: J.-L. Dillenseger, E.K. Fishman, M. Loew,<br />

H.-P. Meinzer, and J.D. Pearlman<br />

Visu<strong>al</strong>ization and Geographic Information Systems Integration: What Are the<br />

Needs and the Requirements, If Any ?? ................................................................................400<br />

Chair: T.M. Rhyne<br />

Panelists: W. Ivey, L. Knapp, P. Kochevar, and T. Mace<br />

Visu<strong>al</strong>ization of Multivariate (Multidimension<strong>al</strong>) Data and Relations.................................404<br />

Chair: A. Inselberg<br />

Panelists: H. Hinterberger, T. Mih<strong>al</strong>isin, and G. Grinstein<br />

Visu<strong>al</strong>izing Data: Is Virtu<strong>al</strong> Re<strong>al</strong>ity the Key?.......................................................................410<br />

Chair: L.M. Stone<br />

Panelists: T. Erickson, B.B. Bederson, P. Rothman, and R. Muzzy<br />

V<strong>al</strong>idation, Verification and Ev<strong>al</strong>uation................................................................................414<br />

Chair: S. Uselton<br />

Panelists: G. Dorn, C. Farhat, M. Vannier, K. Esbensen, and A. Globus<br />

Color Plates .......................................................................................................CP-1 to CP-46<br />

Author Index...................................................................................................................CP-47<br />

ix

Integrated Control of Distributed Volume Visu<strong>al</strong>ization<br />

Through the World-Wide-Web<br />

The World-Wide-Web (WWW) has created a new paradigm for<br />

online information retriev<strong>al</strong> by providing immediate and ubiquitous<br />

access to digit<strong>al</strong> information of any type from data repositories<br />

located throughout the world. The web’s development enables not<br />

only effective access for the generic user, but <strong>al</strong>so more efficient and<br />

timely information exchange among scientists and researchers. We<br />

have extended the capabilities of the web to include access to threedimension<strong>al</strong><br />

volume data sets with integrated control of a distributed<br />

client-server volume visu<strong>al</strong>ization system. This paper provides<br />

a brief background on the World-Wide-Web, an overview of<br />

the extensions necessary to support these new data types and a<br />

description of an implementation of this approach in a WWWcompliant<br />

distributed visu<strong>al</strong>ization system.<br />

1. Introduction<br />

Advanced scanning devices, such as magnetic resonance<br />

imaging (MRI) and computer tomography (CT), have been<br />

widely used in the fields of medicine, qu<strong>al</strong>ity assurance and<br />

meteorology [Pommert, Zandt, Hibbard]. The need to visu<strong>al</strong>ize<br />

resulting data has given rise to a wide variety of volume<br />

visu<strong>al</strong>ization techniques and computer graphics research groups<br />

have implemented a number of systems to provide volume<br />

visu<strong>al</strong>ization (e.g. AVS, ApE, Sunvision Voxel and 3D<br />

Viewnix)[Gerleg, Mercurio, VandeWettering]. Previously<br />

these systems have depended upon speci<strong>al</strong>ized graphics hardware<br />

for rendering and significant loc<strong>al</strong> secondary storage for<br />

the data. The expense of these requirements has limited the<br />

ability of researchers to exchange findings. To overcome the<br />

barrier of cost, and to provide addition<strong>al</strong> means for researchers<br />

to exchange and examine three-dimension<strong>al</strong> volume data, we<br />

have implemented a distributed volume visu<strong>al</strong>ization tool for<br />

gener<strong>al</strong> purpose hardware, we have further integrated that<br />

visu<strong>al</strong>ization service with the distributed hypermedia [Flanders,<br />

Broering, Kiong, Robison, Story] system provided by the<br />

World-Wide-Web [Nickerson].<br />

Our distributed volume visu<strong>al</strong>ization tool, VIS, utilizes a<br />

Cheong S. Ang, M.S.<br />

David C. Martin, M.S.<br />

Michael D. Doyle, Ph.D.<br />

University of C<strong>al</strong>ifornia, San Francisco<br />

Library and Center for Knowledge Management<br />

San Francisco, C<strong>al</strong>ifornia 94143-0840<br />

pool of gener<strong>al</strong> purpose workstations to generate three dimension<strong>al</strong><br />

representations of volume data. The VIS tool provides<br />

integrated load-b<strong>al</strong>ancing across any number of heterogeneous<br />

UNIX workstations (e.g. SGI, Sun, DEC, etc…) [Giertsen]<br />

taking advantage of the unused cycles that are gener<strong>al</strong>ly available<br />

in academic and research environments. In addition, VIS<br />

supports speci<strong>al</strong>ized graphics hardware (e.g. the Re<strong>al</strong>ityEngine<br />

from Silicon Graphics), when available, for re<strong>al</strong>-time visu<strong>al</strong>ization.<br />

Distributing information that includes volume data requires<br />

the integration of visu<strong>al</strong>ization with a document delivery<br />

mechanism. We have integrated VIS and volume data into<br />

the WWW, taking advantage of the client-server architecture<br />

of WWW and its ability to access hypertext documents stored<br />

anywhere on the Internet [Obraszka, Nickersen]. We have<br />

enhanced the capabilities of the most popular WWW client,<br />

Mosaic [Andreessen] from the Nation<strong>al</strong> Center for<br />

Supercomputer Applications (NCSA), to support volume data<br />

and have defined an inter-client protocol for communication<br />

between VIS and Mosaic for volume visu<strong>al</strong>ization. It should be<br />

noted that other types of interactive applications could be<br />

"embedded" within HTML documents as well. Our approach<br />

can be gener<strong>al</strong>ized to <strong>al</strong>low the implementation of object<br />

linking and embedding over the Internet, similar to the features<br />

the OLE 2.0 provides users of Microsoft Windows on an<br />

individu<strong>al</strong> machine.<br />

1.1 The World-Wide-Web<br />

The World-Wide-Web is a combination of a transfer<br />

protocol for hyper-text documents (HTTP) and a hyper-text<br />

mark-up language (HTML) [Nickersen]. The basic function<strong>al</strong>ity<br />

of HTTP <strong>al</strong>lows a client application to request a wide<br />

variety of data objects from a server. Objects are identified by<br />

a univers<strong>al</strong> resource locator (URL)[Obraczka] that contains<br />

information sufficient to both locate and query a remote server.<br />

HTML documents are defined by a document type definition

(DTD) of the Standard Gener<strong>al</strong>ized Mark-up Language<br />

(SGML). These documents are returned to WWW clients and<br />

are presented to the user. Users are able to interact with the<br />

document presentation, following hyper-links that lead to<br />

other HTML documents or data objects. The client application<br />

may <strong>al</strong>so directly support other Internet services, such as<br />

FTP, Gopher, and WAIS, [Andreessen] or may utilize gateways<br />

that convert HTTP protocol requests and return HTML<br />

documents. In <strong>al</strong>l interactions, however, the user is presented<br />

with a common resulting data format (HTML) and <strong>al</strong>l links are<br />

accessible via URL’s.<br />

1.2 Mosaic<br />

THE INTERNET<br />

SESSION<br />

MANAGER<br />

VISUALIZATION SERVERS DATA CENTER<br />

HIGH SPEED LOCAL NETWORK (1 GBPS)<br />

Figure 1: VIS client/server model.<br />

The Nation<strong>al</strong> Center for Supercomputer Applications<br />

(NCSA) has developed one of the most function<strong>al</strong> and popular<br />

World-Wide-Web clients: Mosaic. This client is available via<br />

public FTP for the most popular computer interfaces (Motif,<br />

Windows and Macintosh). Mosaic interprets a majority of the<br />

HTML DTD elements and presents the encoded information<br />

with page formatting, type-face specification, image display,<br />

fill-in forms, and graphic<strong>al</strong> widgets. In addition, Mosaic<br />

provides inherent access to FTP, Gopher, WAIS and other<br />

network services [Andreessen].<br />

1.3 VIS<br />

VIS is a simple but complete volume visu<strong>al</strong>izer. VIS<br />

provides arbitrary three-dimension<strong>al</strong> transformation (e.g. rotation<br />

and sc<strong>al</strong>ing), specification of six axi<strong>al</strong> clipping planes<br />

(n.b. a cuboid), one arbitrary clipping plane, and control of<br />

opacity and intensity. VIS interactively transforms the cuboid,<br />

and texture-maps the volume data onto the transformed geometry.<br />

It supports distributed volume rendering [Argrio, Drebin,<br />

Kaufman] with run-time selection of computation servers, and<br />

isosurface generation (marching cubes)[Lorenson, Levoy] with<br />

software Gouraud shading for surface-based model extraction<br />

and rendering. It reads NCSA Hierarchic<strong>al</strong> Data Format<br />

(HDF) volume data files, and has a graphic<strong>al</strong> interface utility<br />

to import volume data stored in other formats.<br />

2. VIS: A Distributed Volume Visu<strong>al</strong>ization Tool<br />

VIS is a highly modular distributed visu<strong>al</strong>ization tool,<br />

following the principles of client/server architecture (figure 1),<br />

and consisting of three cooperating processes: VIS, Panel, and<br />

VRServer(s). The VIS module handles the tasks of transformation,<br />

texture-mapping, isosurface extraction, Gouraud shading,<br />

and manages load distribution in volume rendering. VIS<br />

produces images that are drawn either to its own top-level<br />

window (when running stand-<strong>al</strong>one) or to a shared window<br />

system buffer (when running as a cooperative process). The<br />

Panel module provides a graphic<strong>al</strong> user-interface for <strong>al</strong>l VIS<br />

function<strong>al</strong>ity and communicates state changes to VIS. The<br />

VRServer processes execute on a heterogenous pool of gener<strong>al</strong><br />

purpose workstations and perform volume rendering at the<br />

request of the VIS process . The three modules are integrated<br />

as shown in figure 3 when cooperating with another process. A<br />

simple output window is displayed when no cooperating<br />

process is specified.<br />

2.1 Distributed Volume Rendering<br />

Volume rendering <strong>al</strong>gorithms require a significant amount<br />

of computation<strong>al</strong> resources. However, these <strong>al</strong>gorithms are<br />

excellent candidates for par<strong>al</strong>lelization. VIS distributes the<br />

volume rendering among workstations with a “greedy” <strong>al</strong>gorithm<br />

that <strong>al</strong>locates larger portions of the work to faster<br />

machines [Bloomer]. VIS segments the task of volume rendering<br />

based on scan-lines, with segments sized to b<strong>al</strong>ance computation<strong>al</strong><br />

effort versus network transmission time. Each of the

user-selected computation servers fetches a segment for rendering<br />

via remote procedure c<strong>al</strong>ls (RPC), returns results and fetch<br />

another segment. The servers effectively compete for segments,<br />

with faster servers processing more segments per unit<br />

time, ensuring relatively equ<strong>al</strong> load b<strong>al</strong>ancing across the pool.<br />

An<strong>al</strong>ysis of this distribution <strong>al</strong>gorithm [Giertsen, 93] shows<br />

that the performance improvement is a function of both the<br />

number of segments and the number of computation<strong>al</strong> servers,<br />

with the optim<strong>al</strong> number of sections increasing directly with<br />

the number of available servers. Test results indictate that<br />

performance improvement flattens out between 10 to 20<br />

segments distributed across an available pool of four servers.<br />

Although this <strong>al</strong>gorithm may not be perfect, it achieves acceptable<br />

results.<br />

2.2 Cooperative Visu<strong>al</strong>izaton<br />

The VIS client, together with its volume rendering servers,<br />

may be lauched by another application collectively as a<br />

visu<strong>al</strong>ization server. The two requirements of cooperation are<br />

a shared window system buffer for the rendered image and<br />

support for a limited number of inter-process messages. VIS<br />

and the initiating application communicate via the ToolT<strong>al</strong>k<br />

service, passing messages specifying the data object to visu<strong>al</strong>ize<br />

as well as options for visu<strong>al</strong>ization, and maintaining state<br />

regarding image display. The VIS Panel application appears as<br />

a new top-level window and <strong>al</strong>lows the user control of the<br />

visu<strong>al</strong>ization tool.<br />

3. Visu<strong>al</strong>ization with Mosaic<br />

We have enhanced the Mosaic WWW browser to support<br />

both a three-dimension<strong>al</strong> data object and communication with<br />

VIS as a coopezrating application (figure 2). HTTP servers<br />

respond to requests from clients, e.g. Mosaic, by transferring<br />

hypertext documents to the client. Those documents may<br />

contain text and images as intrinsic elements and may <strong>al</strong>so<br />

contain extern<strong>al</strong> links to any arbitrary data object (e.g. audio,<br />

video, etc…). Mosaic may <strong>al</strong>so communicate with other<br />

Internet servers, e.g FTP, either directly – translating request<br />

results into HTML on demand – or via a gateway that provides<br />

translation services. As a WWW client, Mosaic communicates<br />

with the server(s) of interest in response to user actions (e.g.<br />

selecting a hyperlink), initiating a connection and requesting<br />

the document specified by the URL. The server delivers the file<br />

specified in the URL, which may be a HTML document or a<br />

variety of multimedia data files (for example, images, audio<br />

files, and MPEG movies) and Mosaic uses the predefined<br />

SGML DTD for HTML to parse and present the information.<br />

Data types not directly supported by Mosaic are displayed via<br />

user-specifiable extern<strong>al</strong> applications and we have extended<br />

that paradigm to both include three-dimension<strong>al</strong> volume data,<br />

as well as to integrate the extern<strong>al</strong> applications more completely<br />

with Mosaic.<br />

3.1 Mosaic 3D image support<br />

We have extended the HTML DTD to support threedimension<strong>al</strong><br />

data via the introduction of a new SGML element:<br />

EMBED. This element provides information to the<br />

presentation system (i.e. Mosaic) about the content that is<br />

referenced in the document. The EMBED element is defined<br />

in the HTML DTD as shown in Example 1, which is translated<br />

as “SGML document instance element tag EMBED containing<br />

no content; four required attributes: TYPE, the type of the<br />

extern<strong>al</strong> application, in the MIME-type format; HREF, the<br />

location/URL of the datafile; WIDTH, the window width<br />

and, HEIGHT, the window height. The TYPE attribute give<br />

this specification the flexibility to accomodate different types<br />

of extern<strong>al</strong> applications. In a HTML document, a 3D image<br />

element would be represented as shown in Example 2, which<br />

may be interpreted as “create a drawing-area window of width<br />

400 pixels, height 400 pixels, and use the application associated<br />

to hdf/volume MIME content-type to visu<strong>al</strong>ize the data<br />

Embryo.hdf located at the HTTP server site<br />

www.library.ucsf.edu”.<br />

3.2 Interface with Mosaic<br />

The VIS/Mosaic software system consists of three elements:<br />

VIS, Mosaic, and Panel. Currently, the VIS application<br />

communicates with Mosaic via ToolT<strong>al</strong>k, but the<br />

system will work with any interclient communication protocol.<br />

When Mosaic interprets the HTML tag EMBED, it<br />

creates a drawing area widget in the document page presentation<br />

and requests a shared buffer or pixmap from the windowing<br />

system to receive visu<strong>al</strong>ization results. In addition, Mosaic<br />

launches the Panel process, specifying the location of the data<br />

object to render and identifying the shared image buffer. The<br />

Panel process begins execution by first verifying its operating<br />

parameters, then launching the VIS process. The Panel process<br />

<strong>al</strong>so presents the user with the control elements for data<br />

manipulation and manages the communication between the<br />

whole VIS application and Mosaic.<br />

The VIS process, on the other hand, serves as a rendering<br />

engine. It executes the visu<strong>al</strong>ization commands from the Panel<br />

process, integrates the image data segments from various<br />

VRServers, and presents the complete array of image data to<br />

the Panel.<br />

Thus the scenario following a user’s action on the Panel<br />

will be (1) Panel issues visu<strong>al</strong>ization commands to the VIS<br />

rendering engine, (2) VIS sends rendering requests to

Figure 2: VIS embeded within Mosaic for interactive visu<strong>al</strong>ization in a HTML document.<br />

VRServer(s), then gathers the resulting image segments, (3)<br />

Panel fetches the returned image data, then writes it to the<br />

pixmap, (4) Panel notifies Mosaic upon completion, and (5)<br />

Mosaic bit-blots the pixmap contents into its corresponding<br />

DrawingArea widget. The interprocess communication issue<br />

will be addressed in more details under section 3.3. The<br />

configuration of this software system is depicted in figure 3.<br />

3.3 Interclient communication<br />

We recognized the minimum set of communication protocols<br />

between Mosaic and a particular Panel process:<br />

(a) Messages from Mosaic to a Panel process include the<br />

following:<br />

(i) ExitNotify - requesting the Panel to terminate<br />

itself.when Mosaic exits.<br />

(ii) MapNotify - requesting the Panel to map itself to<br />

the screen when the HTML document containing the<br />

DrawingArea corresponding to the above panel is visible.<br />

(iii) UnmapNotify - requesting the Panel to unmap/<br />

iconify itself when the HTML page containing the DrawingArea<br />

corresponding to the above Panel is cached.<br />

(b) Messages from a Panel process to Mosaic may be one<br />

of the following:<br />

(i) RefreshNotify - informing Mosaic of an update in<br />

the shared pixmap, and requesting Mosaic to update the<br />

correspinding DrawingArea.<br />

(ii) PanelStartNotify - informing Mosaic the Panel is<br />

started successfully, and ready to receive messages.<br />

(iii) PanelExitNotify - informing Mosaic the Panel is<br />

exiting, and Mosaic should not send any more messages to the<br />

Panel.<br />

We have packaged the above protocols and <strong>al</strong>l the required<br />

messaging functions into a library. Modification of an existing<br />

extern<strong>al</strong> application merely involves registration of the extern<strong>al</strong><br />

application’s messaging window (the window to receive Mosaic’s<br />

messages), inst<strong>al</strong>lation of c<strong>al</strong>lback functions corresponding to

the messages from Mosaic, and addition of message-sending<br />

routine invocations. The protocol is summarized in Table 1.<br />

Messages Descriptions<br />

ExitNotify Mosaic exiting<br />

MapNotify DrawingArea visible<br />

UnmapNotify DrawingArea cache<br />

RefreshNotify DrawingArea update<br />

PanelStartNotify Panel starting<br />

PanelExitNotify Panel exiting<br />

Table 1: Mosaic/VIS IPC communication.<br />

4. Results<br />

The results of the above implementation are very encouraging.<br />

The Mosaic/VIS sucessfully <strong>al</strong>lows users to visu<strong>al</strong>ize<br />

HDF volume datasets from various HTTP server sites. Fig 2<br />

shows a snapshot of the WWW visu<strong>al</strong>izer. Distributing the<br />

volume rendering loads results in a remarkable speedup in<br />

image computations. Our performance ananlysis with a<br />

homogeneous pool of Sun SPARCstation 2’s on a relatively<br />

c<strong>al</strong>m network produced reasonable results (Figures 4a, 4b, and<br />

4c. Three tri<strong>al</strong>s per plot). The time-versus-number-ofworkstations<br />

curve decreases as more servers participate, and<br />

plateaus when the number of SPARCstations is 11 in the case<br />

of 256x256 image (9 for 192x192 image, and 7 for 128x128<br />

image). The speed increases at the plateaus are very significant:<br />

about 10 times for the 256x256 image, 8 times for the 192x192<br />

image, and 5 times for the 128x128 image. The outcomes<br />

suggest that performance improvement is a function of the<br />

number of volume rendering servers. Furthermore, the optim<strong>al</strong><br />

number of workstations and the speed increase are larger<br />

when the image size is bigger. This is in complete agreement<br />

with Giertsen’s an<strong>al</strong>ysis. We have <strong>al</strong>so successfully tested the<br />

software system in an environment consisting of heterogenous<br />

workstations: a SGI Indigo2 R4400/150MHz, two SGI Indy<br />

R4000PC/100MHz, a DEC Alpha 3000/500 with a 133MHz<br />

Alpha processor, two Sun SparcStations 10, and two Sun<br />

SparcStations 2, which were located arbitrarily on an Ethernet<br />

network. To our knowledge this is the first demonstration of<br />

the embedding of interactive control of a client/server visu<strong>al</strong>ization<br />

application within a multimedia document in a distributed<br />

hypermedia environment, such as the World Wide Web.<br />

5. Ongoing/Future work<br />

We have begun working on sever<strong>al</strong> extensions and improvements<br />

on the above software system:<br />

<br />

<br />

Example 1: SGML definition for EMBED element.<br />

<br />

TYPE=”hdf/volume”<br />

WIDTH=400<br />

HEIGHT=400><br />

Example 2: EMBED element usage.<br />

5.1 MPEG Data Compression<br />

The data transferred between the visu<strong>al</strong>ization servers and<br />

the clients consists of the exact byte streams computed by the<br />

servers, packaged in the XDR machine independent format.<br />

One way to reduce network transferring time would be to<br />

compress the data before delivery. We propose to use the<br />

MPEG compression technique, which will not only perform<br />

redundancy reduction, but <strong>al</strong>so a qu<strong>al</strong>ity-adjustable entropy<br />

reduction. Furthermore, the MPEG <strong>al</strong>gorithm performs<br />

MOSAIC<br />

INTER-CLIENT<br />

COMMUNICATION<br />

VISUALIZATION<br />

COMMANDS<br />

RENDERING<br />

REQUESTS<br />

PANEL<br />

IMAGE<br />

DATA<br />

VRSERVER(S)<br />

Figure 3: Communication among Mosaic, VIS<br />

and distributed rendering servers.<br />

VIS<br />

IMAGE<br />

SEGMENTS

interframe, beside intraframe, compression. Consequently,<br />

only the compressed difference between the current and the<br />

last frames is shipped to the client.<br />

5.2 Gener<strong>al</strong>ized Extern<strong>al</strong>-Application-to-Mosaic-Document-Page<br />

Display Interface<br />

The protocols specified in Table 1 are simple, and gener<strong>al</strong><br />

enough to <strong>al</strong>low most image-producing programs be modified<br />

to display in the Mosaic document page. We have successfully<br />

incorporated an in-house CAD model rendering program into<br />

Mosaic. Our next undertakings will be to extend the protein<br />

1<br />

2<br />

3<br />

4<br />

5<br />

Number of Servers<br />

128x128<br />

192x192<br />

256x256<br />

6<br />

7<br />

8<br />

9<br />

10<br />

11<br />

12<br />

database (PDB) displaying program, and the xv 2D image<br />

processing program, to create a Mosaic PDB visu<strong>al</strong>ization<br />

server, and a Mosaic 2D image processing server.<br />

5.3 Multiple Users<br />

With multiple users, the VIS/Mosaic distributed visu<strong>al</strong>ization<br />

system will need to manage the server resources, since<br />

multiple users utilizing the same computation<strong>al</strong> servers will<br />

slow the servers down significantly. The proposed solution is<br />

depicted in Fig 5. The server resource manager will <strong>al</strong>locate<br />

servers per VIS client request only if those servers are not<br />

Figure 4: Volume rendering performance for 128 2 , 192 2 , and 256 2 data sets .<br />

13<br />

14<br />

128x128<br />

192x192<br />

256x256<br />

12.00<br />

10.00<br />

8.00<br />

6.00<br />

4.00<br />

2.00<br />

0.00<br />

20.00<br />

18.00<br />

16.00<br />

14.00<br />

Volume Size<br />

Time (sec)

overloaded. Otherwise, negotiation between the resource<br />

manager and the VIS client will be necessary, and, perhaps the<br />

resource manager will <strong>al</strong>locate less busy <strong>al</strong>ternatives to the<br />

client.<br />

5.4 Load Distributing Algorithm<br />

Since the load distributing <strong>al</strong>gorithm in the current VIS<br />

implementation is not the most optim<strong>al</strong> load distribution<br />

solution, we expect to see some improvement in the future<br />

implementation, which will be using sender-initiated <strong>al</strong>gorithms,<br />

described in [Shivaratri].<br />

NETWORK<br />

BOUNDARY<br />

ENCODED<br />

IMAGE DATA<br />

NETWORK<br />

BOUNDARY<br />

6. Conclusions<br />

NETWORK<br />

BOUNDARY<br />

SERVER<br />

RESOURCE<br />

MANAGER<br />

REQUEST<br />

FOR SERVICE<br />

VISUALIZATION<br />

COMMANDS<br />

CLIENT<br />

VISUALIZATION<br />

PROCESSES<br />

VISUALIZATION<br />

SERVER<br />

PROCESS<br />

POOL<br />

Figure 5: Server Resource Management<br />

PROCESS<br />

ALLOCATION<br />

Our system takes the technology of networked multimedia<br />

system (especi<strong>al</strong>ly the World Wide Web) a step further by<br />

proving the possibility of adding new interactive data types to<br />

both the WWW servers and clients. The addition of the 3D<br />

volume data object in the form of an HDF file to the WWW<br />

has been welcomed by many medic<strong>al</strong> researchers, for it is now<br />

possible for them to view volume datasets without a high-cost<br />

workstation. Furthermore, these visu<strong>al</strong>izations can be accessed<br />

via the WWW, through hypertext and hypergraphics links<br />

within an HTML page. Future implementations of this<br />

approach using other types of embedded applications will<br />

<strong>al</strong>low the creation of a new paradigm for the online distribution<br />

of multimedia information via the Internet.<br />

7. References<br />

Argiro, V. “Seeing in Volume”, Pixel, July/August 1990, 35-<br />

39.<br />

Avila, R., Sobierajski, L. and Kaufman A., “Towards a Comprehensive<br />

Volume Visu<strong>al</strong>ization System”, Visu<strong>al</strong>ization<br />

’92 Proceedings, IEEE Computer<br />

Society Press, October 1992, 13-20.<br />

Andreessen, M., “NCSA Mosaic Technic<strong>al</strong> Summary”, from<br />

FTP site ftp.ncsa.uiuc.edu, 8 May 1993.<br />

Bloomer, J., “Power Programming with RPC”, O’Reilly &<br />

Associate, September 1992, 401-451.<br />

Brinkley, J.F., Eno, K., Sundsten, J.W., “Knowledge-based<br />

client-server approach to stuctur<strong>al</strong> information<br />

retriev<strong>al</strong>: the Digit<strong>al</strong> Anatomist Browser”, Computer<br />

methods and Programs in Biomedicine,<br />

Vol. 40, No. 2, June 1993, 131-145.<br />

Broering, N. C., “Georgetown University, The Virtu<strong>al</strong> Medic<strong>al</strong><br />

Library,” Computers in Libraries, Vol. 13,<br />

No. 2, February 1993, 13.<br />

Drebin, R. A., Carpenter, L. and Hanrahan, P., “Volume<br />

Rendering”, Computer Graphics, Vol. 22, No.<br />

4, August 1988, 64-75.<br />

Flanders, B., “Hypertext Multimedia Software: Bell Atlantic<br />

DocuSource”, Computers in Libraries, Vol 13,<br />

No. 1, January 1993, 35-39.<br />

Gelerg, L., “Volume Rendering in AVS5”, AVS Network<br />

news, Vol. 1, Issue 4, 11-14.<br />

Giertsen, C. and Petersen, J., “Par<strong>al</strong>lel Volume Rendering on<br />

a Network of Workstations”, IEEE Computer<br />

Graphics and Applications, November 1993,<br />

16-23.

Jäger, M., Osterfeld, U., Ackermann, H, and Hornung, C.,<br />

“Building a Multimedia ISDN PC”, IEEE Computer<br />

Graphics and Applications, September<br />

1993, 24-33.<br />

Kaufman, A., Cohen, D., and Yagel, R., “Volume Graphics”,<br />

Computer, July 1993, 51-64.<br />

Kiong B., and Tan, T., “A hypertext-like approach to navigating<br />

through the GCG sequence an<strong>al</strong>ysis package”,<br />

Computer Applications in the Biosciences,<br />

Vol. 9, No. 2, 1993, 211-214.<br />

Levoy, M., “Display of Surfaces from Volume Data”, IEEE<br />

Computer Graphics and Applications, Vol. 8,<br />

No. 5, May 1988, 29-37.<br />

Lorensen, W., Cline, H.E., “Marching Cubes: A High Resolution<br />

3D Surface Construction Algorithm”,<br />

Computer Graphics, Vol. 21, No. 4, July 1987,<br />

163-169.<br />

Mercurio, F., “Khoros”, Pixel, March/April 1992, 28-33.<br />

Narayan, S., Sensharrma D., Santori, E.M., Lee, A.A.,<br />

Sabherw<strong>al</strong>, A., Toga, A.W., “Animated visu<strong>al</strong>ization<br />

of a high resolution color three dimension<strong>al</strong><br />

digit<strong>al</strong> computer model of the whole<br />

human head”, Internation<strong>al</strong> Journ<strong>al</strong> of Bio-<br />

Medic<strong>al</strong> Computing, Vol 32, No. 1, January<br />

1993, 7-17.<br />

Nickerson, G., “WorldWideWeb Hypertext from CERN”,<br />

Computers in Libraries, Vol. 12, No. 11, December<br />

1992, 75-77.<br />

Obraczka, K., Danzig, P, and Li, S., “Internet Resource<br />

Discovery Services”, Computer, Vol. 26, No. 9,<br />

September 1993, 8-22.<br />

Pommert, A., Riemer, M., Schiemann, T., Schubert. R.,<br />

Tiede, U., Hoehne, K-H, “Methods and Applications<br />

of Medic<strong>al</strong> 3D-Imaging”, SIGGRAPH<br />

93 course notes for volume visulization, 68-97.<br />

Robison, D., “The Changing States of Current Cites: The<br />

Evolution of an Electronic Journ<strong>al</strong>”, Computers<br />

in Libraries, Vol. 13, No. 6, June 1993, 21-26.<br />

Shivaratri, N.G., Krueger, P., and Singh<strong>al</strong>, M., “Load Distributing<br />

for Loc<strong>al</strong>ly Distributed Systems”, Computer,<br />

December 1992, 33-44.<br />

Singh. J, Hennessy, J. and Gupta A., “Sc<strong>al</strong>ing Par<strong>al</strong>lel Programs<br />

for Multiprocessors: Methodology and<br />

Examples”, Computer, July 1993, 42-49.<br />

Story, G., O’Gorman, L., Fox. D, Schaper, L. and Jagadish,<br />

H.V., “The RightPages Image-Based Electronic<br />

Library for Alerting and Browsing”, Computer,<br />

September 1992, 17-26.<br />

VandeWettering, M., “apE 2.0”, Pixel, November/December<br />

1990, 30-35.<br />

Woodward, P., “Interactive Scientific Visu<strong>al</strong>ization of Fluid<br />

Flow”, Computer, Vol. 26, No. 10, June 1993,<br />

13-25.<br />

Zandt, W.V., “A New ‘Inlook’ On Life”, UNIX Review, Vol<br />

7, No. 3, March 1989, 52-57.

Please reference the following QuickTime movie located in the MOV<br />

directory:<br />

CHEONG.MOV<br />

Copyright © 1994 by Cheong S. Ang, M.S.<br />

QuickTime is a trademark of Apple Computer, Inc.

VolVis: A Diversified Volume Visu<strong>al</strong>ization System<br />

Ricardo Avila ‡ ,Taosong He * ,Lichan Hong * ,Arie Kaufman * ,<br />

Hanspeter Pfister * ,Claudio Silva * ,Lisa Sobierajski * ,Sidney Wang *<br />

‡<br />

Howard Hughes Medic<strong>al</strong> Institute<br />

*<br />

Department of Computer Science<br />

State University of New York at Stony Brook State University of New York at Stony Brook<br />

Stony Brook, NY 11794-5230 Stony Brook, NY 11794-4400<br />

Abstract<br />

VolVis is a diversified, easy to use, extensible, high<br />

performance, and portable volume visu<strong>al</strong>ization system for<br />

scientists and engineers as well as for visu<strong>al</strong>ization<br />

developers and researchers. VolVis accepts as input 3D<br />

sc<strong>al</strong>ar volumetric data as well as 3D volume-sampled and<br />

classic<strong>al</strong> geometric models. Interaction with the data is<br />

controlled by a variety of 3D input devices in an input<br />

device-independent environment. VolVis output includes<br />

navigation preview, static images, and animation<br />

sequences. A variety of volume rendering <strong>al</strong>gorithms are<br />

supported, ranging from fast rough approximations, to<br />

compression-domain rendering, toaccurate volumetric ray<br />

tracing and radiosity, and irregular grid rendering.<br />

1. Introduction<br />

The visu<strong>al</strong>ization of volumetric data has aided many<br />

scientific disciplines ranging from geophysics to the<br />

biomedic<strong>al</strong> sciences. The diversity of these fields coupled<br />

with a growing reliance on visu<strong>al</strong>ization has spawned the<br />

creation of a number of speci<strong>al</strong>ized visu<strong>al</strong>ization systems.<br />

These systems are usu<strong>al</strong>ly limited by machine and data<br />

dependencies and are typic<strong>al</strong>ly not flexible or extensible.<br />

Afew visu<strong>al</strong>ization systems have attempted to overcome<br />

these dependencies (e.g., AVS, SGI Explorer, Khoros) by<br />

taking a data-flow approach. However, the added<br />

computation<strong>al</strong> costs associated with data-flow systems<br />

results in poor performance. In addition, these systems<br />

require that the scientist or engineer invest a large amount<br />

of time understanding the capabilities of each of the<br />

computation<strong>al</strong> modules and how toeffectively link them<br />

together.<br />

VolVis is a volume visu<strong>al</strong>ization system that unites<br />

numerous visu<strong>al</strong>ization methods within a comprehensive<br />

visu<strong>al</strong>ization system, providing a flexible tool for the<br />

scientist and engineer as well as the visu<strong>al</strong>ization<br />

developer and researcher. The VolVis system has been<br />

designed to meet the following key objectives:<br />

Diversity: VolVis supplies a wide range of<br />

function<strong>al</strong>ity with numerous methods provided within each<br />

function<strong>al</strong> component. For example, VolVis provides<br />

various projection methods including ray casting, ray<br />

tracing, radiosity, Marching Cubes, and splatting.<br />

Ease of use: The VolVis user interface is organized<br />

into function<strong>al</strong> components, providing an easy to use<br />

visu<strong>al</strong>ization system. One advantage of this approach over<br />

data-flow systems is that the user does not have to learn<br />

how tolink numerous modules in order to perform a task.<br />

Extensibility: The structure of the VolVis system is<br />

designed to <strong>al</strong>low avisu<strong>al</strong>ization programmer to easily add<br />

new representations and <strong>al</strong>gorithms. For this purpose, an<br />

extensible and hierarchic<strong>al</strong> abstract model was developed<br />

[1] which contains definitions for <strong>al</strong>l objects in the system.<br />

Portability: The VolVis system, written in C, is<br />

highly portable, running on most Unix workstations<br />

supporting X/Motif. The system has been tested on Silicon<br />

Graphics, Sun, Hewlett-Packard, Digit<strong>al</strong> Equipment<br />

Corporation, and IBM workstations and PCs.<br />

Freely available: The high cost of most<br />

visu<strong>al</strong>ization systems and difficulties in obtaining their<br />

source code often lead researchers to write their own tools<br />

for specific visu<strong>al</strong>ization tasks. VolVis is freely available as<br />

source code.<br />

2. System Overview<br />

Figure 1 shows the VolVis pipeline, indicating some<br />

paths that input data could take through the VolVis system<br />

in order to produce visu<strong>al</strong>ization output. Two of the basic<br />

input data classes of VolVis are volumetric data and 3D<br />

geometric data. The input data is processed by the<br />

Modeling and Filtering components of the system to<br />

produce either a 3D volume model or a 3D geometric<br />

surface model of the data. For example, geometric data can<br />

be converted into a volume model by the Modeling<br />

component of the system, as described in Section 3, to<br />

<strong>al</strong>low for volumetric graphic operations. A geometric<br />

surface model can be created from a volume model by the<br />

process of surface extraction.

Key:<br />

3D Sc<strong>al</strong>ar Field<br />

Volumetric<br />

Model<br />

Input Data<br />

Intern<strong>al</strong> Data<br />

Output<br />

Visu<strong>al</strong>ization<br />

Action<br />

Modeling<br />

&<br />

Filtering<br />

Surface<br />

Extraction<br />

Measurement<br />

Manipulation<br />

Environment<br />

Rendering<br />

Image Animation<br />

Figure 1:The VolVis pipeline.<br />

3D Geometric<br />

Objects<br />

Geometric<br />

Surface Model<br />

Virtu<strong>al</strong> Input<br />

Device<br />

Input Device<br />

Abstraction<br />

Physic<strong>al</strong> Input<br />

Device<br />

Navigation<br />

Preview<br />

The Measurement component can be used to obtain<br />

quantitative information from the data models. Surface<br />

area, volume, histogram and distance information can be<br />

extracted from volumes using one of sever<strong>al</strong> methods.<br />

Isosurface volume and surface area measurements can be<br />

taken either on an entire volume or on a surface-tracked<br />

section. Addition<strong>al</strong>ly, surface areas and volumes can be<br />

computed using either a simple non-interpolated voxel<br />

counting method or a Marching Cubes [8] based<br />

measurement method. For geometric surface models,<br />

surface area, volume, and distance measurements can be<br />

performed.<br />

Most of the interaction in VolVis occurs within the<br />

Manipulation component of the system. This part of the<br />

system <strong>al</strong>lows the user to modify object parameters such as<br />

color, texture, and segmentation, and viewing parameters<br />

such as image size and field of view. Within the<br />

Navigation section of the Manipulation component, the<br />

user can interactively modify the position and orientation<br />

of the volumes, the light sources, and the view. This is<br />

closely connected to the Animation section of the<br />

Manipulation component, which <strong>al</strong>lows the user to specify<br />

animation sequences either interactively or with a set of<br />

transformations to be applied to objects in the scene. The<br />

Manipulation component is described in Section 4.<br />

The Rendering component encompasses sever<strong>al</strong><br />

different rendering <strong>al</strong>gorithms, including geometry-based<br />

techniques such as Marching Cubes, glob<strong>al</strong> illumination<br />

methods such as ray tracing and radiosity, and direct<br />

volume rendering <strong>al</strong>gorithms such as splatting. The<br />

Rendering component is described in Section 5.<br />

The Input Device component of the system maps<br />

physic<strong>al</strong> input device data into a device independent<br />

representation that is used by various <strong>al</strong>gorithms requiring<br />

user interaction. As a result, the VolVis system is input<br />

device independent, as described in Section 6.<br />

3. Modeling<br />

Aprimary responsibility of the Modeling component<br />

is the voxelization of geometric data into volumetric model<br />

representations. Voxelizing a continuous model into a<br />

volume raster of voxels requires a geometric<strong>al</strong> sampling<br />

process which determines the v<strong>al</strong>ues to be assigned to<br />

voxels of the volume raster. To reduce object space<br />

<strong>al</strong>iasing, we adopt a volume sampling technique [14] that<br />

estimates the density contribution of the geometric objects<br />

to the voxels. The density of a voxel is determined by a<br />

filter weight function which is proportion<strong>al</strong> to the distance<br />

between the center of the voxel and the geometric<br />

primitive. Inour implementation, precomputed tables of<br />

densities for a predefined set of geometric primitives are<br />

used to assign the density v<strong>al</strong>ue of each voxel. For each<br />

voxel visited by the voxelization <strong>al</strong>gorithm, the distance to<br />

the predefined primitive is used as an index into the tables.<br />

Figure 2:Avolumetric ray traced image of a volumesampled<br />

geometric wine bottle and glasses.

Since the voxelized geometric objects are<br />

represented as volume rasters of density v<strong>al</strong>ues, we can<br />

essenti<strong>al</strong>ly treat them as sampled or simulated volume data<br />

sets, such as 3D medic<strong>al</strong> imaging data sets, and employ<br />

one of many volume rendering techniques for image<br />

generation. One advantage of this approach is that volume<br />

rendering carries the smoothness of the volume-sampled<br />

objects from object space over into image space. Hence,<br />

the silhouette of the objects, reflections, and shadows are<br />

smooth. Furthermore, by not performing any geometric<br />

ray-object intersections or geometric surface norm<strong>al</strong><br />

c<strong>al</strong>culations, a large amount of rendering time is saved. In<br />

addition, CSG operations between two volume-sampled<br />

geometric models are accomplished at the voxel level<br />

during voxelization, thereby reducing the origin<strong>al</strong> problem<br />

of ev<strong>al</strong>uating a CSG tree of such operations down to a<br />

Boolean operation between pairs of voxels. Figure 2<br />

shows a ray traced image of a wine bottle and glasses that<br />

were modeled by CSG operations on volume-sampled<br />

geometric objects. The upper right window inFigure 3<br />

shows a ray traced image of a nut and bolt that were <strong>al</strong>so<br />

modeled by CSG operations.<br />

Figure 3:Anexample VolVis session. The nut and bolt<br />

are volume-sampled geometric models.<br />

4. Manipulation<br />

The Manipulation component of VolVis consists of<br />

three sections: the Object Control section, the Navigation<br />

section, and the Animation section. The Navigation and<br />

Animation sections are <strong>al</strong>so referred to as the Navigator<br />

and Animator, respectively. Both the Navigator and<br />

Animator produce output visu<strong>al</strong>ization, shown in Figure 1<br />

as Navigation Preview and Animation, respectively.<br />

The Object Control section of the system is<br />

extensive, <strong>al</strong>lowing the user to manipulate parameters of<br />

the objects in the scene. This includes modifications to the<br />

color, texture, and shading parameters of each volume, as<br />

well as more complex operations such as positioning of cut<br />

planes and data segmentation. The color and position of<br />

<strong>al</strong>l light sources can be interactively manipulated by the<br />

user. Also, viewing parameters, such as the fin<strong>al</strong> image<br />

size, and glob<strong>al</strong> parameters, such as ambient lighting and<br />

the background color, can be modified.<br />

The Navigator <strong>al</strong>lows the user to interactively<br />

manipulate objects within the system. The user can<br />

translate, sc<strong>al</strong>e and rotate <strong>al</strong>l volumes and light sources, as<br />

well as the view itself. The Navigator can <strong>al</strong>so be used to<br />

interactively manipulate the view inamanner similar to a<br />

flight simulator. Toprovide interactive navigation speed, a<br />

fast rendering <strong>al</strong>gorithm was developed which involves<br />

projecting reduced resolution representations of <strong>al</strong>l objects<br />

in the scene. This task is relatively simple for geometric<br />

objects, where c<strong>al</strong>culating, storing, and projecting a<br />

polygon<strong>al</strong> approximation requires little overhead.<br />

However, when considering a volumetric isosurface the<br />

cost of an addition<strong>al</strong> representation increases considerably.<br />

Asimple and memory efficient method available within<br />

the Navigator creates a reduced resolution representation<br />

of an isosurface by uniformly subdividing the volume into<br />

boxes and projecting the outer faces of <strong>al</strong>l the boxes that<br />

contain a portion of the isosurface. These subvolumes<br />

serve adu<strong>al</strong> purpose in that they are <strong>al</strong>so used by the<br />

PARC (Polygon Assisted Ray Casting) acceleration<br />

method [1] during ray casting and ray tracing.<br />

Although the PARC subvolume representation can<br />

be stored as a compact list of subvolume indices, the<br />

resulting images are boxy and uninformative for many data<br />

sets. To overcome this problem, another method is<br />

provided which utilizes a reduced resolution Marching<br />

Cubes representation of an isosurface. In order to reduce<br />

the amount of data required for this representation, edge<br />

intersections used to compute triangle vertices are<br />

restricted to one of four possible locations. This results in<br />

much smoother images which are typic<strong>al</strong>ly more<br />

informative than the uniform subdivision method. The<br />

Navigator <strong>al</strong>so supports the other VolVis rendering<br />

techniques that are described in Section 5, <strong>al</strong>though<br />

interactive projection rates with these methods can be<br />

achieved only on high-end workstations.<br />

The Animator <strong>al</strong>so <strong>al</strong>lows the user to specify<br />

transformations to be applied to objects within the scene,<br />

but asopposed to the Navigator which is used to apply a<br />

single transformation at a time, the Animator can be used<br />

to specify a sequence of transformations to produce an<br />

animation. The user can preview the animation using one<br />

of the fast rendering techniques within the Navigator. The<br />

user can then select a more accurate and time consuming<br />

rendering technique, such as volumetric ray tracing, to

create a high qu<strong>al</strong>ity animation. In addition to simple<br />

rotation, translation and sc<strong>al</strong>ing animations, the Navigator<br />

can be used to interactively specify a ‘‘flight path’’, which<br />

can then be passed to the Animator, and rendered to create<br />

an animation.<br />

An example session of the VolVis system is shown in<br />

Figure 3. The long window onthe left is the main VolVis<br />

interface window, with buttons for each of the major<br />

components of the system. The current scene is displayed<br />

in the Navigator window onthe left, and in the Rendering<br />

image window onthe right. A low resolution Marching<br />

Cubes technique was used in the Navigator, while a ray<br />

casting technique using the PARC acceleration method<br />

was employed during rendering.<br />

5. Rendering<br />

Rendering is one of the most important and<br />

extensive components of the VolVis system. For the user,<br />

speed and accuracy are both important, yet often<br />

conflicting aspects of the rendering process. For this<br />

reason, a variety of rendering techniques have been<br />

implemented within the VolVis system, ranging from the<br />

fast, rough approximation of the fin<strong>al</strong> image, to the<br />

comparatively slow, accurate rendering within a glob<strong>al</strong><br />

illumination model. Also, each rendering <strong>al</strong>gorithm itself<br />

supports sever<strong>al</strong> levels of accuracy, giving the user an even<br />

greater amount of control. In this section, a few ofthe<br />

rendering techniques developed for the VolVis system are<br />

discussed.<br />

Tw o of the VolVis rendering techniques, volumetric<br />

ray tracing, and volumetric radiosity, are built upon glob<strong>al</strong><br />

illumination models. Standard volume rendering<br />

techniques, which are <strong>al</strong>so supported by VolVis, typic<strong>al</strong>ly<br />

employ only a loc<strong>al</strong> illumination model for shading, and<br />

therefore produce images without glob<strong>al</strong> effects. Including<br />

aglob<strong>al</strong> illumination model within a visu<strong>al</strong>ization system<br />

has sever<strong>al</strong> advantages. First, glob<strong>al</strong> effects can often be<br />

desirable in scientific applications. For example, by<br />

placing mirrors in the scene, a single image can show<br />

sever<strong>al</strong> views of an object in a natur<strong>al</strong>, intuitive manner<br />

leading to a better understanding of the 3D nature of the<br />

scene. Also, complex surfaces are often easier to render<br />

when represented volumetric<strong>al</strong>ly than when represented by<br />

high-order functions or geometric primitives, as described<br />

in Section 3. Volumetric ray tracing is described in<br />

Section 5.1 and volumetric radiosity is discussed in<br />

Section 5.2.<br />

In order to reduce the large storage and transmission<br />

overhead as well as the volume rendering time for<br />

volumetric data sets, a data compression technique is<br />

incorporated into the VolVis system. This technique <strong>al</strong>lows<br />

volume rendering to be directly performed on the<br />

compressed data and is described in Section 5.3.<br />

Although many scanning devices create data sets<br />

that are inherently rectilinear, this restriction poses<br />

problems for fields in which an irregular data<br />

representation is necessary. These fields include<br />

computation<strong>al</strong> fluid dynamics, finite element an<strong>al</strong>ysis, and<br />

meteorology. Therefore, support was added for irregularly<br />

gridded data formats in the VolVis system, as discussed in<br />

Section 5.4.<br />

5.1. Volumetric Ray Tracing<br />

The volumetric ray tracer provided within the VolVis<br />

system is intended to produce accurate, informative images<br />

[11]. In classic<strong>al</strong> ray tracing, the rendering <strong>al</strong>gorithm is<br />

designed to generate images that are accurate according to<br />

the laws of optics. In VolVis, the ray tracer must handle<br />

classic<strong>al</strong> geometric objects as well as volumetric data, and<br />

strict adherence to the laws of optics is not <strong>al</strong>ways<br />

desirable. For example, a scientist may wish to view the<br />

maximum v<strong>al</strong>ue <strong>al</strong>ong the segment of a ray passing<br />

through a volume, instead of the optic<strong>al</strong>ly-correct<br />

composited v<strong>al</strong>ue. Figure 4 illustrates the importance of<br />

including glob<strong>al</strong> effects in a maximum-v<strong>al</strong>ue projection of<br />

a hippocamp<strong>al</strong> pyramid<strong>al</strong> neuron data set which was<br />

obtained using a laser-scanning confoc<strong>al</strong> microscope.<br />

Since maximum-v<strong>al</strong>ue projections do not give depth<br />

information, a floor is placed below the cell, and a light<br />

source above the cell. This results in a shadow ofthe cell<br />

on the floor, adding back the depth information lost by the<br />

maximum-v<strong>al</strong>ue projection.<br />

In order to incorporate both geometric and<br />

volumetric objects into one scene, the classic<strong>al</strong> ray tracing<br />

intensity equation, which is ev<strong>al</strong>uated only at surface<br />

locations, must be extended to include volumetric effects.<br />

The intensity of light, Iλ(x, →<br />

ω ), for a given wav elength λ,<br />

arriving at a position x, from the direction →<br />

ω , can be<br />

computed by:<br />

I λ(x, →<br />

ω ) = I vλ(x, x′) + τ λ(x, x′)I sλ(x′, →<br />

ω )<br />

where x′ is the first surface intersection point encountered<br />

<strong>al</strong>ong the ray →<br />

ω originating at x. Isλ(x′, →<br />

ω )isthe intensity<br />

of light at this surface location, and can be computed with<br />

a standard ray tracing illumination equation [15].<br />

Ivλ(x, x′) isthe volumetric contribution to the intensity<br />

<strong>al</strong>ong the ray from x to x′, and τ λ(x, x′) isthe attenuation<br />

of Isλ(x′, →<br />

ω )byany intervening volumes. These v<strong>al</strong>ues are<br />

determined using volume rendering techniques, based on a<br />

transport theory model of light propagation [7]. The basic<br />

idea is similar to classic<strong>al</strong> ray tracing, in that rays are cast<br />

from the eye into the scene, and surface shading is<br />

performed on the closest surface intersection point. The<br />

(1)

difference is that shading must be performed for <strong>al</strong>l<br />

volumetric data that are encountered <strong>al</strong>ong the ray while<br />

traveling to the closest surface intersection point.<br />

Figure 4:Avolumetric ray traced image of a cell using<br />

amaximum-v<strong>al</strong>ue projection.<br />

For photo-re<strong>al</strong>istic rendering, the user typic<strong>al</strong>ly<br />

wants to include <strong>al</strong>l of the shading effects that can be<br />

c<strong>al</strong>culated within a given time limit. However,<br />

visu<strong>al</strong>ization users may find it necessary to view<br />

volumetric data with no shading effects, such as when<br />

using a maximum-v<strong>al</strong>ue projection. In VolVis, the user has<br />

control over the illumination equations for both volumetric<br />

and geometric objects, and can specify, for each object in<br />

the scene, which shading effects should be computed. For<br />

example, in Figure 4 no shading effects were included for<br />

the maximum-v<strong>al</strong>ue projection of the cell, while <strong>al</strong>l parts<br />

of the illumination equation were considered when shading<br />

the geometric polygon. In another example, the user may<br />

place a mirror behind a volumetric object in a scene in<br />

order to capture two views in one image, but may not want<br />

the volumetric object to cast a shadow onthe mirror, as<br />

shown in Figure 5. The head was obtained using magnetic<br />

resonance imaging, with the brain segmented from the<br />

same data set. The mirror is a volume-sampled polygon<br />

that was created using the modeling technique described in<br />

Section 3.<br />

5.2. Volumetric Radiosity<br />

The ray tracing <strong>al</strong>gorithm described in the previous<br />

section can be used to capture specular interactions<br />

between objects in a scene. In re<strong>al</strong>ity, most scenes are<br />

dominated by diffuse interactions, which are not accounted<br />

for in the standard ray tracing illumination model. For this<br />

reason, VolVis <strong>al</strong>so contains a radiosity <strong>al</strong>gorithm for<br />

volumetric data. Volumetric radiosity includes the<br />

classic<strong>al</strong> surface ‘‘patch’’ element as well as a ‘‘voxel’’<br />

element. As opposed to previous methods that use<br />

participating media to augment geometric scenes [10], this<br />

method is intended to render scenes that may solely consist<br />

of volumetric data. Each patch or voxel element can emit,<br />

absorb, scatter, and transmit light. Both isotropic and<br />

diffuse emission and scattering of light are <strong>al</strong>lowed, where<br />

‘‘isotropic’’ implies direction<strong>al</strong> independence, and<br />

‘‘diffuse’’ implies Lambertian reflection (i.e., dependent on<br />

norm<strong>al</strong> or gradient). Light entering an element that is not<br />

absorbed or scattered by the element is transmitted<br />

unchanged.<br />

Figure 5:Avolumetric ray traced image of a human head.<br />

In order to cope with the high number of voxel<br />

interactions required, a hierarchic<strong>al</strong> technique similar to<br />

[5] is used. An iterative <strong>al</strong>gorithm [2] is then used to shoot<br />

voxel radiosities, where sever<strong>al</strong> factors govern the highest<br />

level inthe hierarchy atwhich two voxels can interact.<br />

These factors include the distance between the two voxels,<br />

the radiosity of the shooting voxel, and the reflectance and<br />

scattering coefficients of the voxel receiving the radiosity.<br />

This hierarchic<strong>al</strong> technique can reduce the number of<br />

interactions required to converge onasolution by more<br />

than four orders of magnitude.<br />

After the view-independent radiosities have been<br />

c<strong>al</strong>culated, a view-dependent image is generated using a<br />

ray casting technique, where the fin<strong>al</strong> pixel v<strong>al</strong>ue is<br />

determined by compositing radiosity v<strong>al</strong>ues <strong>al</strong>ong the ray.<br />

Figure 6 shows a scene containing a volumetric sphere,<br />

polygon, and light source. The light source isotropic<strong>al</strong>ly<br />

emits light, and both the sphere and the polygon diffusely<br />

reflect light. The light source is above the sphere and<br />

directly illuminates the top h<strong>al</strong>f of the sphere. The bottom<br />

h<strong>al</strong>f of the sphere is indirectly illuminated by light<br />

diffusely reflected from the red polygon.

5.3. Compression Domain Volume Rendering<br />

Another rendering method incorporated in VolVis is<br />

adata compression technique for volume rendering. Our<br />

volume compression technique is a 3D gener<strong>al</strong>ization of<br />

the JPEG still image compression <strong>al</strong>gorithm [13] , with<br />

one important exception: the transform is a discrete Fourier<br />

transform rather than a discrete cosine transform. The<br />

origin<strong>al</strong> 3D data is subdivided into M×M×M subcubes,<br />

where each subcube is Fourier transformed to the<br />

frequency domain through a 3D discrete Fourier transform.<br />

Each of the 3D Fourier coefficients in each subcube is then<br />

quantized, and the resulting 3D quantized frequency<br />

coefficients are organized as a linear sequence through a<br />

3D zig-zag order. The resulting sequence of Fourier<br />

transform coefficients is then fed into an entropy encoder<br />

that consists of run-length coding and Huffman coding.<br />

Figure 6: A volumetric radiosity projection of a<br />

voxelized sphere and polygon.<br />

To render in the compressed domain, we use a new<br />

class of volume rendering <strong>al</strong>gorithms [3, 9, 12] that are<br />

based on the Fourier projection slice theorem. It states that<br />

aprojection of the 3D data volume from a certain direction<br />

can be obtained by extracting a 2D slice perpendicular to<br />

the view direction out of the 3D Fourier spectrum and then<br />

applying an inverse Fourier transform. In our approach we<br />

apply the Fourier projection slice theorem to each subcube<br />

in the Fourier domain, which results in a set of 2D planes<br />

in the spati<strong>al</strong> domain c<strong>al</strong>led subimages that are composited<br />

using spati<strong>al</strong> compositing to get the fin<strong>al</strong> projection of the<br />

origin<strong>al</strong> 3D data set.<br />

Using our compression-domain rendering approach,<br />

we were able to achieve high compression ratios while<br />

maintaining image qu<strong>al</strong>ity. Figure 7 shows a CT scan of a<br />

lobster that was rendered in the compressed domain.<br />

We are currently investigating the adaptation of<br />

subcube sizes to various spati<strong>al</strong> or frequency domain<br />

criteria, such as subcube AC coefficient energy, which is a<br />

measure of subcube activity, sample density, and<br />

coefficient distribution.<br />

Figure 7: Compression domain volume rendering of a<br />

lobster.<br />

5.4. Irregular Grid Rendering<br />

An intuitive way to visu<strong>al</strong>ize irregularly gridded data<br />

sets is to resample the data into a regular grid format.<br />

Unfortunately, it is quite difficult to find a resampling<br />

method that preserves details yet does not require a large<br />

amount of memory. Consequently, wechose to extend the<br />

tradition<strong>al</strong> volume rendering <strong>al</strong>gorithms to process the<br />

irregularly gridded data directly. For example, we have<br />

extended the ray tracing <strong>al</strong>gorithms in VolVis to visu<strong>al</strong>ize<br />

data represented in a spheric<strong>al</strong> coordinate system, with<br />

grids that are unevenly spaced in r, evenly spaced in θ ,and<br />

unevenly spaced in φ. When rendering, we could cast rays<br />

into the scene, uniformly stepping and compositing <strong>al</strong>ong<br />

each ray. A problem with uniform stepping is that it<br />

inevitably misses detailed information. To avoid this<br />

problem, we traverse the ray cell by cell in the volume, in a<br />

method similar to Garrity [4].<br />

6. Input Devices<br />

The Input Device component of the VolVis system<br />

<strong>al</strong>lows the user to control a variety of input devices in an<br />

input device independent environment. For example, to<br />

control the Navigator, the user can utilize a variety of<br />

physic<strong>al</strong> input devices such as a keyboard, a mouse, a<br />

Spaceb<strong>al</strong>l, and a DataGlove. To achieve this, we have<br />

developed the device unified interface (DUI) [6], which is<br />

a gener<strong>al</strong>ized and easily expandable protocol for<br />

communication between applications and input devices.

The key idea of the DUI is to convert raw data<br />

received from different input sources into unified format<br />

parameters of a ‘‘virtu<strong>al</strong> input device’’. Depending on the<br />

requirements of the application, the parameters may<br />

include a number of 3D positions and orientations as well<br />

as abstract actions. The abstract actions include direct and<br />

simple actions like mouse or Spaceb<strong>al</strong>l button clicks , and<br />

complex dynamic actions like two hand gestures or ‘‘snapdragging’’.<br />

The conversion from the re<strong>al</strong> device operations<br />

to abstract actions is performed by the selected simulation<br />

methods which are incorporated into the DUI.<br />

The most important advantage of employing the<br />

virtu<strong>al</strong> input device paradigm is input device<br />

independence. In the DUI, each application is interactively<br />

assigned a virtu<strong>al</strong> input device, whose configuration is <strong>al</strong>so<br />

interactively decided. Modification of either the input<br />

device component or the application does not affect other<br />

parts of the system. The simulation methods used to<br />

convert different kinds of raw information into the unified<br />

format are often difficult to design. For example, the<br />

recognition of dynamic gestures of a DataGlove is fairly<br />

difficult. By using the DUI, new simulation methods can<br />

be easily incorporated and tested with no adverse effect on<br />

the application or the other parts of the Input Device<br />

component.<br />

However, in order to fully utilize the capability of<br />

different devices, a virtu<strong>al</strong> input device should not tot<strong>al</strong>ly<br />

hide the device dependent information since different<br />

devices are suitable for different applications. For<br />

example, it is harder to control the Navigator with the<br />

Spaceb<strong>al</strong>l than with the DataGlove, since the six degrees of<br />

freedom provided by the Spaceb<strong>al</strong>l are not entirely<br />

independent as they are in the DataGlove. Inthe DUI, a<br />

device information-base is associated with each virtu<strong>al</strong><br />

input device. All of the device dependent information<br />

related to a virtu<strong>al</strong> device is classified and stored in an<br />

abstract form, which is then queried by an application<br />

when necessary [6].<br />

We are currently working on the expansion of the<br />

DUI into a gener<strong>al</strong>-purpose interaction model. The model<br />

is created based on lightweight threads and is designed to<br />

handle simultaneous high bandwidth, multimod<strong>al</strong>, and<br />

complex input from multiple users, even through the<br />

network. A gener<strong>al</strong> abstract action and input device<br />

description language is <strong>al</strong>so being studied.<br />

7. Implementation<br />

Tw o major concerns during the implementation of<br />

VolVis have been to ensure that the system could be<br />

expanded to include new function<strong>al</strong>ity and techniques, and<br />

that the system would be relatively easy to port to new<br />

platforms. Therefore, the development of the VolVis<br />

system required the creation of a comprehensive, flexible,<br />

and extensible abstract model [1]. The model is organized<br />

hierarchic<strong>al</strong>ly, beginning with low-level building blocks<br />

which are then used to construct higher-level structures.<br />

For example, low-level objects such as vectors and points<br />

can be combined to create a coordinate system, while at<br />

the highest level the World structure contains the state of<br />

ev ery object in the system. The World structure includes<br />

Lights, Volumes, Views, glob<strong>al</strong> cut planes, and glob<strong>al</strong><br />

shading parameters. Each Volume structure includes color<br />

and texture information, loc<strong>al</strong> shading parameters, loc<strong>al</strong><br />

cut planes, and data which may be either geometric<br />

descriptions, or rectilinear or irregularly gridded data.<br />

The abstract model is flexible in that a structure can<br />

assume one of many representations. For instance, a<br />

segmentation structure can consist of either a threshold or<br />

opacity and color transfer functions. A natur<strong>al</strong><br />

consequence of flexibility is expandability. Since the<br />

objects in the abstract model <strong>al</strong>ready provide for numerous<br />

representations, the addition of a new segmentation type,<br />

shading type, or even data type is fairly simple.<br />

The VolVis system requires only Unix and X/Motif<br />

to run. Unfortunately, only simple two-dimension<strong>al</strong><br />

graphics operations are supported in X. Therefore, <strong>al</strong>l<br />

viewing transformations, shading, and hidden surface<br />

remov<strong>al</strong> must be done in software. This greatly reduces the<br />

rendering speed for the geometry-based projection routines<br />

used in the Navigation section, and therefore <strong>al</strong>so reduces<br />

the over<strong>al</strong>l interactivity of the system. Since many Unix<br />

workstations now include graphics hardware, interactivity<br />

can be maintained by utilizing the graphics language of the<br />

workstation. To avoid rewriting large sections of the code,<br />

we have dev eloped a library of basic graphics functions<br />

that are used throughout the VolVis code. This simplifies<br />

the process of porting the system to a new workstation that<br />

has a different graphics language, since only the graphics<br />

function library must be rewritten.<br />

8. Conclusions<br />

The VolVis system for volume visu<strong>al</strong>ization has been<br />

used for many tasks in diverse applications and situations.<br />

First, VolVis has been used to test new <strong>al</strong>gorithms for<br />

rendering, modeling, animation generation, and computerhuman<br />

interaction. Due to the flexible nature of the<br />

abstract model, testing new ideas within the system is<br />

much easier and less time consuming than writing a new<br />

application for each new <strong>al</strong>gorithm. VolVis has <strong>al</strong>so been<br />

used by scientists and researchers in many different areas.<br />

For example, neurobiologists have used VolVis to navigate<br />

through the complex dendritic paths of nerve cells, which

is extremely useful since the function of nerve cells is<br />

closely tied to their structure (see Figure 4).<br />

VolVis is a rapidly growing system, with new plans<br />

for future development continu<strong>al</strong>ly being considered.<br />

Since the system is currently being used by many research<br />

labs and visu<strong>al</strong>ization developers, feedback from these<br />

sources is used to make future versions of the system<br />

easier to use and extend. To increase portability, auserinterface<br />

library, similar to the graphics function library<br />

described in the previous section, is being developed to<br />

<strong>al</strong>low VolVis to be easily ported to new windowing<br />

systems.<br />

9. Acknowledgements<br />

VolVis development has been supported by the<br />

Nation<strong>al</strong> Science Foundation under grant CCR-9205047,<br />

Department of Energy under the PICS grant, Howard<br />

Hughes Medic<strong>al</strong> Institute, and the Center for<br />

Biotechnology. Data for Figure 4 is courtesy of Howard<br />

Hughes Medic<strong>al</strong> Institute, Stony Brook, NY. Data for<br />

Figure 5 is courtesy of Siemens, Princeton, NJ. Data for<br />

Figure 6 is courtesy of AVS, W<strong>al</strong>tham, MA.<br />

For information on how toobtain the VolVis system,<br />

send e-mail to volvis@cs.sunysb.edu.<br />

References<br />

1. R.S. Avila, L.M. Sobierajski, and A.E. Kaufman,<br />

“Tow ards a Comprehensive Volume Visu<strong>al</strong>ization<br />

System,” Visu<strong>al</strong>ization ’92 Proceedings, pp. 13-20<br />

(October 1992).<br />

2. M. F. Cohen, S. E. Chen, J. R. W<strong>al</strong>lace, and D. P.<br />

Greenberg, “A Progressive Refinement Approach to<br />

Fast Radiosity Image Generation,” Computer<br />

Graphics (Proc. SIGGRAPH) 22(4) pp. 75-84 (July<br />

1988).<br />

3. S. Dunne, S. Napel, and B. Rutt, “Fast Reprojection<br />

of Volume Data,” Proceedings of the 1st Conference<br />

on Visu<strong>al</strong>ization in Biomedic<strong>al</strong> Computing, pp.<br />

11-18 (1990).<br />

4. M. Garrity, “Raytracing Irregular Volume Data,” San<br />

Diego Workshop on Volume Visu<strong>al</strong>ization, Computer<br />

Graphics 24(5) pp. 35-40 (December 1990).<br />

5. P. Hanrahan, D. S<strong>al</strong>zman, and L. Aupperle, “A Rapid<br />

Hierarchic<strong>al</strong> Radiosity Algorithm,” Computer<br />

Graphics (Proc. SIGGRAPH) 25(4) pp. 197-206<br />

(July 1991).<br />

6. T. Heand A. Kaufman, “Virtu<strong>al</strong> Input Devices for<br />

3D Systems,” Visu<strong>al</strong>ization ’93 Proceedings, pp.<br />

142-148 IEEE Computer Society Press, (October<br />

1993).<br />

7. W. Krueger, “The Application of Transport Theory<br />

to Visu<strong>al</strong>ization of 3D Sc<strong>al</strong>ar Data Fields,”<br />

Computers in Physics, pp. 397-406 (July/August<br />

1991).<br />

8. W. E.Lorensen and H. E. Cline, “Marching Cubes:<br />

A High Resolution 3D Surface Construction<br />

Algorithm,” Computer Graphics (Proc. SIGGRAPH)<br />

21(4) pp. 163-169 (July 1987).<br />

9. T. M<strong>al</strong>zbender, “Fourier Volume Rendering,” ACM<br />

Tr ansactions on Graphics 12(3) pp. 233-250 (July<br />

1993).<br />

10. H. E. Rushmeier and K. E. Torrance, “The Zon<strong>al</strong><br />

Method For C<strong>al</strong>culating Light Intensities in the<br />

Presence of a Participating Medium,” Computer<br />

Graphics (Proc. SIGGRAPH) 21(4) pp. 293-306<br />

(July 1987).<br />

11. L.M. Sobierajski and A.E. Kaufman, “Volumetric<br />

Ray Tracing,” 1994 Symposium on Volume<br />

Visu<strong>al</strong>ization, ACM Press, (October 1994).<br />

12. T. Totsuka and M. Levo y, “Frequency Domain<br />

Volume Rendering,” Computer Graphics (Proc.<br />

SIGGRAPH), pp. 271-278 (1993).<br />

13. G. K. W<strong>al</strong>lace, “The JPEG Still Picture Compression<br />

Standard,” Communications of the ACM 34(4) pp.<br />

30-44 (April 1991).<br />

14. S.W. Wang and A.E. Kaufman, “Volume Sampled<br />

Voxelization of Geometric Primitives,” Visu<strong>al</strong>ization<br />

’93 Proceedings, pp. 78-84 IEEE Computer Society<br />

Press, (October 1993).<br />

15. T. Whitted, “An Improved Illumination Model for<br />

Shaded Display,” Communications of the ACM<br />

23(6) pp. 343-349 (June 1980).

Please reference the following QuickTime movies located in the MOV<br />

directory:<br />

MULTI_RO.MOV<br />

HEAD_CUT.MOV<br />

MAX_ROTA.MOV<br />

Copyright © 1994 by the Research Foundation of the State University of<br />

New York at Stony Brook<br />

QuickTime is a trademark of Apple Computer, Inc.

Abstract<br />

Swept surfaces and volumes are generated by moving<br />

a geometric model through space. Swept surfaces<br />

and volumes are important in many computer-aided<br />

design applications including geometric modeling,<br />

numeric<strong>al</strong> cutter path generation, and spati<strong>al</strong> path<br />

planning. In this paper we describe a numeric<strong>al</strong><br />

<strong>al</strong>gorithm to generate swept surfaces and volumes<br />

using implicit modeling techniques. The <strong>al</strong>gorithm is<br />

applicable to any geometric representation for which<br />

a distance function can be computed. The <strong>al</strong>gorithm<br />

<strong>al</strong>so treats degenerate trajectories such as self-intersection<br />

and surface singularity. We show applications<br />

of this <strong>al</strong>gorithm to maintainability design and<br />

robot path planning.<br />

Keywords: Computation<strong>al</strong> geometry, object modeling,<br />

geometric modeling, volume modeling, implicit<br />

modeling, sweeping.<br />

1.0 Introduction<br />

A swept volume is the space occupied by a geometric<br />

model as it travels <strong>al</strong>ong an arbitrary trajectory. A<br />

swept surface is the boundary of the volume. Swept<br />

surfaces and volumes play important roles in many<br />

computer-aided design applications including geometric<br />

modeling, numeric<strong>al</strong> control cutter path generation,<br />

and spati<strong>al</strong> path planning.<br />

In geometric modeling swept curves and surfaces<br />

are used to represent extrusion surfaces and surfaces<br />

of revolution [1][2]. More complex geometry can be<br />

generated by using higher order sweep trajectories<br />

and generating surfaces [3]. In robot motion planning,<br />

the swept volume can be used to ev<strong>al</strong>uate safe<br />

paths [4][5] or establish the footprint of a robot in a<br />

Implicit Modeling of<br />

Swept Surfaces and Volumes<br />

William J. Schroeder<br />

William E. Lorensen<br />

GE Corporate Research & Development<br />

Steve Linthicum<br />

GE Aircraft Engines<br />

workcell. Numeric<strong>al</strong> control path planning uses<br />

swept volumes to show the remov<strong>al</strong> of materi<strong>al</strong> by a<br />

tool [6].<br />

Swept surfaces and volumes can <strong>al</strong>so be applied to<br />

resolve maintainability issues that arise during the<br />

design of complex mechanic<strong>al</strong> systems. The<br />

designer needs to be able to create and visu<strong>al</strong>ize the<br />

accessibility and removability of individu<strong>al</strong> components<br />

of the system. Typic<strong>al</strong> questions related to<br />

maintainability include:<br />

• Can a mechanic remove the spark plugs?<br />

• Is there room for an improved power supply?<br />

• What is the impact on the maintenance of a system<br />

if new components are included?<br />

In maintenance design, the swept surface of the<br />

part to be removed is c<strong>al</strong>led the remov<strong>al</strong> envelope.<br />

The remov<strong>al</strong> envelope is the surface that a component<br />

generates as it moves <strong>al</strong>ong a safe and feasible<br />

remov<strong>al</strong> trajectory. A safe trajectory is one that a<br />

component can follow without touching other components<br />

of the system. A feasible trajectory is one<br />

that can be performed by a human. Lozano-Perez<br />

[7] c<strong>al</strong>ls the c<strong>al</strong>culation of safe trajectories the Findpath<br />

problem. Although this trajectory may be automatic<strong>al</strong>ly<br />

c<strong>al</strong>culated, restrictions on the trajectory’s<br />

degrees of freedom [8], or the geometry of the<br />

obstacles [9] prohibit practic<strong>al</strong> application to re<strong>al</strong>world<br />

mechanic<strong>al</strong> systems. The technique presented<br />

here assumes that a safe and feasible trajectory is<br />

<strong>al</strong>ready available. For our application, we rely on<br />

computer-assisted trajectory generation using commerci<strong>al</strong><br />

computer-aided design [10] or robot simulation<br />

software.<br />

In the next section we review related work on<br />

swept volumes and implicit modeling. Then we<br />

describe the <strong>al</strong>gorithm in detail <strong>al</strong>ong with a discus-

sion of error and time complexity. Examples from<br />

maintainability and robot motion simulation illustrate<br />

the effectiveness of the <strong>al</strong>gorithm in application.<br />

2.0 Background<br />

Literature from two fields: spati<strong>al</strong> path planning and<br />

implicit modeling contribute to swept volume generation.<br />

2.1 Path Planning<br />

Weld and Leu [11] present a topologic<strong>al</strong> treatment of<br />

swept volumes. They show that the representation of<br />

a swept volume in Rn generated from a n-dimension<strong>al</strong><br />

object is reduced to developing a geometric<br />

representation for the swept volume from its (n-1)boundary.<br />

However, they point out that the boundary<br />

and interior of the swept volume are not necessarily<br />

the union of the boundary and interior of the (n-1)boundary.<br />

That is, there may exist points on the<br />

boundary of the swept volume that are interior points<br />

of the (n-1)-boundary of the swept volume. Likewise,<br />

boundary points of the object may contribute to<br />

the interior of the swept volume. This unfortunate<br />

property of swept volumes limits convention<strong>al</strong> precise<br />

geometric modeling to restricted cases. Martin<br />

and Stephenson [12] recognize the importance of<br />

implicit surface models for envelope representation<br />

but seek to provide a closed solution. They present a<br />

theoretic<strong>al</strong> basis for computing swept volumes, but<br />

note that complicated sweeps may take an unre<strong>al</strong>istic<br />

amount of computer time.<br />

Wang and Wang [6] present a numeric<strong>al</strong> solution<br />

that uses a 3D z-buffer to compute a family of critic<strong>al</strong><br />

curves from a moving solid. They restrict the<br />

generating geometry to a convex set, an appropriate<br />

restriction for their numeric<strong>al</strong> control application.<br />

Other numeric<strong>al</strong> techniques include sweeping<br />

octrees[5]. Swept octrees produce very gener<strong>al</strong><br />

results at the cost of the <strong>al</strong>iasing effects due to octree<br />

modeling.<br />

2.2 Implicit Modeling<br />

An implicit model specifies a sc<strong>al</strong>ar field v<strong>al</strong>ue at<br />

each point in space. A variety of field functions are<br />

available depending on the application. Soft objects<br />

created for computer animation [13] use a field that<br />

is unity at a modeling point and drops to zero at a<br />

specified distance from the point. The variation of<br />

the fields is typic<strong>al</strong>ly a cubic polynomi<strong>al</strong>. Usu<strong>al</strong>ly<br />

these fields are represented on a regular sampling<br />

(i.e., volume) as described by Bloomenth<strong>al</strong> [15].<br />

Surface models are extracted using standard iso-surface<br />

techniques such as marching cubes [16]. If the<br />

field v<strong>al</strong>ues are distance functions to the closest point<br />

on the model, offset surfaces can be created by<br />

choosing a non-zero iso-surface v<strong>al</strong>ue [14].<br />

3.0 Algorithm<br />

The go<strong>al</strong> of the <strong>al</strong>gorithm can be described as follows.<br />

Given a geometric model and a trajectory<br />

defined by a sequence of continuous transformations,<br />

generate the swept volume, the volume occupied as<br />

the model travels <strong>al</strong>ong the trajectory, and the swept<br />

surface, the boundary of the swept volume.<br />

The swept surface <strong>al</strong>gorithm is implemented in<br />

three basic steps (Figure 1).<br />

1. Generate an implicit model from the origin<strong>al</strong> geometric<br />

model. We use implicit techniques that<br />

assign a distance v<strong>al</strong>ue from each voxel to the<br />

surface of the object. The geometric model may<br />

be of any representation<strong>al</strong> form as long as a distance<br />

function can be computed for any point.<br />

Common representations include polygon<strong>al</strong><br />

meshes, parametric surfaces, constructive solid<br />

models, or implicit functions.<br />

2. Sweep the implicit model through the workspace.<br />

The workspace is a volume constructed to strictly<br />

bound the model as it travels <strong>al</strong>ong the sweep trajectory.<br />

The sweeping is performed by repeatedly<br />

sampling the implicit model with the workspace<br />

volume as it is transformed <strong>al</strong>ong the sweep trajectory.<br />

The end result is a minimum distance<br />

v<strong>al</strong>ue at each voxel in the workspace volume.<br />

3. Generate the swept surface using the iso-surface<br />

extraction <strong>al</strong>gorithm marching cubes. The v<strong>al</strong>ue d<br />

of the iso-surface is a distance measure. If d = 0 ,<br />

the surface is the swept surface. For d ≠ 0 , a fam-<br />

ily of surfaces offset from the swept volume is<br />

created.<br />

A detailed examination of each of these steps follows.<br />

3.1 Generating the Implicit Model<br />

This step converts the geometric model into a sampled<br />

distance function in a 3D volume of dimension<br />

( n1, n2, n3) . We refer to this representation as the<br />

implicit model VI. Our approach is similar to Bloomenth<strong>al</strong> [15]. Any<br />

n-dimension<strong>al</strong> object in R (we assume here )<br />

can be described by an implicit function<br />

where the function f() defines the distance of point<br />

n<br />

n = 3<br />

f( p)<br />

=<br />

0

a) Generate implicit model<br />

b) Sweep implicit model through<br />

workspace volume<br />

c) Generate swept surface via<br />

iso-surface extraction<br />

Figure 1. Overview of swept surface<br />

generation.<br />

p R to the surface of the object. To develop the<br />

implicit model we compute the function f() in a 3D<br />

volume of dimension . For geometric<br />

models having a closed boundary (i.e., having an<br />

inside and an outside), f() can generate a signed distance;<br />

that is, negative distance v<strong>al</strong>ues are inside the<br />

model and positive v<strong>al</strong>ues are outside of the model.<br />

Geometric representations often consist of combinations<br />

of geometric primitives such as polygons or<br />

splines. In these cases f() must be computed as the<br />

minimum distance v<strong>al</strong>ue as follows. Given the n<br />

primitives defining the n distance<br />

v<strong>al</strong>ues at point p, choose the<br />

minimum v<strong>al</strong>ue.,<br />

3 ∈<br />

( n1, n2, n3) G = ( g1, g2, …, gn) ( d1, d2, …, dn) d = f( p)<br />

= Min ( d1 , d2 , …, dn )<br />

For an implicit model, the minimum is equiv<strong>al</strong>ent to<br />

the union of the sc<strong>al</strong>ar field [15].<br />

The implicit model can be generated for any geometric<br />

representation for which the distance function<br />

f() can be computed. One common representation is<br />

the polygon<strong>al</strong> mesh. Then f(p) is the minimum of the<br />

distances from p to each polygon (Figure 2). For<br />

more complex geometry whose distance function<br />

may be expensive or too complex to compute, the<br />

model can be sampled at many points, and then the<br />

points can be used to generate the distance function.<br />

Figures 6 and 7 illustrate the generation of an<br />

d = Min(d 1 ,d 2 )<br />

d 2<br />

d 1<br />

distance to plane<br />

distance to edge<br />

distance to vertex<br />

Figure 2. Computing distance function f() for<br />

polygon<strong>al</strong> mesh.<br />

implicit model from a polygon<strong>al</strong> mesh. Figure 6<br />

shows the origin<strong>al</strong> mesh consisting of 5,576 polygons.<br />

The implicit model is sampled on a volume V I<br />

at a resolution of 100 3 . An offset surface of the<br />

implicit model is generated using a surface v<strong>al</strong>ue d =<br />

0.25 in Figure 7. In this example a non-negative distance<br />

function has been used to compute the implicit<br />

model. As a result, both an outer and inner surface<br />

are generated. Any closed surface will necessarily<br />

generate two or more surfaces for some v<strong>al</strong>ues of d if<br />

f() is non-negative.<br />

3.2 Computing the Workspace Volume<br />

The workspace volume Vw is generated by sweeping<br />

the implicit model <strong>al</strong>ong the sweep trajectory, and<br />

sampling the transformed implicit model. Vw must<br />

be sized so that the object is strictly bounded<br />

throughout the entire sweep. One simple technique<br />

to size Vw is to sweep the bounding box of the geometric<br />

model <strong>al</strong>ong the sweep trajectory and then<br />

compute a glob<strong>al</strong> bounding box.<br />

The sweep trajectory ST is gener<strong>al</strong>ly specified as a<br />

series of transformations ST = { t1, t2, …, tm} . Arbitrary<br />

transformations are possible, but most applications<br />

define transformations consisting of rigid body<br />

translations and rotations. (The use of non-uniform<br />

sc<strong>al</strong>ing and shearing creates interesting effects.)<br />

The implicit model travels <strong>al</strong>ong the sweep trajectory<br />

in a series of steps, the size of the step dictated<br />

by the <strong>al</strong>lowable error (see Discussion). Since these<br />

transformations { t1, t2, …, tm} may be widely separated,<br />

interpolation is often required for an intermediate<br />

transformation t'.<br />

We recover positions and<br />

orientations from the provided transformations, and<br />

interpolate these recovered v<strong>al</strong>ues.<br />

The sampling of the implicit model is depicted in<br />

Figure 3. The v<strong>al</strong>ues in Vw are initi<strong>al</strong>ized to a large<br />

positive v<strong>al</strong>ue. Then for each sampling step, each<br />

point in Vw is inverse transformed into the coordi

ST<br />

a) Inverse transform V W<br />

nate system of V I. The location of the point within V I<br />

is found and then its distance v<strong>al</strong>ue is computed<br />

using tri-linear interpolation. As in the implicit<br />

model, the v<strong>al</strong>ue of the point in V w is assigned the<br />

minimum distance. The result is the minimum distance<br />

v<strong>al</strong>ue at each point in V w seen throughout the<br />

sweep trajectory.<br />

An <strong>al</strong>ternative workspace volume generation<br />

scheme c<strong>al</strong>culates the distance function f() directly<br />

from the transformed geometric model, eliminating<br />

the need for V I entirely. Although this can be efficient<br />

when f() is inexpensive to compute, we have<br />

found that in our applications the performance of the<br />

<strong>al</strong>gorithm is unsatisfactory. Sampling the implicit<br />

model into the transformed workspace volume<br />

improves the performance of the <strong>al</strong>gorithm significantly,<br />

since the sampling is independent of the number<br />

of geometric primitives in the origin<strong>al</strong> model,<br />

and the cost of tri-linear interpolation is typic<strong>al</strong>ly<br />

much sm<strong>al</strong>ler than the cost of ev<strong>al</strong>uating f().<br />

3.3 Extracting Swept Surfaces<br />

The last step in the <strong>al</strong>gorithm generates the swept<br />

surface from the workspace volume. Since Vw represents<br />

a 3D sampling of distance function, the iso-surface<br />

<strong>al</strong>gorithm marching cubes is used to extract the<br />

swept surface. Choosing d = 0 generates the surface<br />

of the swept volume, while d ≠ 0 generates offset<br />

surfaces. In many applications choosing d > 0 is<br />

desirable to generate surfaces offset from the swept<br />

volume by a certain tolerance.<br />

As with any iso-surface extraction <strong>al</strong>gorithm, the<br />

surfaces often consist of large numbers of triangles.<br />

Hence we often apply a decimation <strong>al</strong>gorithm [17] to<br />

reduce the number of triangles representing the surface.<br />

4.0 Discussion<br />

b) Sample V I<br />

Figure 3. Sampling the implicit volume.<br />

4.1 Degenerate Trajectories<br />

Degenerate trajectories, as described by Martin<br />

and Stephenson [12], are self-intersecting trajecto-<br />

Dimensions<br />

DxDxD<br />

L<br />

Figure 4. Sampling error in 3D volume.<br />

L<br />

L<br />

ries or trajectories that result in surface singularities.<br />

Self-intersection occurs when the generating geometry<br />

intersects itself as it travels <strong>al</strong>ong the sweep trajectory.<br />

Surface singularities occur when nonvolume<br />

filling geometry is created, for example<br />

when a plane travels perpendicular to its norm<strong>al</strong>.<br />

The <strong>al</strong>gorithm presented here correctly treats<br />

degenerate trajectories. Convention<strong>al</strong> an<strong>al</strong>ytic<strong>al</strong><br />

techniques require sophisticated mathematic<strong>al</strong> techniques<br />

that do not yet have gener<strong>al</strong> solutions. Our<br />

<strong>al</strong>gorithm uses simple set operations that are immune<br />

to both types of degeneracies.<br />

4.2 Error An<strong>al</strong>ysis<br />

Due to sampling errors and differences in representation,<br />

the generated swept surface is an approximation<br />

to the actu<strong>al</strong> surface. Sampling errors are introduced<br />

at three points: 1) when creating VI from the geometric<br />

model, 2) when sampling VI into the workspace<br />

volume Vw, and 3) when incrementing the transformation<br />

<strong>al</strong>ong the sweep trajectory ST. Representation<br />

errors are due to the fact that the swept surface is a<br />

polygon<strong>al</strong> mesh, while the origin<strong>al</strong> representation<br />

can be combinations higher-order surfaces or even<br />

implicit functions. Here we address sampling errors<br />

only, since representation<strong>al</strong> errors depend on the particular<br />

geometric representation, which is beyond the<br />

scope of this paper.<br />

The sampling error bounds of the distance function<br />

in a 3D volume is the distance from the corner of a<br />

cube formed from eight neighboring voxels to its<br />

center (Figure 4). Without loss of gener<strong>al</strong>ity we can<br />

assume that the volume size is length L, and that the<br />

volume dimensions are n1 ,n2 ,n3 = D. It follows that<br />

the cube length is then L/D. The maximum sampling<br />

error e at a voxel is then<br />

3<br />

e ------<br />

2<br />

The error introduced by stepping <strong>al</strong>ong ST depends<br />

upon the nature of the transformation. Translations<br />

give rise to uniform error terms, but rotation gener-<br />

L<br />

≤<br />

⎛<br />

⎝<br />

---<br />

⎞<br />

D ⎠<br />

e<br />

L/D

d i<br />

t i<br />

Transform<br />

Figure 5. Approximating stepping error.<br />

p<br />

ti + 1<br />

ates variable error depending upon distance from<br />

center of rotation.The stepping error can be estimated<br />

by linearizing the transformation and assuming<br />

that the maximum position<strong>al</strong> change of any point<br />

is Δx (Figure 5.). If the actu<strong>al</strong> distance v<strong>al</strong>ue to some<br />

point p in Vw is given as d , and the distance functions<br />

are di and di + 1 at the points ti and ti + 1 <strong>al</strong>ong<br />

ST, then the maximum error occurs at Δx ⁄ 2 and is<br />

given by e = di– d = di + 1 – d.<br />

Since<br />

2<br />

d d<br />

⎛Δx i -----<br />

⎞<br />

⎝ , the error is bounded by<br />

2 ⎠<br />

2<br />

= –<br />

The v<strong>al</strong>ue of Δx can be estimated by transforming<br />

the bounding box of the model and computing the<br />

displacement of the extreme points.<br />

These error terms can be combined to provide an<br />

estimate to the tot<strong>al</strong> error:<br />

The terms L I , L W , are the lengths and D I , D W are the<br />

dimensions of the implicit and working volumes,<br />

respectively. These terms arise when creating V I<br />

from the geometric model and when sampling V I<br />

into the workspace volume V w .<br />

4.3 Complexity An<strong>al</strong>ysis<br />

The bulk of computation occurs when sweeping the<br />

implicit model through the workspace volume. Generating<br />

the implicit model and the fin<strong>al</strong> iso-surface<br />

are one-time events at the beginning and end of the<br />

<strong>al</strong>gorithm.<br />

Assuming that f() can be computed in constant<br />

time for any point, the implicit model can be gener-<br />

3<br />

ated in time O〈 DI〉 . If the computation of f() is proportion<strong>al</strong><br />

to the number of geometric primitives np in<br />

3<br />

the model, the time complexity is O〈 npD 〉 . The<br />

3<br />

I<br />

complexity of sweeping is O〈 nsD 〉<br />

where ns is the<br />

W<br />

d<br />

Δx<br />

di + 1<br />

e di d<br />

⎛<br />

i ⎝<br />

-----<br />

⎞<br />

2 ⎠<br />

2 Δx<br />

= – – ≤<br />

⎛<br />

⎝<br />

-----<br />

⎞<br />

2 ⎠<br />

e tot<br />

≈<br />

2 Δx<br />

3<br />

------<br />

2<br />

L ⎛ I<br />

⎝<br />

----- + -------<br />

⎞ Δx<br />

⎠<br />

+ -----<br />

2<br />

D I<br />

L W<br />

D W<br />

number of steps in the sweep. The fin<strong>al</strong> step, iso-surface<br />

extraction, is a function of the size of the work-<br />

3<br />

ing volume O〈 DW〉 .<br />

4.4 Multiple Surface Generation<br />

More that one connected swept surface may be created<br />

for certain combinations of geometry and isosurface<br />

v<strong>al</strong>ue d. As described previously if f( p)<br />

≥ 0<br />

for <strong>al</strong>l p, both an inner an outer surface may be generated.<br />

If the geometric model is non-convex, then<br />

multiple inside and outside surfaces may be created.<br />

There will be at least one connected outer surface,<br />

however, that will bound <strong>al</strong>l other surfaces. In some<br />

applications such as spati<strong>al</strong> planning and maintainability<br />

design this result is acceptable. Other applications<br />

require a single surface.<br />

One remedy that works in many cases is to compute<br />

a signed distance function f() where v<strong>al</strong>ues less<br />

than zero occur inside the object. This approach will<br />

eliminate any inner surfaces when d> 0.<br />

Gener<strong>al</strong>ly<br />

this requires some form of inside/outside test which<br />

may be expensive for some geometric representations.<br />

Another approach to extract the single bounding<br />

surface is to use a modified form of ray casting in<br />

combination with a surface connectivity <strong>al</strong>gorithm.<br />

5.0 Results<br />

Our initi<strong>al</strong> application for swept surfaces was for<br />

maintainability design. In this application the swept<br />

surface is c<strong>al</strong>led a remov<strong>al</strong> envelope. The remov<strong>al</strong><br />

envelope graphic<strong>al</strong>ly describes to other designers the<br />

inviolable space required for part access and<br />

remov<strong>al</strong>. We have since used the swept surfaces to<br />

visu<strong>al</strong>ize robot motion. Three specific examples follow.<br />

The first two examples use a trajectory planned<br />

using the McDonnell Douglas Human Modeling<br />

System.<br />

5.1 Fuel/Oil Heat Exchanger<br />

The part shown in Figure 6 is a fuel/oil heat<br />

exchanger used in an aircraft engine. Maintenance<br />

requirements dictate that it must be able to be<br />

replaced within 30 minutes while the aircraft is at the<br />

gate. The implicit model of the heat exchanger is<br />

shown in Figure 7. Figure 8 shows the resulting<br />

swept surface. Both the implicit model and the workspace<br />

volume were generated at a resolution of 100 3 .<br />

The sweep trajectory contained 270 steps. The swept<br />

surface, generated with an offset of d=0.2 inch, consists<br />

of 15,108 triangles.<br />

Figure 9 shows the remov<strong>al</strong> envelope positioned<br />

within surrounding parts. Of particular interest is the

piping that has been rerouted around the remov<strong>al</strong><br />

envelope. The figure demonstrates the sm<strong>al</strong>l clearances<br />

typic<strong>al</strong> in complex mechanic<strong>al</strong> environments.<br />

Because of tolerances in these systems, we gener<strong>al</strong>ly<br />

choose to create offset swept surfaces. Currently we<br />

use no quantitative method to choose the offset v<strong>al</strong>ue<br />

and rely on design experience.<br />

5.2 Fuel Nozzle<br />

Figure 10 shows another application of swept surfaces<br />

to maintainability design. A proposed design<br />

change to the aircraft engine pre-cooler (shown in<br />

turquoise) impacted the remov<strong>al</strong> of the number 3<br />

fuel nozzle. The remov<strong>al</strong> path consists of many rotations<br />

and is self-intersecting at many points.<br />

The fuel nozzle was modeled using 6,100 polygons.<br />

The implicit model was generated at a volume<br />

resolution 50 3 and the workspace volume at 100 3 . A<br />

tot<strong>al</strong> of 600 steps was taken <strong>al</strong>ong the sweep trajectory.<br />

The offset swept surface of 16,572 triangles<br />

was generated with a v<strong>al</strong>ue d=0.2 inch.<br />

5.3 Robot Motion<br />

Swept surfaces are effective tools for visu<strong>al</strong>izing<br />

complex robot motion. In Figure 11 the swept surfaces<br />

of the end effector, hand, wrist, and arm of the<br />

robot are shown simultaneously. Each robot part was<br />

sampled at 50 3 . The workspace volume was sampled<br />

at 100 3 . The tot<strong>al</strong> number of triangles representing<br />

the four surfaces was 681,800 using a distance v<strong>al</strong>ue<br />

d=1 inch (over a workspace volume size LW = 140<br />

inches.)<br />

6.0 Conclusion<br />

We have demonstrated an <strong>al</strong>gorithm that generates<br />

swept surfaces and volumes from any geometric representation<br />

for which a distance function can be<br />

computed. This includes such common forms as<br />

parametric surfaces, polygon<strong>al</strong> meshes, implicit representations,<br />

and constructive solid models. The<br />

<strong>al</strong>gorithm treats complex trajectories including selfintersection<br />

and surface singularities. We have successfully<br />

applied the <strong>al</strong>gorithm to a variety of complex<br />

applications including maintainability design<br />

and robot spati<strong>al</strong> planning.<br />

Acknowledgments<br />

Steve Rice of McDonnell Douglas assisted in the<br />

extraction of remov<strong>al</strong> paths from the McDonnell<br />

Douglas Human Modeling System.<br />

References<br />

[1] D. F. Rogers and J. A. Adams. Mathematic<strong>al</strong> Elements<br />

for Computer Graphics. McGraw-Hill Publishing<br />

Co., New York. 1990.<br />

[2] M. E. Mortensen. Geometric Modeling. John Wiley<br />

& Sons, New York, 1985.<br />

[3] S. Coquillart. A control-point-based sweeping technique.<br />

IEEE Computer Graphics and Applications<br />

7(11):36-45, November 1987.<br />

[4] T. Lozano-Perez. Spati<strong>al</strong> Planning: A configuration<br />

space approach. IEEE Trans. on Computers C-<br />

32(2):108-120, February 1983.<br />

[5] M. Celenk and W. Sun. 3D visu<strong>al</strong> robot guidance in<br />

dynamic environment. Proceedings of IEEE Int’l<br />

Conference on Systems <strong>Engineering</strong>, pp 507-510,<br />

August 1990.<br />

[6] W. P. Wang and K. K. Wang. Geometric modeling<br />

for swept volume of moving solids. IEEE Computer<br />

Graphics and Applications 6(12):8-17, 1986.<br />

[7] T. Lozano-Perez and M. A. Wesley. An <strong>al</strong>gorithm for<br />

planning collision-free paths among polyhedr<strong>al</strong><br />

objects. Comm. of the ACM 22(10):560-570, October<br />

1979.<br />

[8] J. Lengyel, M. Reichert, B. R. Don<strong>al</strong>d, and D. P.<br />

Greenberg. Re<strong>al</strong>-time robot motion planning using<br />

rasterizing computer graphics hardware. Computer<br />

Graphics 24(4):327-335, August 1990.<br />

[9] R. A. Brooks. Solving the find-path problem by good<br />

representation of free space. IEEE Transactions on<br />

Systems, Man, and Cybernetics, SMC-132(3):190-<br />

197, March/April 1983.<br />

[10] McDonnell Douglas Human Modeling System Reference<br />

Manu<strong>al</strong>. Report MDC 93K0281. McDonnell<br />

Douglas Corporation, Human Factors Technology.<br />

Version 2.1, July 1993.<br />

[11] J. D. Weld and M. C. Leu. Geometric representation<br />

of swept volumes with application to polyhedr<strong>al</strong><br />

objects. Int’l J. of Robotics Research, 9(5):105-117,<br />

October 1990.<br />

[12] R. R. Martin and P. C. Stephenson. Sweeping of<br />

three-dimension<strong>al</strong> objects. Computer-Aided Design<br />

22(4):223-234, May 1990.<br />

[13] B Wyvill, C. McPheeters, G. Wyville. Animating<br />

soft objects. The Visu<strong>al</strong> Computer 2:235-242.<br />

[14] B. A. Payne and A. W. Toga. Distance field manipulation<br />

of surface models. IEEE Computer Graphics<br />

and Applications, 12(1):65-71, January 1993.<br />

[15] J. Bloomenth<strong>al</strong>. Polygonization of implicit surfaces.<br />

Computer Aided Geometric Design, 5(4):341-355,<br />

November 1988.<br />

[16] W. E. Lorensen and H. E. Cline. Marching cubes: a<br />

high resolution 3d surface construction <strong>al</strong>gorithm.<br />

Computer Graphics 21(4):163-169, July 1987.<br />

[17] W. J. Schroeder, J. A. Zarge, and W. E. Lorensen.<br />

Decimation of triangle meshes. Computer Graphics<br />

26(2):65-70, July 1992.

Figure 6. Origin<strong>al</strong> model of fuel/oil heat exchanger. Figure 7. Outer and inner offset surface generated<br />

from implicit model.<br />

Figure 8. Swept surface of heat exchanger.<br />

Figure 10. Fuel nozzle remov<strong>al</strong> envelope in context<br />

with other parts.<br />

Figure 9. Remov<strong>al</strong> envelope (wireframe) in context<br />

with other parts.<br />

Figure 11. Swept surfaces of robot end effector<br />

(brown), hand (blue), wrist (yellow), and<br />

arm (orange).

Visu<strong>al</strong>izing Polycryst<strong>al</strong>line Orientation Microstructures with Spheric<strong>al</strong> Color Maps<br />

Boris Yamrom * , John A. Sutliff * , Andrew P. Woodfield †<br />

* GE Corporate Research and Development, 1 River Road, Schenectady, New York, 12345<br />

† GE Aircraft Engine, One Neumann Way, Cincinnati, Ohio, 45215<br />

Abstract<br />

Spheric<strong>al</strong> color maps can be an effective tool in the<br />

microstructure visu<strong>al</strong>ization of polycryst<strong>al</strong>s. Electron<br />

backscatter diffraction pattern an<strong>al</strong>ysis provides large<br />

arrays of the orientation data that can be visu<strong>al</strong>ized easily<br />

using the technique described in this paper. A combination<br />

of this technique with the tradition<strong>al</strong> black and white<br />

scanning electron microscopy imaging will enable scientists<br />

to better understand the correlation between materi<strong>al</strong><br />

properties and their polycryst<strong>al</strong>line structure.<br />

I. Introduction<br />

Materi<strong>al</strong> scientists possess a large arsen<strong>al</strong> of tools for<br />

the exploration of physic<strong>al</strong> and chemic<strong>al</strong> properties of<br />

materi<strong>al</strong>s. Many of these tools directly address human<br />

abilities to process visu<strong>al</strong> information. Others generate<br />

data sets that can be an<strong>al</strong>yzed employing speci<strong>al</strong>-purpose<br />

computer programs designed to extract meaningful and<br />

useful information. Met<strong>al</strong>lurgists and geologists often<br />

study polycryst<strong>al</strong>line materi<strong>al</strong>s, that is materi<strong>al</strong>s composed<br />

of many sm<strong>al</strong>l grains of cryst<strong>al</strong>s. Physic<strong>al</strong> properties<br />

of these materi<strong>al</strong>s (strength, elasticity, etc.) may be<br />

strongly influenced by the orientation of these grains, <strong>al</strong>so<br />

c<strong>al</strong>led cryst<strong>al</strong>lographic textures. These textures are the<br />

subject of numerous investigations [9].<br />

Typic<strong>al</strong> scanning electron microscope images can<br />

show boundaries between cryst<strong>al</strong> grains and can reve<strong>al</strong><br />

composition<strong>al</strong> differences between grains of different<br />

components c<strong>al</strong>led phases. In most cases, however, they<br />

will not show particular orientation of individu<strong>al</strong> grains<br />

and, therefore, will not tell if sever<strong>al</strong> grains define a<br />

domain of similar orientation.<br />

To address the problem of imaging orientation-based<br />

features in microstructures, a relatively new method of<br />

electron backscatter diffraction pattern an<strong>al</strong>ysis(EBSP) is<br />

used [10]. The diffraction pattern an<strong>al</strong>ysis by itself is not<br />

new, but speci<strong>al</strong> enhancements (automation) in the diffraction<br />

pattern collection combined with the computeraided<br />

processing enables generation of up to 1800 sample<br />

orientations per hour [10](in 1988 it was possible to<br />

obtain only 120 measurements per hour, [2]).<br />

Orientation of the cryst<strong>al</strong>s in the sample is usu<strong>al</strong>ly<br />

defined with Euler angles α, β, and γ, that represent three<br />

consecutive rotations of the coordinate system associated<br />

with the cryst<strong>al</strong> to <strong>al</strong>ign it with the sample coordinate system<br />

[9]. The first rotation is about the cryst<strong>al</strong>’s z' axis (we<br />

denote the sample coordinate system axes with x, y, z, and<br />

the cryst<strong>al</strong> coordinate axes with x', y' , and z' ), the second<br />

rotation is about the cryst<strong>al</strong>’s x' axis, and the third rota-<br />

tion is again about the z' axis. All rotations are made<br />

counterclockwise. Euler angles α, β, and γ satisfy the following<br />

constraints:<br />

0 ≤ α < 2π,<br />

0 ≤ β < π, 0 ≤ γ < 2π .<br />

There are variations in the Euler angles definition:<br />

some authors use the y' axis instead of the x' axis for the<br />

second rotation, angles boundaries may be shifted too, but<br />

these are of no concern to us here. The data collected is<br />

represented by the file of records<br />

α β γ x y,<br />

where α, β, and γ are Euler angles, and x, y represent two<br />

Cartesian coordinates of a measured point relative to<br />

some sample reference point. In the case of materi<strong>al</strong>s containing<br />

multiple components the above record can be<br />

expanded to contain the type of phase at a particular sample<br />

location. Sample points coordinates x, y may belong<br />

to a regular grid or be random.<br />

A few visu<strong>al</strong>ization techniques exist for orientation<br />

data. The most popular technique is the pole figure. A particular<br />

direction is selected in a cryst<strong>al</strong> coordinate system<br />

( z' axis, for example) and for <strong>al</strong>l points ( x, y)<br />

in a sample,<br />

the selected direction is mapped to a unit sphere<br />

(where a ray of this direction from the origin intersects the

sphere) and then projected onto the xy plane with one of<br />

the two widely used projection techniques: stereographic<br />

or equ<strong>al</strong>-area projection [9]. Thus orientation distribution<br />

of a sample is represented as a set of points in the disk. We<br />

get more information about the materi<strong>al</strong> if we plot pole<br />

figures for <strong>al</strong>l cryst<strong>al</strong> major axes x', y' , and z' . Another<br />

way to visu<strong>al</strong>ize orientation distribution is to display a set<br />

of points representing Euler angle triplets in the Euler<br />

angle volume of 3D space.<br />

Though both techniques are widely used, their limitations<br />

are well recognized. One of the limitations relates to<br />

the fact that these are statistic<strong>al</strong> visu<strong>al</strong>izations, that is we<br />

plot points in the function v<strong>al</strong>ue domain (α, β, γ) and lose<br />

<strong>al</strong>l information about spati<strong>al</strong> distribution of orientations<br />

(in x, y domain). Other limitation relates to distortion<br />

introduced by the curved character of Euler angle space.<br />

Recently some authors addressed the limitation of<br />

Euler space mapping[6]. Other researchers recognize that<br />

orientation, being multivariate, can be represented by<br />

color or black and white texture [7]. However, <strong>al</strong>l attempts<br />

so far were not satisfactory. Either these mappings require<br />

stereo displays [6], or the mappings were non-consistent<br />

and not easy to use. Gener<strong>al</strong> dissatisfaction with the existing<br />

color maps for visu<strong>al</strong>izing orientations is expressed in<br />

the following quotation taken from [10]:<br />

“However, there are two problems which can<br />

arise from color visu<strong>al</strong>izations of microstructure.<br />

First, inherent to any color representation is the<br />

danger of physiologic<strong>al</strong> responses to particular<br />

colors, biasing the interpretation. Second, for<br />

most parametrizations of orientation space, it is<br />

difficult to find a color mapping which insures<br />

that grains of similar orientation are assigned<br />

similar colors.”<br />

We try to address both of these concerns in our paper.<br />

The first concern is addressed by using multiple color<br />

maps instead of one, thus avoiding bias caused by specific<br />

physiologic<strong>al</strong> responses to a particular color or group of<br />

colors. The second concern is the major stimulus to our<br />

investigation. We present a set of maps that is free of these<br />

problems and that can be successfully used for producing<br />

orientation images of polycryst<strong>al</strong>line microstructures. As<br />

was indicated in [1] no single color map of orientation<br />

space can be fully satisfactory, but their combination may<br />

be. We limit the scope of this investigation by an issue of<br />

color coding leaving out the geometry coding and other<br />

deciphering and interpreting techniques [8]. Our experiments<br />

show that those techniques may be very useful for<br />

sm<strong>al</strong>l arrays of data, but are substanti<strong>al</strong>ly outperformed by<br />

color coding in a case of very large data sets.<br />

First, we observe that in many practic<strong>al</strong> situations the<br />

scientist is interested in the x'y' plane orientation of the<br />

cryst<strong>al</strong> only and is not interested in the rotation of the<br />

cryst<strong>al</strong> about the axis norm<strong>al</strong> to its x'y' plane. This is typic<strong>al</strong><br />

when we are interested in the strength of materi<strong>al</strong> and<br />

we know that a cryst<strong>al</strong> can be more easily split <strong>al</strong>ong the<br />

x'y' plane than <strong>al</strong>ong any other plane. Other planes of<br />

interest can be an<strong>al</strong>yzed similarly simply by changing the<br />

initi<strong>al</strong> frame of reference. Orientation of the plane is<br />

uniquely specified by the direction of its norm<strong>al</strong> vector,<br />

i.e., z' axis for the x'y' plane. To simplify the exposition,<br />

we assume here that the cryst<strong>al</strong> axes are orthogon<strong>al</strong>, but<br />

fin<strong>al</strong> results still hold for arbitrary cryst<strong>al</strong>s.<br />

The direction of the norm<strong>al</strong> vector <strong>al</strong>ong the z' axis<br />

can be uniquely represented by a point on a unit sphere.<br />

Moreover, we should identify as equ<strong>al</strong> the opposite points<br />

on a sphere, since they correspond to the same orientation<br />

of the x'y' plane relative to the sample coordinate system.<br />

Therefore, the limited orientation space we are de<strong>al</strong>ing<br />

with is represented by a unit sphere in 3D space with<br />

opposite points being identic<strong>al</strong>. This is a so c<strong>al</strong>led two<br />

dimension<strong>al</strong> projective plane. The arbitrary orientation,<br />

however would require a unit sphere in 4D space (with the<br />

same property of identity of the opposite points), or projective<br />

space of three dimensions.<br />

Now we can formulate the problem to be solved in<br />

exact terms. We would like to create coloring of a sphere<br />

that satisfies the following conditions:<br />

(a) every point on a sphere is assigned a color;<br />

(b) opposite points get the same color;<br />

(c) different points get different colors;<br />

(d) similar (close) points get similar colors.<br />

Since we can represent color in RGB system with<br />

three parameters [5], color gamut is a 3D topologic<strong>al</strong><br />

region. If we treat conditions (a)-(d) liter<strong>al</strong>ly, we would<br />

need an imbedding of projective plane (topologic<strong>al</strong>ly<br />

equiv<strong>al</strong>ent to the Klein bottle) into 3D space that we know<br />

is impossible [3]. Luckily, we do not treat conditions (a)-<br />

(d) to the letter. In re<strong>al</strong>ity, even if we could create a map<br />

satisfying (a)-(d), it would not be very useful. If we <strong>al</strong>low<br />

for every point on a sphere to have a unique color and use<br />

this color map to color the orientation corresponding to<br />

each sample point x, y , we get a picture that will contain<br />

too much information to comprehend. The segmentation<br />

of the image that is easily done with pre-attentive vision in<br />

the case of limited number of colors becomes more difficult<br />

or impossible to do when the amount of colors grows<br />

dramatic<strong>al</strong>ly. Therefore, we change the condition (a) to be<br />

( a' ) the sphere is subdivided into a finite number of<br />

regions, possibly of similar area, each region is<br />

assigned a color;<br />

and we require that (b)-(d) is applied to these regions<br />

instead of points. We c<strong>al</strong>l these new conditions ( a' )-( d'<br />

).

In the next section we construct maps that satisfy<br />

these conditions. Then we discuss how the mapping of<br />

orientation data into color space is implemented. At the<br />

end we summarize and point out new directions of<br />

research.<br />

2. Spheric<strong>al</strong> Color Maps<br />

Since the ide<strong>al</strong> subdivision of a sphere into subregions<br />

should possess many symmetries, it is natur<strong>al</strong> that<br />

we turn our attention to the subdivision induced by regular<br />

polytopes inscribed into a sphere. Among <strong>al</strong>l regular polytopes<br />

the icosahedron has the maximum number of faces -<br />

20. Each face of an icosahedron is a regular triangle and<br />

<strong>al</strong>l points opposite to ones in a face represent one of the<br />

other faces of the icosahedron. We have the same property<br />

satisfied by cube, octahedron, and dodecahedron. Thus <strong>al</strong>l<br />

regular polytopes except tetrahedron can be used for orientation<br />

color maps (compare with[4]). We present here a<br />

detailed description of the design of color maps based on<br />

icosahedron and on octahedron geometries.<br />

Coloring a cube satisfying ( a' )-( d' ) is easy, one just<br />

has to assign primary colors red, green, and blue to pairs<br />

of opposite faces. With the icosahedron it is not so easy<br />

and the existence of appropriate coloring may be viewed<br />

as some kind of magic. Indeed, let us consider one triangle<br />

face of the icosahedron and look at its adjacent faces.<br />

.<br />

Figure 1. Three adjacent faces of an icosahedron<br />

Let the centr<strong>al</strong> triangle in Figure 1 be colored in red,<br />

then we choose adjacent faces colors to contain equ<strong>al</strong> red<br />

components but mixed with other primaries. One face will<br />

become yellow and another will get magenta. Since there<br />

is no fourth primary color, we mix red with white to color<br />

the third adjacent triangle. If we assign two other primary<br />

colors to other faces and repeat this construction, then,<br />

with the re<strong>al</strong>ization that each face color will be repeated<br />

twice in the icosahedron, we get two of each colors on the<br />

surface of icosahedron: red, green, blue, yellow, magenta,<br />

cyan, light red, light green, and light blue. All together<br />

there are 18 faces. Just add two whites and we color <strong>al</strong>l the<br />

faces of the icosahedron. Question: can this be done in a<br />

consistent way that is exemplified in Figure 1? Yes, this is<br />

indeed possible and demonstrated in Figure 2, where an<br />

icosahedron is shown from two opposite points of view so<br />

<strong>al</strong>l its faces can be observed unobstructed.<br />

Figure 2. Two opposite views of an icosahedron<br />

This coloring is characterized by other symmetries:<br />

every combined color, yellow for example, is surrounded<br />

by two primary colors it is combined with, red and green,<br />

and <strong>al</strong>so by a light blue. White color is surrounded by<br />

three light primaries. All colors specifications can vary<br />

slightly to accommodate for different display devices or<br />

color printer devices.<br />

The created color map satisfies ( a' )-( d' ) conditions<br />

and contains ten colors. This color map is just an example<br />

and a proof of existence by the demonstration. Other coloring<br />

schemes can be designed for an icosahedron that<br />

may be even more natur<strong>al</strong> than this one.<br />

If we want finer resolution of orientation in color<br />

space, we need to subdivide the sphere into more regions.<br />

We can build such subdivision by splitting each triangle<br />

face of an icosahedron into four equ<strong>al</strong> triangles, projecting<br />

three new vertices (edge centers) onto the sphere, and connecting<br />

them in a triangle mesh.<br />

Instead, we start with an octahedron and by a similar<br />

face subdivision we create color maps with 4, 16, 64 and<br />

256 colors. To demonstrate a different approach to color<br />

map design we use the HSV color system [5] and assign to<br />

each triangle facet of the polyhedron the color corresponding<br />

to its geometric center point. To find this color<br />

we first check the sign of z components of the point coordinate<br />

and, if it is negative, we negate <strong>al</strong>l components of<br />

the point. The resulting point in the northern hemisphere<br />

we project onto the xy plane using stereographic or equ<strong>al</strong>area<br />

projection [9]. Then we take the polar coordinate of<br />

the projection point r, ϕ, ( 0 ≤ r ≤ 1,<br />

– π ≤ ϕ < π)<br />

and c<strong>al</strong>culate<br />

h, s, and v by the formulas (C language notation is<br />

used here)

h = (ϕ > 0)? ϕ / π : (ϕ + π) / π,<br />

s = r,<br />

v = (ϕ > 0)? 1 : 0.7,<br />

where h is hue, s is saturation, and v is v<strong>al</strong>ue. The first<br />

expression makes standard hue of the color wheel to be<br />

repeated twice in one full turn around the origin. This is<br />

done to assign equ<strong>al</strong> hue to <strong>al</strong>l points on a meridian. The<br />

second formula makes color different for different points<br />

on a sphere based on their latitude coordinate. Points<br />

closer to the equator get more saturated colors and points<br />

closer to the north pole get color close to white. The last<br />

formula makes a distinction in coloring two symmetric<br />

points, the points with projected coordinates (r, ϕ) and (r,<br />

ϕ + π). These points will have the same hue and saturation<br />

but can be distinguished by the v<strong>al</strong>ue v (as previously,<br />

variations in formulas are possible). The image of 64 colors<br />

map equ<strong>al</strong>-area projection of northern hemisphere is<br />

presented in Figure 3.<br />

Figure 3. The equ<strong>al</strong>-area projection of 64 colors<br />

map of the northern hemisphere<br />

One unavoidable artifact of this color map is the contrast<br />

boundary (more pronounced in the printed image<br />

than on the color monitor) between the light and dark<br />

quarters of the sphere (discontinuity in v<strong>al</strong>ue <strong>al</strong>ong the<br />

equator and zero meridian). The more colors we get in the<br />

color map, the more difficult would be to avoid discontinuity<br />

in mapping a projective plane to the color space.<br />

With this comment in mind it immediately follows from<br />

our construction that the designed color map satisfies con-<br />

ditions ( a' )-( d' ). In cases when the sample orientation<br />

data is limited in its range a simple color map of Figure 4<br />

can be used. In this color map opposite points on the<br />

boundary do not coincide and may have a different color.<br />

Figure 4. A color map with 64 colors<br />

3. Implementation and Examples<br />

Figure 5 presents <strong>al</strong>gorithm of processing orientation<br />

data.<br />

1. Select one of the color maps and the associated polyhedron<br />

described in the previous section. Make the<br />

face indices of polyhedron faces be equ<strong>al</strong> to the color<br />

indices in the color lookup table.<br />

2. Create a rectangle subdivided into squares according<br />

to <strong>al</strong>l x,y sample points. (We assume that a regular<br />

grid is used for simplicity).<br />

3. For each sample point do the following:<br />

3.1 C<strong>al</strong>culate a 3 x 3 orientation matrix based on the<br />

Euler angles of the sample.<br />

3.2 Apply the transformation matrix from the previous<br />

step to the direction vector (0,0,1) (cryst<strong>al</strong>’s z' axes).<br />

3.3 Find the intersection (polyhedron face index)<br />

between the ray from the origin <strong>al</strong>ong the transformed<br />

z'<br />

axes and the polyhedron centered at the origin.<br />

3.4 Use the face index of the intersection point to<br />

color the corresponding square in the rectangle<br />

of step 2.<br />

Figure 5. The conceptu<strong>al</strong> scheme of the color<br />

mapping orientation data<br />

Figures 6-7 represent a sample of data taken with the<br />

step size 1 micron on a 100 x 100 grid. A detail of the<br />

image in Figure 6 is reproduced in Figures 8-9 using the<br />

color map of Figure 4.

Figure 6. 100 x 100 sample of the orientation<br />

data with the step size 1 micron colored with an<br />

icosahedron color map<br />

Figure 7. 100 x 100 sample of orientation data<br />

with the step size 1 micron colored with the 64<br />

colors map of Figure 3<br />

Color can be used <strong>al</strong>so to represent the misorientation<br />

between the adjacent regions (grains) of homogeneous<br />

orientations. This may be done semiautomatic<strong>al</strong>ly by<br />

selecting pairs of adjacent regions and by displaying the<br />

misorientation data and color, but <strong>al</strong>so can be automated<br />

to display the grains adjacency graph with the links colored<br />

according to a selected color map. Misorientation<br />

between the two grains is measured by the sm<strong>al</strong>lest rotation<br />

angle required to <strong>al</strong>ign one grain orientation with<br />

another. The detailed description of the adjacency graph<br />

and its coloring goes beyond the scope of this paper.<br />

4. Summary and Conclusions<br />

We have created a technique for visu<strong>al</strong>izing the orientation<br />

microstructure of polycryst<strong>al</strong>line materi<strong>al</strong>s. The<br />

technique is based on a few key ideas. First, the gener<strong>al</strong><br />

orientation of the cryst<strong>al</strong> grain is reduced to the orientation<br />

of a fixed plane associated with the cryst<strong>al</strong> coordinate<br />

system. Second, the orientation of the plane in 3D space is<br />

mapped to the projective plane re<strong>al</strong>ized in 3D space as a<br />

unit sphere with identified opposite points. Third, the unit<br />

sphere is triangulated in a way compatible with the topology<br />

of projective plane (icosahedron, octahedron and their<br />

subtriangulations suite well). Fourth, each triangle of the<br />

triangulation is assigned a unique color with conditions<br />

( a' )-( d' ). Thus each orientation of the cryst<strong>al</strong> plane gets<br />

its color code.<br />

The color map based on the sphere subdivision<br />

induced by the inscribed icosahedron contains 10 different<br />

colors. For color maps with 64 and 256 colors solid angles<br />

subtended by each region become much sm<strong>al</strong>ler. This<br />

leads to less variations in color transition from region to<br />

region. To satisfy the conditions of color separation and<br />

color similarity, we used <strong>al</strong>l three dimensions of the color<br />

gamut. More research is required to find psychologic<strong>al</strong>ly<br />

the best uniform subdivision of the color space satisfying<br />

conditions ( a' )-( d'<br />

).<br />

The sm<strong>al</strong>l discontinuity in the HSV v<strong>al</strong>ue parameter<br />

<strong>al</strong>ong the zero meridian and the equator psychologic<strong>al</strong>ly is<br />

more visible than the changes in saturation and hue. One<br />

way to preserve the separation of colors is to use colored<br />

texture in two quarters of the sphere instead of reducing<br />

the v<strong>al</strong>ue in the HSV model. In cases when <strong>al</strong>l orientations<br />

vary in some solid angle less than π/2 in diameter the discontinuity<br />

in the v<strong>al</strong>ue parameter can be moved away by<br />

changing the reference point in the northern hemisphere.<br />

By default it is the north pole, but any other point can be<br />

used.<br />

We tried to create isotropic maps and for this reason<br />

avoided a simplistic mapping of longitude and latitude<br />

coordinates on a sphere into hue and saturation. In our<br />

approach the proportion of a color in the image is defined<br />

by the proportion of the corresponding orientation in the<br />

raw data and is not distorted by the nonuniformity of color<br />

representation that would be caused by the longitude/latitude<br />

mapping. On the other hand, simple longitude/latitude<br />

mapping could be much more efficient from the

computation<strong>al</strong> point of view. For some applications anisotropic<br />

maps may suite even better than the ones we have<br />

created. Spheric<strong>al</strong> color maps may be viewed as visu<strong>al</strong> filters<br />

and the search for particular features in the data may<br />

pose specific requirements for the design of these filters.<br />

Figure 8. 32 x 32 detail of orientation data in<br />

Figure 6 colored with the 64 colors map of<br />

Figure 4<br />

Even without optimizations to find out ray-polyhedron<br />

intersection, the processing time of the 10,000 sample<br />

points on a SPARCstation 1+ was a matter of a few<br />

minutes, which is negligibly sm<strong>al</strong>l compared to the time<br />

required to collect the data. Nevertheless, the application<br />

of multiple color maps, the selection of subregions, and<br />

the reprocessing of those regions interactively would<br />

require some optimizations.<br />

We only briefly mentioned the misorientation imaging<br />

and presented some of the possible techniques but<br />

there is much more to be said about it and we hope to do<br />

so in a forthcoming publication. Fin<strong>al</strong>ly, the comparison<br />

of orientation patterns with the SEM images of the same<br />

sample, we believe, will provide many new insights into<br />

the structure of polycryst<strong>al</strong>line materi<strong>al</strong>s.<br />

Figure 9. The same data as in Figure 8, each<br />

square is oriented according to the z'<br />

direction<br />

References<br />

[1] Alpern, B., Carter, L., Grayson, M., Pelkie, C., Orientation<br />

Maps: Techniques for Visu<strong>al</strong>izing Rotations, Proceedings<br />

of Visu<strong>al</strong>ization 93, 1993<br />

[2] Dingley, D.J., On-line microstructure determination<br />

using backscatter Kikuchi diffraction in a scanning electron<br />

microscope, ICOTOM 8, The Met<strong>al</strong>lurgy Society,<br />

1988.<br />

[3] Encyclopaedia of Mathematics, vol. 5, p. 275, Kluwer<br />

Academic Publishers, 1990.<br />

[4] Fekete, G., Rendering and managing spheric<strong>al</strong> data with<br />

Sphere Quadtrees, Proceedings of Visu<strong>al</strong>ization 90, San<br />

Francisco, 1990.<br />

[5] Foley, D.F., van Dam, A., Feiner, S.K., Hughes, J.F.,<br />

Computer Graphics, Addison-Wesley, 1990.<br />

[6] Frank, F.C., Orientation Mapping, Met<strong>al</strong>lurgic<strong>al</strong> Transactions<br />

A, Vol. 19A, March 1988, 403-408.<br />

[7] Randle, V., Microtexture Determination and its Applications,<br />

The Institute of Materi<strong>al</strong>s, 1992.<br />

[8] Visu<strong>al</strong>ization of Multiparameter Images, Panel Session,<br />

Proceedings of Visu<strong>al</strong>ization 90, San Francisco, 1990.<br />

[9] Wenk, H.-R., ed., Preferred Orientation in Deformed<br />

Met<strong>al</strong>s and Rocks: An Introduction to Modern Texture<br />

An<strong>al</strong>ysis, Academic Press, 1985.<br />

[10] Wright, S.I., Adams, B.L., Kunze, K., Application of new<br />

automatic lattice orientation measurement technique to<br />

polycryst<strong>al</strong>line <strong>al</strong>uminum, Materi<strong>al</strong> Science and <strong>Engineering</strong>,<br />

A160 (1993) 229-240.

s��������� e���— ƒ�—��� ��� ��� e�—����� ��<br />

€—�� s�����—� w���� g—��� ‚������<br />

€—���� tF w��—�D h��—������ �� g������� ƒ����<br />

w—��� ‡—����D h��—������ �� €�����<br />

x—����—� g����� ��� ƒ������������ e����—�����<br />

…��������� �� s������� —� …�˜—�—Eg�—��—���D TIVHID …ƒe<br />

e˜���—�<br />

‡� ������� — ��� �������� ��� ��� ����—���—����<br />

—�� —�—����� �� ��� ������� ���� w���� g—��� �����—E<br />

����� ˜—��� �� E�������� —�� E��—���F „�� ���E<br />

� —����—���� �� ������� �� ���� —����� �� ��� —�—�E<br />

���� �� ��� ��—����E���—��—� ˜��—���� �� ��������<br />

�������� —�� ������ —���� �� — ����—� —� ���� ���<br />

������—�����F y�� �������� �� —� ����������� ����<br />

�������� ��������� �� ��� �������F p����D ��� —�E<br />

���—� —����� ��� �� ����—���� ��� ������ �� — �—����<br />

�—�� —� �—����� ������ �� ���—�� —�� �����—������ �����<br />

��� ����� �� ���—�� ��—� �� ���� —�������—��F ƒ����D<br />

����� E��—��� ��� —� �˜�—�� ��—����—���� ��—�����<br />

�� ��—��—� ���������� �� ��� ������D ��� —� ��� ˜����E<br />

—�� ������ —�� �������� —��— �� �������D ��—� ����� ˜�<br />

�� ��� �� �˜�—�� ���������F<br />

I s����������<br />

€—�� s�����—� w���� g—��� @€swgA ‘I“ �� —� ��—�<br />

�����—����—� ������ ˜—��� �� p����—�9� ‘U“ €—��<br />

s�����—� ����—���� ��� �������� �—��E˜��� ��—����<br />

���—��� —� ���� ������—�����F s� €swgD ��� ���E<br />

��—��� �—������ —�� ����� ���� ���˜—˜������� ������E<br />

��� �� ����� ��—���� ���—��—� �����—���� �—����<br />

�� ˜� ����� �� ����� ��� —�� ��� ���������D �F�F ˜�����<br />

—�� —���� — ����F e� ��� ������ �� �����—� �—���E<br />

��� �������D ���� �� �—����� ������—��� —�� �����—���<br />

���� ���� ������ —�� ����� �����—� ��—������� —��<br />

�������F y�� —� ��� ��� ������� ���� ��� ���E<br />

��—����� �� —������ ��������� ��� —� ’h��� — ������<br />

—����˜�� �� — ����� ����—� ����—� ��� ���� — �� —��<br />

–���9 @�—�A ��� ��˜���—��D �� ���� �� ���� �������� ��E<br />

���—�c4D ’s� ��� —����˜—�� ����� ��������D ���� ��—�<br />

�� ����� ���� ������˜�����c4 —�� ’h� ��� �������� ���E<br />

��—�� ���� — ������� �� ��������D �� �� ����� — ��—��<br />

���—�—���� ���� �—��� ��������� —����˜—�� �������<br />

—�� �—���� �� ��� ����—� —��—c4 „� —����� ���<br />

���������D ��� ����—��� ����—����� ��� €swg �������<br />

����� — ��� ��—��—�� ���������F p�� ��—����D p�����<br />

I �������—��� — ����—� ����—���—����F „���� —�� — �����<br />

�� �˜����—����� ��—� �� —� �—�� ������—���� —˜���<br />

��� ����F p����D �� ��� —�� �� �—������ �� ���—������<br />

—� ����—��D ���E���������—� ����—���—����� —�� �� E<br />

���� ���� ������ �� ��� �����—���� ��� �—������ —��<br />

�� QE�F ƒ����D ��� ����—���—���� ����� �� �—���� ���<br />

�—� ��—� ��� �����—����� —�� ����� ���� ����� �������<br />

˜����—�� ���������F e ����� ���� —� ��� ���� ����<br />

����—� ��—� ��� �—�— —�� �����—��� ���� �����D ����<br />

��� ������� �� ��� �—���� ˜�� ������������ ��� ���E<br />

�—����—� ���—��F …���� ����—���—����� ��� —� ��—� ��<br />

p����� ID ��� —� —����� ��� ��������� ����� —˜���D<br />

—� ��—�� ��—���—������F<br />

s� ���� —����� �� ������� — ��� �������� ��� —�E<br />

—������ €swg ������� ˜—��� �� E�������� —�� E<br />

��—���F e���— �������� —�� — �������� ��������<br />

��� �����˜��� ��—�� —�� ��—� ‘QD S“F q���� — �����<br />

��� ƒD ��� —� �� �� — �—���� �� ��—��� ��—� —�����<br />

��� ��������� ������ �� �� @ƒ —����A �� �—��� @���<br />

����� ���� �� ƒA ��—��F e���— ��—��� —�� ˜—��� ��<br />

��� h��—��—� ���—����—���� �� ��� ����� ���F „�� h�E<br />

�—��—� ���—����—���� �—� ˜� �—����—� �� ���� ��—����D<br />

˜�� ��� �� ������ �� ��� h��—��—� ���—����—���� —� —<br />

�������—� ������ �—� ˜� ���� �—����—�F ƒ������—�<br />

�������� —�� ��—��—�� ������ �� —���˜�—� �����E<br />

��� —�� —�� — �����—�D �—����—��—��� �������� �—� ��<br />

�����˜��� ������� �� ��—� �� ����� �� ������� ’˜����E<br />

��� ˜����4 ��� —� ����� —�� ���—�����F y�� —��—�E<br />

�—�� �� ���������� ��� �� ������� �� ����� �� �������—�<br />

�������� �� ��—� ��� �� ������� —� ˜� �����—����� ��<br />

������ ���������—� ��—�� ‘T“F<br />

„�� ����� �� E��—��� �� — ���� ��� �� ������ —��D<br />

�� ��� �—�— ���� ������� ����� ������� ˜����—��<br />

���������D ��� ������ �� ��� ������� ��� ��� �—�<br />

���������F s�����—���� —˜��� ��� �—�� �������� ˜�<br />

�—� �—����� @—� �����—��� ˜� ��� ����� �� p����� IA ��<br />

��� �—�� �� ��� �����F e�� ��� ������ �� ��� ����� ���<br />

—�� ���—��� ���—���F<br />

s� ��� ��������� ������D �� �� �� ��� �����������

p����� IX e ����—� ����—���—���� �������� ��� €—�� s�����—� w���� g—��� �—�—F<br />

—�� ������ ���� �� ���� —�����F s� ƒ����� Q ��<br />

������ ���� �� ��� ���������—���� ������F ƒ����� R<br />

�������� ������� ���� ��� ��—���� �—�— ����F p��—���D<br />

�� ƒ����� S �� ������� ���� �������� ��������F<br />

P h� �������<br />

‡� ������� ��� ˜—�� �� ������� ������ �� �����E<br />

��—�� E�������� —�� ��—��� �� ‚ P F ‚�������� ��<br />

���� ���—���� �������—����� �� ��� ������ ��—� ������<br />

—�� —��� �������F<br />

PFI q����—� €�������<br />

s� ��� ��������� �� ������� �� —����� ��—� �� Q<br />

������ —�� ������—� —�� �� R ������ —�� �����—�F „��<br />

�������� �� ����� �������—�� —��� �� ����� —� �����—�<br />

��������F h������—�� —��� �� ��� �� ��—���D —��<br />

��� ���������—���� —� �—���� ����D ˜�� ��� �� ��E<br />

����� —�� ��—��� �� �� �� ��� ���� ��� ����—� —���<br />

����F<br />

PFP ƒ������� —�� g��������<br />

s� ‚ P �� ������� — ������� �� ˜� ��� ����� ����<br />

�� ��� ˜� ID P �� Q ������F ƒ�� �������� —�� �����<br />

—� �������D ����� —�� ���—�����D �����������F e ��˜���<br />

�� ��� ��� �� ������ „ �� ���� — ������� ' �� ���<br />

—������ �������D — �—� �� 'F e ������� �� ��� ˜� —<br />

������ ��˜��� �� „ �� — ������ �—� �� 'F „��—����� �—��<br />

���� —�� ������ �—��D ����� �—�� ��� ������ �—��F<br />

‡� ������ ��� —�� �� —� ����� ��˜��� �� „ ��� �����<br />

�� �������F<br />

p����� PX e� E������ —�� —� E��—��F<br />

e �������—� ������ g �� — �������� �� ��������

�—�������� ��� ���������X<br />

IF s� ' �� �� gD ���� ����� �—� �� ' �� �� gF<br />

PF „�� ����������� �� 'IY 'P P g �� ������ ����� ��<br />

— �—� �� ˜��� 'I —�� 'PF<br />

s� g �� — �������—� ������D ���� g H g �� — ��˜������<br />

�� �� —��� �—��� �� ��� �������—� ������ ���������F<br />

„�� ��—�� �� — �������—� ������ g �� ��� ����� ��<br />

��� ��� �������� �� gF „�� ��—�� �� g �� ���������<br />

������� —� �g�F p����� P �������—��� — �������—� ������<br />

—�� ��� ��—��F x���� ��—� ��� �������—� ������ ��<br />

��� �����—���� �������D —�� �� �—� ���—�� �����<br />

������ �������F<br />

e ���—����—���� �� — ���� ����� ��� ƒ �� — �������—�<br />

������ g ��� ��—� �—� ������� �� g �� �� ��� ˜�<br />

������ �� ƒ —�� �g� a g���@ƒA �� ��� ����� ���� �� ƒF<br />

PFQ „�� h��—��—� „��—����—����<br />

p�� — ������� ' �� ��� ˜� ��� ����� ��� „ D ��� f '<br />

������ ��� ��—����� ���� ���� ����� ��� ������ �� „<br />

—�� �� ��� ���� ˜����—��D —�� ��� & ' ˜� ��� �—���� ��<br />

f 'F p�� — ������D �� ��� & ' a HF<br />

v�� —˜ ˜� —� ���� �� — ���—����—���� �� ‚ P —�� ���<br />

�—� �� ��� ���—����� —˜ —�� —˜�F i��� —˜ �� ��—���<br />

h��—��—� �� � �� ��� ������ f —˜ @�� �����—������D ��<br />

��� ������ f —˜�AF i���� �� ��� ˜����—�� �� — ���—�E<br />

���—���� —�� —��—�� ��������� �� ˜� ��—��� h��—��—�F<br />

„�� h��—��—� ���—����—���� �� — ���� ����� ��� �� ���<br />

���—����—���� ����� —�� ��� ����� —�� ��—��� h��—��—�F<br />

„�� h��—��—� ���—����—���� �—� �—�� ����������� —��<br />

������ ����������F €���—�—�— —�� ƒ�—��� ‘II“ �����˜�<br />

��� ���—����—���� —�� — ������ ���—��� ��������D ���<br />

†������ ��—��—�D �� ���—��F<br />

PFR e���— g�������� —�� ƒ�—���<br />

p�� — ���—����—���� �� — ���� ����� ��� ƒD �� �—�����<br />

�—� ���� —� ��� �� ��� �����F e� ���� ' �� —��—���<br />

�� f ' ’ ƒ Ta Y —�� ��—��—��� ���������F ‡��� �������<br />

—� ���� �� ��� h��—��—� ���—����—���� �� �� �� ����<br />

�� ������� ��� ������� �� ��� ��� ���—����� ���� —�<br />

���� —������F e� ���� —˜ ���� �� ��� �—� �� ���—�����<br />

—˜ —�� —˜� �� —��—��� �� f —˜ ’ �Y �� Ta YF †������<br />

—�� ���—����� —�� —��—�� ��������� �� ˜� ��—��—���F<br />

q���� ��� h��—��—� ���—����—���� h �� ��� ˜� — E<br />

���� ����� ��� ƒD —� E������ g h �� — ��˜������<br />

����� �—� ������� ' P g �� ������<br />

��—��—��� —�� & '<br />

��� �—� �� —������ ������� �� g<br />

e� E��—�� �� ��� ��—�� �� —� E������F<br />

p����� Q �������—��� —� ��—���� ����� ��� @ a HA<br />

—�� ����� —�������—� E��—���F s� ��� ��—��� —�� ��E<br />

������� �� ������� ����� ��—����� —� ��� ����� ����D<br />

���� ��� ��—��� —�� �� ����� �� ����—���� F<br />

PFS „�� …���� �� h����<br />

e� —�����—�� �������� ��� ����—������ — �—�� �����<br />

��� ƒ �� �� ��—� — ���� �� �—���� ������� —� �—�<br />

����� �� ƒF e� ���� E��—���D �� ����� ���� �� ��� ����<br />

�������� ��� ���� �� �����—� ��� �—�— ˜�� —��� �� �—��<br />

��—����—���� ��—�������F p�����—����D ����� �� — ����<br />

�������� ˜������ —� E�������� —�� ��� ����� �� —<br />

��� �� �����D i����˜������ ‘T“ �����˜�� ���� ��������<br />

�� ���—��D �������� ������—� ��� �������� ˜����—��<br />

������� —�� —��—F „�� ����� �—�� ���� �� p����� R<br />

�������� ���� ��������� �� ��� ��� E������ ������<br />

��� ���—��������� �� ��� �����F p�� ��—����D �����<br />

��—� �� ����� �� —� ���� ˜������ ��� �������D ���� ���<br />

������������ ����� ��������F v�������D �� — ���—����<br />

�� �—�� �� ��� E������ ���� ��� ����� ������������<br />

����� �—�� — ����� �����������F<br />

PFT f���� x��˜���<br />

f���� ���˜��� —�� — ����� ���� —���˜�—� �����E<br />

���F „�� ��� f���� ���˜��D �D �� ��� �—�� �� ��� ���<br />

�������� ����� �� — ��������—� ��—�F w������ ‘IH“<br />

����—��� �� ��� f���� ���˜��� —�� �—�� —����—���<br />

������ �� ���—��F s� ���� —����� �� —�� �—�����—���<br />

���������� �� H —�� IF H �������� — ���� �� ���<br />

���˜�� �� ������� ��������� �� — ��—��F s����E<br />

�—���D I �� — ���� �� ��� ���˜�� �� ����� �� — ��—��<br />

��˜����� �� ‚ P F s� —��� ����� ����� —�� �������<br />

˜����—�� ���������D —� ��� ��� ����� �� p����� TD ����<br />

��������� ���������—���� �� —����� ����� ˜�� ��� �����F<br />

‚—���� ��—� �������� —�� ��� ����—���� �����—�� ��<br />

���������� �� �� I �� �����—�� ��� ��—��� �� �����<br />

�� ‘IH“D ����� ��� ���� —����� �� ������� �� ��� ���<br />

����� ������ �� ’���� ����F4<br />

PFU ƒ���—�����<br />

e ����—���� ������� �� — ������� � X ‚ 3 ‚ ��—�<br />

�—�� — ��—� �—��� �� — �—��� �� �—��� ‚F ‡� ��� ���E<br />

�—���� �������� ��—� �—� �� ��—������� ��� —� ���<br />

�������� —��— —�� ˜����—�� ������ �� g F ‡� —� —���<br />

������ ����—����� ��—������ ��������—� ��—�������<br />

��� —� ��� ���˜�� �� ������� ���������F ƒ���<br />

�—�� ����—����� ���� �—��� ���� g �—����D �� ��<br />

��������� �� �� �� ����—����� ��—� �—� —� �������<br />

����� �� — �—��� ‚F p�� —� ������� �D ��� ‘�“ ���������<br />

��� ��� �IY PY X X X Y �� �� ������F e� ����� ���� ��� ���<br />

‘�“ �� —��� ����� —� — �—��F e ������� ����—���� ���E<br />

���� �� — ������� � X ‘�“ 3 ‚ ��—� �—�� �—� �����

p����� QX e ����� ��� ˜—��� �� ��� ��—�—� ������ �� ��� —��� ����� —� ���� �—����F<br />

� P ‘�“ �� — �—��� �@�A �� �—��� ‚F ‡� ���� ���� ���<br />

—������� ������� �� �� �� ��—� ���� ������F<br />

ƒ���—���� �������� ������� ������—���� —˜��� ���<br />

��� E��—�� �� E������ ������� —� �����F „���<br />

���� ���� —� ��—��� ���� ���—�� ���������� —�� —� ˜�<br />

���� �� ������� ����������� ��—���F<br />

Q s��������—����<br />

QFI q����—� €�������<br />

„�� —��������� �� �����—� �������� �� ��� �����E<br />

��� ������ —������ �� �� ������� ��� �� ������� �� —<br />

������� ����D ������� ��� ���� �� ���� �—�� ����—�<br />

—���F ‡� ����� ���� ��� ���������—���� �� —��� ˜�<br />

���� �� ��� ����—� —���D ˜��� ��� ˜����� ��—�—˜�����<br />

—�� ����—˜�����F „� —����� ���� ��—�D �� ��� ’ƒ����—E<br />

���� �� ƒ��������4 ‘R“D �� ƒ�ƒ ��� �����F ƒ�ƒ �� — ���E<br />

��� ��—� �������� ���������� �� —����� ������� ����� —<br />

�������—�� —�� �—� ���F s� ‚ P D ƒ�ƒ �������� ���<br />

����������F v��� ���� �—��� ����� ����� —��������<br />

—�� —������ ������� ��� ����� ����� �� �� ��� ���� ��<br />

����� �� — ���� ������� ��� ��� ���F s� ���� �—���<br />

���� ������ —� —�������� —�� —������ ������� ���<br />

������ ����� �� ������ — ���� �������˜��� ��� ���<br />

�����F „� ������� — �������—�D ƒ�ƒ �����—��� — ���˜E<br />

—��� ��������� �� �������—� ������˜—���� —�� �—���<br />

�������� ˜—��� �� ��� ���� �˜�—���� ���E�������—��<br />

�—�—F „�� �—� ��—� �������—�� —��� ��� �� ������<br />

���� ��� ���� �� ��� ���������—����F ‡� �����—��<br />

��� ��—��� �� ��� ‘R“ ��� ���—���F<br />

QFP ƒ������� ƒ�������<br />

q���� — �—��� ��� ˜� ��� ����D �� ����� ���E<br />

����� ���� ��� h��—��—� �������—� ������ �� ���<br />

��� E��˜������F „� —������� ����D �� ������<br />

— ��������� 7 ��� �—� ������� —� — ������������ ����F<br />

e ������� ' �� �—�� �� g �� ��� ��������� 7 F s� '<br />

�� ��—��—���D ���� �� �� �� 7 a & 'F y��������D �� '<br />

�� —� —��—��� ����D ����<br />

7 a w���& ( � ( P …�@'Y hA�<br />

����� …�@'Y hA ������� ��� ��� �� �������� ��—� ' ��<br />

��� �—� ��F s� ���� —�� …�@'Y hA ������� ��� ���—�����<br />

��—� ���� ' —������F x���� ��� �� ����� ˜������ & '

p����� RX „�� ����� �� �—���� ����� —�� ��� �—�� ���� ���� ��� E��—�� ������������F<br />

‘<br />

H<br />

@��� �� g A ������—� �����—� ��������<br />

—�� 7F p�� — ������� 'D & ' ���� �� ��� �—���� �� 'D<br />

���—������ �� ������� �� �� ��—��—��� �� —��—���F y�<br />

��� ����� �—��D 7 �� — ��������� ��������� ���� ' ���<br />

˜����� �—�� �� g F<br />

‡� ������� �—����� �—� ������ —�� ���� ' P g —�X<br />

������—� �� ' P f�@g A —�� ' �� ��� — ������ �—�<br />

�����—� �� ' P f�@g A —�� ' �� — ������ �—�<br />

�������� �� ' TP f�@g A<br />

����� f�@g A ������� ��� ��� �� �������� �� ���<br />

˜����—�� �� g F „���� ����� �—��� —����� ���������<br />

�� ����� @�����˜�� �����A ��˜������—�� �� ��� ������—�<br />

‘7Y IAD —�� �� —� �� �� ��� ���������� " —�� " ��<br />

������� ��� ��˜������—��F p����� S �������—��� ��� —<br />

������� �� �—��� �� ˜� 7D " —�� "F „� �—�� �� ����E<br />

���—�� �� ���—� ��� �������� �� ��� ˜����—�� �� h —�<br />

����—� —���D �� ������� �—� ˜����—�� ������� ��<br />

˜� ��� �—� �� — ���—���� ( ����� & ( a IF ‡��� ��—�<br />

��—�� ���� —����D �� �� �� " —�� " ��� �—� ������<br />

—�� ���� �� h �� ˜�X<br />

" a w���& ( � ( P …�@'Y hAY ( ��—��—����<br />

A‘<br />

7<br />

" a w—��& ( � ( P …�@'Y hA�<br />

e� —��—��� ���� H ���—��� �� ����D — ������� '<br />

˜����� �����—� ���� �� ��� ˜����� ��� ������ �—�<br />

A‘<br />

"<br />

p����� SX „�� ���� �� — ������� �� g ��� H ` IF<br />

A‘<br />

"<br />

A<br />

I<br />

�� —������ ������� �� g D —�� ' ˜����� �������� ����<br />

����� ������� ��—� �� �� ��� �—� �� �� h �� �—�� �� g F<br />

QFQ e��������� —�� g���������<br />

„���� —�� �—�� —��������� �� ����� ���� ��� ��E<br />

������ h��—��—� ���—����—�����D ��� ��� ��—���� ‘II“F<br />

y�� ���������—���� ���� ��� �—�������� ��������—�<br />

—�������� ��������� ˜� q��˜—�D u���� —�� ƒ�—��� ��<br />

‘V“F „��� —�������� �—� y@� Q A ����� —�� ���� ��� �<br />

������D ˜�� �������� �� y@� ��� �A ������� ����F ‡�<br />

����� ��� ��—��� �� ‘V“ ��� ���� ���—���F s� ��—���<br />

���������� ��� h��—��—� ���—����—���� �� ��� �������<br />

���� �� ����� �� ����F<br />

„�� ���˜�� �� �������� �� ��� h��—��—� ���—����—E<br />

���� h �� ‚ P —� ˜� ������� �—���� ˜—��� �� i����9�<br />

���—����F v�� p � ˜� ��� ���˜�� �� �E�������� �� hF<br />

s� pH a �D ���� pI Q� 0 T —�� pP P� 0 RF v��<br />

� a pH C pI C pP ��������� ��� ���˜�� �� ��������<br />

�� hD ���� � T� 0 IHF „�� �—����� ���˜�� ��<br />

E��—��� �� ��� ˜� — ����� ��� �� ���—� �� ��� ���˜��<br />

�� ������ �—��� ��� ��—��—��� ��������F „�� �—�E<br />

���� �—��� ��� ���� ���˜�� � ����� ��� �� —�� ���<br />

�������� ���� ��—��—��� —�� �—� ������ �—���D �����E<br />

���� � S� 0 WF g�������� 7D " —�� " ��� �—� ���E<br />

���� —� ˜� —��������� �� ���� ����������—�� �� ���

���˜�� �� ��������D ���� ��� ��������� —���—�����<br />

��� ��� �������� —� ˜� �������� �� ����—� ����F<br />

q���� —� E������ g ���� ��� ����� �—˜���� —�<br />

������—�D �����—� �� ��������D �������� ˜—�� ��—�����<br />

��� —� �������� —��— —�� ˜����—�� ������ �� ���—����E<br />

����—��F „�� —��— �� ��� ��� �� ��� —��— �� �—� ���E<br />

—���� �� g F „�� ˜����—�� ������ �� ��� ��� �� ���<br />

�����—� ���� ������� ���� ���� ��� ��� �� ��� ������—�<br />

���� �������F y�� ���� ������ — ����—���� ��� —�<br />

��� �������� —��— ����—���� ������ ˜� �������� ���<br />

—��— ��� �—� ������ �� ��� E��—�� �—����F h�� E<br />

�—�� —�� i����˜������ ‘P“ �����˜� — ���� � ����<br />

—����—� ��� �������� ��� —��—D ˜����—�� ������D<br />

H —�� I ����—����� ��� — ��—�� �—���� ˜—��� �� ��E<br />

������—� ���������F<br />

ƒ g—��@ƒA ���� @��A<br />

p����� P PSU P<br />

p����� T VHH V<br />

p����� Q VIWQ SV<br />

„—˜�� IX i�—���� �����—� �����—���� �����F<br />

QFR €������—��<br />

„�� �����—����� —����� ��� ˜� ��� ���������—E<br />

���� —� ˜� ��� ���� ��� —��������X ����� ��—� �—��<br />

��—� �����—��� —�� ����� ��—� ��� �—� ���� ��� ��E<br />

���� — ��� �—���F p�� ��� �—����� �—�— ��� �����˜��<br />

����D ��� ���� �� ������ —�� �����—� —� E��—��<br />

����� �� ���� ��—� ��� �����D �� �� ������—�� ��<br />

��������� — ��� ��—���� ����� ��� ��� �����—� ����E<br />

�—���� ����F „—˜�� I ����� ������� ˜—��� �� ���� �� ���<br />

�—�— ���� ���� ��� ��� �������—�����D ��� �����—�����<br />

���� ���� �� —� ƒqs s����� i�—� ������—����F „����<br />

������� �� �� —� ���������—���� ��—� �—� ��� ˜���<br />

����������� ���������F<br />

R ‚������<br />

‡� ������� ��� ��—����� �������—���� ��� ��� ��<br />

E��—��� ��� ����—���—����F s� ��� ��� ��—���� ��<br />

������� — ����� ��� ����� ��� �� ���—���� ��������<br />

— ������� ’���������4D �� ��� ����� �� ������� ���<br />

�—���� �—�� �� — ������ �—�����F<br />

RFI e ’ƒ��������4 i�—����<br />

y�� ��� ��—���� �� ���� — €swg �����—���� ��<br />

— �—��� ������—� �� ����� ������—� ��������D rPD<br />

���� — �—���—��� ���� ��� �—��� ‘IP“F „�� �����—����<br />

�� ��� �� �� — ���—����—� ˜�� ���� ������� ˜����—��<br />

���������F s� ���� �—�����—� �����—����D — ��—�����<br />

�� ���� �� ����� �� p����� TD „a HXSu —�� ��� �—�E<br />

��—��� ���� ��� �—��� �—� IaQ —� �—�� rP �������� —�<br />

— �—��� ���� ��� �—�� ����—� ����—� �������� �����<br />

�—��D ���� ������ ��� ˜���F s� ���� ������ —� �����E<br />

�—�� �������� ��—� —� ˜� —�������� ����� E��—��� ��<br />

������� �� ��� ��� �—���—��� ���� rP ��� �—��� ����—��<br />

��� ���� ��� ����—�D �� ������� �� ����� — ���� ��<br />

�������D ��� �—���� ��������� �� ������� �� �� ����� ��<br />

������F ‡� �˜����� ����—� ������� ���� — �—���—���<br />

���� ������ ��� �—��� ����—�� ��� ���� ��� ��˜���—��<br />

����—�D ���� —� ��� ���� �� ��� ������ ���—���<br />

��� �—����� —���� ˜� �����—���� —�������—� �������<br />

��������� ������ ���� ��� ����� ��� �—������9 ������<br />

������F „� ��—����� ���� —�� ������ ��� �������� ��<br />

—˜���� �� — ������� ��—������� �� ���� ��� ������E<br />

—� �—��� �� ��� ���� ������� �� — ������� ������ ˜� —<br />

�—���—��� ���� ����—� ��� �—���F x��� ��—� — ������<br />

����—� ���� �� ����—� —������ �� — ������� ���� �—�<br />

�� �—� ��� ����—� ��� ���� ��� ��˜���—��F<br />

s� �� ���� ����� ��—� ��� ����—� �� — ����� ��<br />

��� ��������� —� �� ��� ����� ��—� ��� —���� ��<br />

�������� —� ��� ����—� ���—��� �� ��� ����˜�� ���<br />

�—�� �����—� ����—����� —��—������� —� ���� ������<br />

��� ˜��� �—����—�F „�� �—������ �� ��� ����—� ���<br />

�—��� �—� ˜� —˜�� �� ����� ����� ���—� ���� ������ ˜� ��E<br />

—��—����� ����������D —�� ������ ��� �—����—� ������<br />

����� �—� ��� �—�� ˜��� ������ �—������ ��—�˜� ��<br />

��������� �� ��� ����—� ��� �—���D �� ��—� ����—��<br />

������F<br />

v�� x € ������ ��� ���˜�� �� �—������ �� ��� —<br />

�—���—��� ���� ����—� ��� �—���D —���� �� ��������F<br />

„�� ���� ������� �� — ������� �� — ����—� —� ����<br />

˜� ������� —�<br />

a x € @� € 0 � p A a v €<br />

����� � € —�� � p —�� ��� ˜������ �������� ��� �—���E<br />

�� �� ��� ˜��� ��˜���—�� �� — �—���—��� ���� —�� —<br />

��������� ���� ��� �—���D �����������D ˜��� ��—����<br />

�˜�—���� ���� €swgF „�� ���—� ��������� ������ v € D<br />

�������D ���� ��—����� ��� ��˜���� ����������<br />

�� —�� �������� �� ����—�� �� ��� �—���—� ��� �—���D ����<br />

˜� —���—��� ���� E��—��� ˜�—��� — ���������D ��E<br />

��—�—˜�� �—� �� �� �� ��� ���� �� —�� �������� �� ���<br />

����—� �� ������D —�� ��������� ���� ’˜� �—��4 �� ���<br />

����—˜��F<br />

p����������D ��� ������� �� �—������ ��� —��— e<br />

�� — ������� �� ����—� �� ������—�� ˜�—��� �� ��—�<br />

�—��� �� ��� ���� ��� ������������ ������� �� — ˜���<br />

�—���D ���� ����� ���� ˜� — �������� ���—��������<br />

��������� ˜������ ��� ˜��� �������� —�� ��� ����—�<br />

���� �—���� ����—� �������F ƒ����—� �� ��� —�� ��<br />

��� ���� �—���� �—���� ������� �� p����� QD p����� T

p����� TX „�� ����� ��� ������ ������� ˜����� ��� ��� ��� ��—����D —� E��—�� —�� ��� ���� �����F<br />

����—����� ��—� ������� x € ��� e —�� —��—�� �—�� ��<br />

�˜�—��F<br />

Norm<strong>al</strong>ized Signature<br />

1<br />

0.8<br />

0.6<br />

0.4<br />

0.2<br />

Shoreline Topologic<strong>al</strong> Signatures as Function of Rank<br />

Betti_0<br />

Betti_1<br />

Alpha<br />

0<br />

0 500 1000 1500 2000 2500 3000 3500<br />

Rank<br />

p����� UX „�������—� ����—����� ��� ��� ��—����F<br />

p������ U —�� V �������—�� ˜—�� ��������—� —�� ���E<br />

�� ����—����� ��� ��� ��������� ��—����F f���� H @ HA<br />

�� p����� U ���������� �� ��� ���˜�� �� �������<br />

��������� ��� �—� E��—��F f���� I @ IA ����E<br />

������ �� ��� ��� f���� ���˜�� ��� �—� E������F<br />

I �� ������� ��� ���˜�� �� ’�����4 �� �—� ������F<br />

„�� ��—�� �� p����� U —��� ������� — ���� �� ��� ����E<br />

��� ���—���� �� ��� ������—� —����—��� ���� �—�<br />

�—��F „��� �� ��� — ��������—� ����—����D ˜�� �� �� ��E<br />

����� �� �������—�� ��� ��� ������—�� —����—��� ����<br />

�—� �—�� —�� ������˜���� ���� ��� �—��� �� F „���E<br />

—��� ��� ������—�� —�� ��� ������ ������˜����D ���� —��<br />

�� ��� ��� �—�� �� ��� �—���F<br />

s� ���� —���D �—�����—��� ���� ��� ���� �� �����E<br />

����� �� ����� ����—�����D �� �� ���������� �� ����<br />

����—����� —� — ������� �� F p�� ��—����D p����� V<br />

Norm<strong>al</strong>ized Signature<br />

1<br />

0.8<br />

0.6<br />

0.4<br />

0.2<br />

Shoreline Metric Signatures as Function of Alpha<br />

Boundary<br />

Area<br />

0<br />

0 0.5 1 1.5 2 2.5 3 3.5 4 4.5<br />

Alpha<br />

p����� VX w���� ����—����� ��� ��� ��—����F<br />

����� ��� ˜����—�� ������ —�� —��— ����—����� ����E<br />

��� �� ���� �—����F x��� ��� ˜��� ����—����� —��<br />

���—������ —� ���� — ���� �—��� �� D ���������� ��—�<br />

��—��� �� ���� �—��� �—� ˜� �—���—� �� ��� ����� ���F<br />

s�����D ��� ��—��� ��������� �� ��� ��� ���������<br />

�� ���—���� ����� �� p����� TF<br />

RFP e ƒ����� €—����� ‚—���� ‡—��<br />

„�� �—���� �—�� �� — ���� �—����� �� �����—���� ��<br />

— ������ �—����� �� ����� �� — ���D �� �� —� —���<br />

����—���� �� — ����� ����—� —���� —���������F g��E<br />

����� ������ —���� ��� �—�� ��—�� ˜� ��� — �—����<br />

�—����D ����� �� ��� ����� ���� �� p����� QD ���� ��<br />

���� ����� �� ˜� — ��—�—� �˜���‘W“D �F�F ��� ��—�����<br />

����—�� �—��� —� — ���E������� ����� �� ��� ����—�<br />

������ �—��D —�� ��� �—�� ����� �����—� ���—������ ��<br />

��� �—��� —����F p�� — �������� �� �������� �� ��<br />

�� �������� ��� ’����—� ���4 ��� �� ����� �—����� ��D

�F�F ��� ��� —��— �� �—� ����� ����D ˜�� —��� ���<br />

����—�� ��—�� �� ��� ������� —��—D ˜�—��� ˜��� —����<br />

��������� ���—����� ��� ��������� �� ��—� ����—�D<br />

�� —�—��������D ��� � ����� �—�� �� ��� �� ����� �—�E<br />

����F „�� —��— ����� �� ˜� ����� ������—��� ˜�� ���<br />

��—�� �� ���� ��—���� ���������� ˜� �—� �� ����—���—E<br />

����F e���— ��—��� ������� — ������ �� ������ �� ���<br />

����—� —��— —���� ���� ��� ������—��� ��—� ����E<br />

�—���� �� ��� ��—���� ���� ����� ��������� ˜� �—��<br />

�� �����—�� ���� ��� ��� �� �—����� ������—��� �����<br />

�� ��� ����� ���� �� p����� QF<br />

S g��������<br />

‡� �—�� ��������� — ��� �������� ��� ��������<br />

˜��� ��� ��—���—���� —�� ��—����—���� �—���� �� ���<br />

��—�� �� ����� ���� �����—��� ˜� €—�� s�����—� w����<br />

g—���F ‡���� �� ������ �� — �—���� ���� —����E<br />

—���� �� ���� —�����D ��� �������� �—� ˜� —����—E<br />

˜�� �� �—�� ������ ����������D �� �—�����—� �����<br />

����� ����� �� — ���� �� ����—���� —�� ��—���� ���<br />

����� �—����� �� ��� ������ �� ��—��F<br />

e��������������<br />

‡� ����� ���� �� ��—�� €�������� h—��� g�������<br />

��� ��������� ���� �� ��� �����—� ������—���� ��� ����<br />

���� —�� ��� ��������� ��� �—�— ���� ���� �� �����<br />

ID PD Q —�� RF ‡� ����� —��� ���� �� ��—�� ��� E<br />

��—��� ����—�� ����� ��—��� ˜� €�������� r��˜���<br />

i����˜������ ��� —���� —�� �����—������F<br />

‚��������<br />

‘I“ hF wF g������� —�� iF vF €�����D €—��E������—�<br />

�����—���� ��������� ��� ����� ��� R r�F s�X ƒF<br />

g—�—���� —�� eF p—˜����� @���FAD €���������<br />

�� ��� i�˜— g�������� �� w���� g—��� w������<br />

�� „�������—� €�����D IWWHD i„ƒ i������D €��—D<br />

@IWWPAD QSEUIF<br />

‘P“ gF h�� �—�� —�� rF i����˜������F e� �������E<br />

�—� —�������� ��� ˜���� ���˜��� �� �������—� ��E<br />

������F egw W�� e���—� ƒ�������� �� g����E<br />

�—����—� q�������F @IWWQAD PQPEPQWF<br />

‘Q“ rF i����˜������D hF qF u����—���� —�� ‚F ƒ�����F<br />

y� ��� ��—�� �� — ��� �� ������ �� ��� ��—��F siii<br />

„�—��F s�����F „�����F s„EPWD @IWVQAD SSIESSWF<br />

‘R“ rF i����˜������ —�� iF w����F ƒ����—���� ��<br />

ƒ��������X — �������� �� ��� ���� �������E<br />

—�� —��� �� �������� —���������F egw „�—��F<br />

q�—���� WD @IWWHAD TTEIHRF<br />

‘S“ rF i����˜������ —�� iF w����F „����E�����E<br />

����—� —���— ��—���F egw „�—��F q�—���� IQD<br />

@IWWRAD RQEUPF<br />

‘T“ rF i����˜������F „�� ����� �� ˜—��� —�� ��� ��—�<br />

��—��F egw W�� e���—� ƒ�������� �� g����E<br />

�—����—� q�������F @IWWQAD PIVEPQIF<br />

‘U“ ‚F €F p����—�D ƒ�—�����—� w��—���D e������E<br />

‡�����D IWUPF<br />

‘V“ vF tF q��˜—�D hF iF u���� —�� wF ƒ�—���F ‚—�E<br />

������� ��������—� ���������� �� h��—��—�<br />

—�� †������ ��—��—��F €��F IU�� e��F s�����—E<br />

����—� g���F e����—�—D v—��FD €����F IWWHF v�E<br />

���� x���� �� g������� ƒ�FD ƒ�������E†���—�D<br />

RRQD RIRERQIF<br />

‘W“ fF w—����˜���D „�� p�—�—� q������� �� x—����D<br />

‡F rF p����—� —�� g���—��D x�� ‰���D IWUUF<br />

‘IH“ tF ‚F w������F i������� �� e���˜�—� „�������F<br />

e������E‡�����D ‚������ g���D g—�������—D IWVRF<br />

‘II“ pF €F €���—�—�— —�� wF sF ƒ�—���F g����E<br />

�—����—� q������� � —� s����������F ƒ�������E<br />

†���—�D x�� ‰���D IWVSF<br />

‘IP“ wF ‡—���� —�� hF wF g�������D €—�� ������—�<br />

����� —��� �����—����� �� rP ����—��F tF v��<br />

„���F €���F WRD @IWWRAD ITIEIVQF

Piecewise�Linear Surface Approximation From Noisy Scattered<br />

Samples<br />

Michael Marg<strong>al</strong>iot Craig Gotsman<br />

Dept. of Electric<strong>al</strong> <strong>Engineering</strong> Dept. of Computer Science<br />

Technion � Israel Institute of Technology Technion � Israel Institute of Technology<br />

Haifa 32000� Israel Haifa 32000� Israel<br />

Abstract<br />

We consider the problem of approximating a<br />

smooth surface f�x� y�� based on n scattered samples<br />

f�xi� yi� zi�n i�1g where the sample v<strong>al</strong>ues fzig are con�<br />

taminated with noise� zi � f�xi� yi� � �i. We present<br />

an <strong>al</strong>gorithm that generates a PLS �Piecewise Linear<br />

Surface� f 0� de�ned on a triangulation of the sam�<br />

ple locations V � f�xi� yi�n i�1g� approximating f well.<br />

Constructing the PLS involves specifying both the tri�<br />

angulation of V and the v<strong>al</strong>ues of f 0 at the points of<br />

V . We demonstrate that even when the sampling pro�<br />

cess is not noisy� a better approximation for f is ob�<br />

tained using our <strong>al</strong>gorithm� compared to existing meth�<br />

ods. This <strong>al</strong>gorithm is useful for DTM �Digit<strong>al</strong> Ter�<br />

rain Map� manipulation by polygon�based graphics en�<br />

gines for visu<strong>al</strong>ization applications.<br />

1 Introduction<br />

Let f�x� y� be a smooth surface. Assume we are<br />

given n noisy samples f�xi� yi� zi�n i�1g of f at scat�<br />

tered locations V � f�xi� yi� n i�1 g� such that zi �<br />

f�xi� yi���i� where �i are independent identic<strong>al</strong>ly dis�<br />

tributed zero�mean Gaussian random variables with<br />

known variance � 2 . We wish to construct a PLS<br />

�Piecewise Linear Surface�� sometimes c<strong>al</strong>led a TIN<br />

�Triangulated Iregular Network�� f 0 � de�ned on some<br />

triangulation of V . The PLS f 0 should approximate<br />

the origin<strong>al</strong> surface f�x� y� as closely as possible� i.e.<br />

the distance jjf � f 0 jj should be minim<strong>al</strong>� for some<br />

norm jj � jj.<br />

This problem arises in the reconstruction of terrain<br />

surfaces from random DTM�s �Digit<strong>al</strong> Terrain Mod�<br />

els� extracted by automatic methods� such as match�<br />

ing stereo image pairs �see the many articles on this<br />

subject in �1��. These modern methods obtain terrain<br />

elevation samples wherever possible� usu<strong>al</strong>ly at feature<br />

points� resulting in a data set consisting of points at<br />

essenti<strong>al</strong>ly random locations in the plane. This con�<br />

trasts with the tradition<strong>al</strong> manu<strong>al</strong> DTM extraction<br />

procedures� where elevation samples are obtained on<br />

a regular grid� or at signi�cantly correlated locations<br />

in the plane. Both manu<strong>al</strong> and automatic DTM ex�<br />

traction methods are inaccurate� so noise is inevitably<br />

introduced into the elevation samples.<br />

We choose to reconstruct the terrain as a PLS�<br />

namely� a collection of triangles� as these are stan�<br />

dard geometric primitives in modern graphics engine<br />

hardware. Terrain visu<strong>al</strong>ization with texture�mapped<br />

aeri<strong>al</strong> imagery are popular graphics applications in vi�<br />

su<strong>al</strong> simulation environments �2�. Two issues must be<br />

addressed�<br />

� The PLS f 0 is a collection of triangles in 3D space.<br />

The topology of the triangulation is identic<strong>al</strong> to<br />

the topology of the speci�c planar triangulation of<br />

V used. As there are an exponenti<strong>al</strong> �in n� num�<br />

ber of di�erent triangulations of V � each resulting<br />

in a di�erent PLS f 0 � it is not obvious which is<br />

the best for our solution.<br />

� The v<strong>al</strong>ues z 0 i � f0 �xi� yi� at the PLS vertices.<br />

Since the data is noisy anyway� they do not necce�<br />

sarily have to coincide with the sampled zi.<br />

Many researchers have de<strong>al</strong>t with variants of the op�<br />

tim<strong>al</strong> surface triangulation problem in the non�noisy<br />

case �� � 0�. In its most pure form� given an explicit<br />

function f�x� y�� and a tolerance d� approximate f by<br />

a PLS f 0 with a minim<strong>al</strong> number of triangles� such<br />

that the lp distance between f and f 0� de�ned as<br />

jjf � f 0 �Z 1 Z 1<br />

jjp �<br />

0 0 jf�x� y� � f0�x� y�j p �1�p<br />

dxdy<br />

�1�

is no larger than d. Nadler �9� studied the connection<br />

between the the second derivatives of f at a point<br />

and the optim<strong>al</strong> shape of a triangle in that vicinity<br />

with respect to the l2 distance. D�Azevedo �4� used<br />

coordinate transformations to generate optim<strong>al</strong> trian�<br />

gulations with respect to the l1 distance.<br />

In a similar vein� given a dense sample of f at m<br />

locations f�xi� yi� � i � 1� ��� mg� it is sometimes re�<br />

quired to dilute this sample to a sparse set V �some�<br />

times c<strong>al</strong>led decimation� of n points� and approximate<br />

f as a PLS f 0 on some triangulation of V . The lp dis�<br />

tance is now measured relative to the origin<strong>al</strong> sample<br />

set�<br />

jjf � f 0 � mX 1<br />

jjp � jf�xi� yi� � f<br />

m<br />

i�1<br />

0�xi� yi�j p<br />

�1�p<br />

�2�<br />

Schroeder at el. �15� present an <strong>al</strong>gorithm for decimat�<br />

ing a sample set and triangulating the result� while<br />

preserving important geometric features. Quak and<br />

Schumaker �12�� while not specifying how to decimate<br />

the sample set� triangulate the n points to a PLS f 0<br />

achieving a loc<strong>al</strong> minimum of the l2 distance jjf �f 0 jj2.<br />

In both cases mentioned above� the objective is<br />

clear� the PLS f 0 should approximate the explicitly<br />

given f or its dense sample as closely as possible. Our<br />

working point� for which the objective is not as clear�<br />

is to triangulate an <strong>al</strong>ready sparse sample set of lo�<br />

cations V � without removing or adding points. The<br />

problem is ill�posed since� theoretic<strong>al</strong>ly� we have no<br />

reason to prefer one triangulation over another. How�<br />

ever� we try to minimize some �smoothness� measure�<br />

with the hope that since the �true� �but unknown� f<br />

was probably smooth� a smoother PLS has a better<br />

chance of approximating it well. Rippa �14� showed<br />

that the standard Delaunay triangulation ��10�� Chap.<br />

5� of V� which has many nice mathematic<strong>al</strong> proper�<br />

ties� yields suboptim<strong>al</strong> results in many cases and that<br />

long thin triangles �which the Delaunay triangulation<br />

avoids� are sometimes good for linear interpolation�<br />

contrary to common belief. Dyn et <strong>al</strong>. �5� suggested<br />

a method for the iterative improvement of an initi<strong>al</strong><br />

triangulation� using an edge�swapping technique due<br />

to Lawson �7�� minimizing a cost function measuring<br />

the �roughness� of the PLS.<br />

All the works mentioned above �except �12�� de<strong>al</strong><br />

only with the case of accurate �non�noisy� samples.<br />

We extend the procedure of Dyn et. <strong>al</strong> to de<strong>al</strong> with<br />

noisy samples. Addition<strong>al</strong>ly� even for the case of accu�<br />

rate samples� we demonstrate that results superior to<br />

theirs may be achieved by using our <strong>al</strong>gorithm� not<br />

constraining f 0 �xi� yi� � f�xi� yi� enables the <strong>al</strong>go�<br />

rithm to reach a better loc<strong>al</strong> minimum of the cost<br />

function than the one obtained when constraining the<br />

PLS vertices. For a PLS f 0 � de�ne its �cost� C�f 0 � as<br />

C�f 0 � � I�f 0 � � �R�f 0 � �3�<br />

where I�f 0 � measures the inaccuracy of the �t of f 0 to<br />

the sampled data� R�f 0 � measures the �roughness� of<br />

f 0 � and � is a weighting factor. The best PLS is the f 0<br />

minimizing C. This approach is standard for smooth�<br />

ing splines �16�. For example� in the one�dimension<strong>al</strong><br />

case� g 2 C 2 �0� 1�� I is taken to be<br />

I�g� � 1<br />

n<br />

nX<br />

�g�xi� � yi�<br />

i�1<br />

2<br />

and R is Z 1<br />

R�g� �<br />

0 g00�x�2 dx<br />

which is an approximation for the average curvature<br />

of the surface. In the case of a PLS� which is two�<br />

dimension<strong>al</strong> and possesses noncontinuous derivatives�<br />

an expression similar to I is still applicable� but a<br />

discrete an<strong>al</strong>og to R must be found. Once the cost<br />

function is well de�ned� an e�cient procedure to de�<br />

termine the PLS minimizing it must be described.<br />

The rest of this paper is organized as follows� Sec�<br />

tion 2 elaborates on the cost function C� Section 3 de�<br />

scribes the optimization procedure minimizing C and<br />

Section 4 de<strong>al</strong>s with determining the sc<strong>al</strong>ar parameter<br />

� present in C. The results of numeric<strong>al</strong> experiments<br />

are reported in Section 5. In Section 6 we summarize<br />

and conclude.<br />

2 The Cost Function<br />

What type of PLS is considered �good� � In classic<br />

approximation theory� a common answer is� a good<br />

surface is one that passes close to the sampled data<br />

and is smooth �implicitly we assume that the origin<strong>al</strong><br />

sampled function was smooth�. Towards this end� we<br />

de�ne the following �cost� C�f 0 � of a PLS candidate<br />

f 0 . Given the sample set f�xi� yi� zi� n i�1 g<br />

where<br />

C�f 0 � � I�f 0 � � �R�f 0 �<br />

I�f 0 � �<br />

nX<br />

�zi � f<br />

i�1<br />

0�xi� yi��2 measures the in�delity of the PLS �t to the sam�<br />

pled data� and R�f 0 � is a measure of the PLS rough�<br />

ness� de�ned as follows� Let t1 � fp1� p2� p3g and

t2 � fp2� p3� p4g be two triangles of the PLS f 0 � with<br />

common edge p2p3 �see Fig. 1�. Let ni be the vector<br />

norm<strong>al</strong> to ti� i � 1� 2. �and ABN�e� of edge e � p2p3<br />

be the Angle Between the Norm<strong>al</strong>s n1 and n2. Then<br />

R�f 0 � �<br />

X<br />

e2fedges of f 0 g<br />

ABN�e� �4�<br />

ABN�e� may be thought of as an estimate of the dis�<br />

crete curvature of the surface f 0 at that edge. The<br />

relative importance of the two components of the cost<br />

function is controlled by the positive sc<strong>al</strong>ar parameter<br />

�. For � � 0� the in�delity of the PLS f 0 to the sam�<br />

pled data dominates� so any PLS with f 0 �xi� yi� � zi<br />

minimizes C. For very large �� the roughness of the<br />

surface dominates� so any constant�v<strong>al</strong>ued PLS mini�<br />

mizes C.<br />

p1<br />

n1<br />

p2<br />

Figure 1� Two triangles of a PLS and their norm<strong>al</strong>s.<br />

3 The Optimization Algorithm<br />

p3<br />

Our <strong>al</strong>gorithm generates an initi<strong>al</strong> PLS and itera�<br />

tively improves it. The PLS f2 is an improvement of<br />

PLS f1 if C�f2� � C�f1�. The input to the <strong>al</strong>gorithm<br />

is f�xi� yi� zi�n i�1g � the set of data samples� and � �<br />

the smoothing parameter. The output of the <strong>al</strong>go�<br />

rithm is T � a triangulation of V � f�xi� yi�n i�1g� and<br />

f�z 0 i�ni�1g � the v<strong>al</strong>ues of the PLS at the points of V .<br />

An outline of the <strong>al</strong>gorithm is �<br />

Generate an initi<strong>al</strong> PLS.<br />

Repeat<br />

�1� Improve the PLS v<strong>al</strong>ues at points of V<br />

�keeping the triangulation fixed�.<br />

�2� Improve the triangulation of V<br />

�keeping the PLS v<strong>al</strong>ues at V fixed�.<br />

Until �there is no change in the PLS�<br />

The initi<strong>al</strong> PLS f 0 is T � the Delaunay triangulation<br />

of V � and z 0 i � zi� i � 1� ��� n. To improve the PLS<br />

v<strong>al</strong>ues at the set of vertices V � we systematic<strong>al</strong>ly scan<br />

the vertices and set z 0 i to be the z minimizing<br />

h�z� � �zi � z� 2 � �<br />

n2<br />

X<br />

e2Ei<br />

p4<br />

ABN�e� �5�<br />

where Ei�fthe edges of f 0 incident on �xi� yi�g and<br />

f 0 �xi� yi� � zi. Note that the second term of h�z�<br />

implicitly depends on z. The z minimizing the one�<br />

dimension<strong>al</strong> function h�z� may be found by standard<br />

numeric<strong>al</strong> optimization procedures. We used the sim�<br />

ple golden section method ��11�� Chap. 10�. It is easy<br />

to see that assigning this v<strong>al</strong>ue to z 0 i improves the PLS.<br />

To improve the triangulation of V � we use the same<br />

LOP �Lawson Optimization Procedure� used in �5��<br />

for every edge e which is a diagon<strong>al</strong> of a convex quadri�<br />

later<strong>al</strong> of T� replace e by the other diagon<strong>al</strong> of the<br />

quadrilater<strong>al</strong> �replacing the two triangles by two oth�<br />

ers� if this improves the resulting PLS �see Fig. 2�.<br />

It is not obvious that this <strong>al</strong>gorithm converges.<br />

However� we have found in <strong>al</strong>l our experiments that<br />

this is indeed the case� requiring 6 iterations on the<br />

average. We do not know whether the minimum<br />

achieved is glob<strong>al</strong>.<br />

p1<br />

p2<br />

p3<br />

p4<br />

Figure 2� Swapping edges in a convex quadrilater<strong>al</strong>.<br />

4 Determining the �Optim<strong>al</strong>� �<br />

The output of our <strong>al</strong>gorithm obviously depends on<br />

the v<strong>al</strong>ue of � used. A large � causes the surface to be<br />

smooth� while a sm<strong>al</strong>l � forces the f 0 �xi� yi� to be close<br />

to zi� strongly constraining the solution. An impor�<br />

tant practic<strong>al</strong> question is how to determine the opti�<br />

m<strong>al</strong> v<strong>al</strong>ue of � so that the resulting PLS f 0 will indeed<br />

be a good approximation of the origin<strong>al</strong> �unknown�<br />

surface f�x� y�. De�ne<br />

e 2 ��� � 1<br />

n<br />

nX<br />

p1<br />

p2<br />

p3<br />

p4<br />

�zi � z<br />

i�1<br />

0 i����2 � �6�<br />

where z 0 i ��� are the v<strong>al</strong>ues of the PLS f0 �xi� yi� pro�<br />

duced by our <strong>al</strong>gorithm when applied with parameter<br />

�. If z 0 i were indeed the �true� v<strong>al</strong>ues f�xi� yi�� then<br />

e 2 ��� would be a good estimate of the sample error<br />

variance� which we know to be � 2 . The optim<strong>al</strong> �<br />

should then be<br />

�opt � arg min H���� H��� � je 2 ��� � � 2 j � �7�

An approach similar to this was proposed by Reinsch<br />

�13� in the context of C 2 smoothing splines. Finding<br />

this �opt requires a search procedure that applies the<br />

PLS construction <strong>al</strong>gorithm for di�erent v<strong>al</strong>ues of ��<br />

c<strong>al</strong>culates H��� and re�estimates � accordingly.<br />

5 Experiment<strong>al</strong> Results<br />

We tested our <strong>al</strong>gorithm on one set of re<strong>al</strong> DTM<br />

data and samples of two di�erent �synthetic� test<br />

functions f � �0� 1�2 � IR. For the DTM� we started<br />

with a set f�xi� yj� zi�j�g 100<br />

i�j�1<br />

of 100 � 100 data points<br />

on a regular grid in the Dead Sea area �Fig. 3�a��. We<br />

randomly selected 100 points from this set and added<br />

to them Gaussian noise with � � 15m. These 100<br />

samples� and a chosen �� served as input to our <strong>al</strong>go�<br />

rithm� producing a PLS f 0 as output. To estimate the<br />

PLS qu<strong>al</strong>ity we c<strong>al</strong>culated the l1 distance jjf � f 0jj1� as in �2�. The two test functions were taken from �5��<br />

who adopted them from �6� and �8��<br />

F1�x� � 3<br />

4 exp<br />

�<br />

�9x � 2�<br />

� 2 � �9y � 2�2� 4<br />

� 3<br />

4 exp<br />

�<br />

�9x � 1�<br />

� 2 �<br />

9y � 1<br />

�<br />

49 10<br />

� 1<br />

2 exp<br />

�<br />

�9x � 7�<br />

� 2 � �9y � 3�2� 4<br />

� 1<br />

5 exp���9x � 4�2 � �9y � 7�2� where�<br />

F8�x� � tanh��3g�x� y�� � 1<br />

g�x� y� � 0�595576�y � 3�79762� 2 � x � 10<br />

The function F1 is composed of two Gaussian peaks<br />

and a sharp Gaussian dip �Fig. 3�c��. The func�<br />

tion F8 simulates a sharp rise� whose contour lines<br />

are the parabolas g�x� y� � const �Fig. 3�b��. Each of<br />

the functions was sampled on 100 random points dis�<br />

tributed uniformly in �0� 1� 2 and contaminated with<br />

Gaussian noise of variance � 2 . These samples� and a<br />

chosen �� served as input to our <strong>al</strong>gorithm. Again� the<br />

performance of the <strong>al</strong>gorithm was measured by the l1<br />

distance �1�. In practice� this integr<strong>al</strong> was computed<br />

numeric<strong>al</strong>ly by Monte�Carlo integration. Note that<br />

this can be computed only for synthetic<strong>al</strong>ly generated<br />

samples� such as ours� where f is available. To ev<strong>al</strong>�<br />

uate our results� and contrast them with those of �5��<br />

for each input data set we constructed three PLS�s.<br />

The �rst obtained using z 0<br />

i � zi and T � the Delau�<br />

nay triangulation �refered to as the Delaunay PLS�.<br />

The second with z 0<br />

i � zi and T � the triangulation<br />

obtained by applying the LOP procedure on the De�<br />

launay triangulation as suggested in �5� �refered to as<br />

the LOP PLS�. The third is the �n<strong>al</strong> PLS obtained<br />

using our <strong>al</strong>gorithm �refered to as the Optim<strong>al</strong> PLS�.<br />

5.1 Accurate Data<br />

Although our <strong>al</strong>gorithm was designed primarily for<br />

noisy sample sets� we applied it <strong>al</strong>so on relatively ac�<br />

curate �very sm<strong>al</strong>l �� samples of F1 and F8. With this<br />

type of input� the LOP procedure on the Delaunay tri�<br />

angulation seems to <strong>al</strong>ways improve the PLS� so it is<br />

advantageous to swap the steps of our <strong>al</strong>gorithm� such<br />

that the �rst step improves the triangulation� and the<br />

second the PLS v<strong>al</strong>ues at the triangulation vertices.<br />

Fig. 5 demonstrates that when � � 0� <strong>al</strong>though the<br />

LOP PLS reduces the distance by 48� relative to the<br />

Delaunay PLS �as has been shown <strong>al</strong>ready in �5��� <strong>al</strong>�<br />

lowing the sample v<strong>al</strong>ues to move by applying our <strong>al</strong>�<br />

gorithm with a sm<strong>al</strong>l v<strong>al</strong>ue of �� results in a PLS with<br />

distance further improved by another 58� �relative to<br />

the LOP PLS�. This is especi<strong>al</strong>ly true for functions<br />

with a clear prefered direction� such as F8� as the ex�<br />

tra freedom <strong>al</strong>lows the triangulation to <strong>al</strong>ign itself in<br />

this prefered direction. For F1� as demonstrated by<br />

Fig. 7� there is no signi�cant improvement.<br />

5.2 Noisy Data<br />

The main bene�t of our <strong>al</strong>gorithm was in the case<br />

of relatively noisy data �approximately 10� error in<br />

the elevation v<strong>al</strong>ues�. Fig. 4 shows our results on the<br />

DTM data� and Figs. 8 and 6 show our results on F1<br />

and F8. These are for the optim<strong>al</strong> v<strong>al</strong>ues of �� found<br />

experiment<strong>al</strong>ly.<br />

The results of our procedure on the noisy DTM<br />

data were not as good as those obtained for the noisy<br />

synthetic data. This is probably due to the fact that<br />

the origin<strong>al</strong> terrain surface is not very smooth� and<br />

there are no signi�cant prefered directions.<br />

For F1 and F8� the LOP PLS is not an improvement<br />

over the Delaunay PLS �for F1 it is even worse�. In<br />

contrast� the optim<strong>al</strong> PLS produced by our <strong>al</strong>gorithm<br />

reduces the distance relative to the Delaunay PLS by<br />

15� and 23� respectively.<br />

In <strong>al</strong>l cases� the optim<strong>al</strong> v<strong>al</strong>ue of � seems to be a<br />

little sm<strong>al</strong>ler than that predicted by �7�� as was <strong>al</strong>so<br />

observed by Craven �3� in the case of C 2 smoothing<br />

splines.

6 Summary and Conclusions<br />

We have presented an <strong>al</strong>gorithm generating a good<br />

piecewise�linear approximation of a surface over some<br />

triangulation from noisy samples. The <strong>al</strong>gorithm pro�<br />

duces the best results in one of the following cases�<br />

1. The sampled function has a clear prefered direc�<br />

tion �like F8�� It seems that the �exibility in the<br />

PLS v<strong>al</strong>ues at the triangulation vertices enables<br />

the LOP to perform more edge swaps than when<br />

the heights are constrained to �xed v<strong>al</strong>ues. These<br />

addition<strong>al</strong> swaps improve the PLS. This is true<br />

even when there is no noise.<br />

2. The noise is signi�cant� The �rst LOP damages<br />

the PLS qu<strong>al</strong>ity because this procedure is very<br />

sensitive to the sample v<strong>al</strong>ues� which are very in�<br />

accurate. Using our <strong>al</strong>gorithm when �rst adjust�<br />

ing the PLS heights reduces some of the noise�<br />

enabling the LOP to perform better.<br />

There are a few possible variations on our <strong>al</strong>gorithm�<br />

including the type of metric used to measure the dis�<br />

tance� the travers<strong>al</strong> order of the PLS vertices during<br />

the �rst step of the <strong>al</strong>gorithm and the travers<strong>al</strong> order<br />

of PLS convex quadrilater<strong>al</strong>s during the second step of<br />

the <strong>al</strong>gorithm. The exact threshold of � before which<br />

the samples are considered relatively accurate� there�<br />

fore bene�ci<strong>al</strong> to reverse the order of the <strong>al</strong>gorithm<br />

steps� is not yet clear.<br />

Acknowledgments<br />

The second author wishes to thank Nira Dyn and<br />

David Levin for helpful discussions on the subject of<br />

the paper. The DTM data used in our experiments<br />

was produced and kindly made available by John H<strong>al</strong>l<br />

of the Israel Geologic<strong>al</strong> Survey.<br />

References<br />

�1� Speci<strong>al</strong> issue on softcopy photogrammetric work�<br />

stations. Photogrammetric <strong>Engineering</strong> and Re�<br />

mote Sensing� January 1992.<br />

�2� D. Cohen and C. Gotsman. Photore<strong>al</strong>istic terrain<br />

imaging and �ight simulation. IEEE Computer<br />

Graphics and Applications� 14�2��10�12� 1994.<br />

�3� P. Craven and G. Wahba. Smoothing noisy data<br />

with spline functions� Estimating the correct de�<br />

gree of smoothing by the method of gener<strong>al</strong>�<br />

ized cross v<strong>al</strong>idation. Numerische Mathematik�<br />

31�377�403� 1979.<br />

�4� E.F. D�Azevedo. Optim<strong>al</strong> triangular mesh gen�<br />

eration by coordinate transformation. SIAM J.<br />

Sci. Stat. Comput.� 12�4��755�786� 1991.<br />

�5� N. Dyn� D. Levin� and S. Rippa. Data dependent<br />

triangulations for piecewise linear interpolation.<br />

IMA Journ<strong>al</strong> of Numeric<strong>al</strong> An<strong>al</strong>ysis� 10�137�154�<br />

1990.<br />

�6� R. Franke. Scattered data interpolation� Tests<br />

of some methods. Mathematics of Computation�<br />

38�181�200� 1982.<br />

�7� C.L. Lawson. Transforming triangulations. Dis�<br />

crete Math.� 3�365�372� 1972.<br />

�8� T. Lyche and K. Morken. Knot remov<strong>al</strong> for para�<br />

metric B�spline curves and surfaces. Computer<br />

Aided Geometric Design� 4�217�230� 1987.<br />

�9� E. Nadler. Piecewise linear best l2 approximation<br />

on triangulations. In C.K. Chui� L.L. Schumaker�<br />

and J.D. Ward� editors� Approximation Theory<br />

V � pages 499�502. Academic Press� 1986.<br />

�10� F.P. Preparata and M.I. Shamos. Computation<strong>al</strong><br />

Geometry� An Introduction. Springer�Verlag�<br />

1985.<br />

�11� W.H. Press� S.A. Teukolsky� W.T. Vetterling� and<br />

B.P. Flannery. Numeric<strong>al</strong> Recipes in C �Second<br />

Edition�. Cambridge University Press� 1992.<br />

�12� E. Quak and Schumaker L.L. Least squares �t�<br />

ting by linear splines on data dependent triangu�<br />

lations. In P.J. Laurent� A. Le M�ehaut�e� and L.L.<br />

Schumaker� editors� Curves and Surfaces� pages<br />

387�390. Academic Press� 1991.<br />

�13� C. Reinsch. Smoothing by spline functions. Nu�<br />

merische Mathematik� 10�177�183� 1967.<br />

�14� S. Rippa. Long and thin triangles can be good<br />

for linear interpolation. SIAM J. Numer. An<strong>al</strong>.�<br />

29�1��257�270� 1992.<br />

�15� W.J. Schroeder� J.A. Zarge� and W.E. Lorensen.<br />

Decimation of triangle meshes. In Proceedings of<br />

SIGGRAPH�92� pages 65�70. ACM� 1992.<br />

�16� G. Wahba. Spline Models for Observation<strong>al</strong> Data.<br />

Society for Industri<strong>al</strong> and Applied Mathematics�<br />

1990.

y<br />

-400<br />

-450<br />

-500<br />

-550<br />

-600<br />

-650<br />

-700<br />

0<br />

1<br />

0.9<br />

0.8<br />

0.7<br />

0.6<br />

0.5<br />

0.4<br />

0.3<br />

0.2<br />

0.1<br />

0.2<br />

0.4<br />

0.6<br />

x<br />

0.8<br />

1<br />

0<br />

0.2<br />

0.4<br />

y<br />

0.6<br />

0.8<br />

1<br />

2<br />

1.5<br />

1<br />

0.5<br />

0<br />

0<br />

0.2<br />

0.4<br />

0.6<br />

0.8<br />

y<br />

1 1<br />

0.8<br />

0.6<br />

x<br />

0.4<br />

0.2<br />

0<br />

1.2<br />

1<br />

0.8<br />

0.6<br />

0.4<br />

0.2<br />

0<br />

0<br />

0.2<br />

0.4<br />

0.6<br />

0.8<br />

1<br />

�a� �b� �c�<br />

0<br />

0 0.1 0.2 0.3 0.4 0.5<br />

x<br />

0.6 0.7 0.8 0.9 1<br />

-400<br />

-450<br />

-500<br />

-550<br />

-600<br />

-650<br />

-700<br />

0<br />

0.2<br />

0.4<br />

0.6<br />

Figure 3� Test cases� �a� DTM. �b� F8. �c� F1.<br />

y<br />

1<br />

0.9<br />

0.8<br />

0.7<br />

0.6<br />

0.5<br />

0.4<br />

0.3<br />

0.2<br />

0.1<br />

0<br />

0 0.1 0.2 0.3 0.4 0.5<br />

x<br />

0.6 0.7 0.8 0.9 1<br />

y<br />

1<br />

0.9<br />

0.8<br />

0.7<br />

0.6<br />

0.5<br />

0.4<br />

0.3<br />

0.2<br />

0.1<br />

y<br />

1<br />

0.8<br />

x<br />

0.6<br />

0<br />

0 0.1 0.2 0.3 0.4 0.5<br />

x<br />

0.6 0.7 0.8 0.9 1<br />

�a� �c� �e�<br />

x<br />

0.8<br />

1<br />

0<br />

0.2<br />

0.4<br />

y<br />

0.6<br />

0.8<br />

1<br />

-400<br />

-450<br />

-500<br />

-550<br />

-600<br />

-650<br />

-700<br />

0<br />

0.2<br />

0.4<br />

0.6<br />

x<br />

�b� �d� �f�<br />

Figure 4� PLS�s on a 100�point sample of DTM data �Fig. 3�a�� with � � 15m� �a���b� Delaunay PLS �l1 distance<br />

� 13.3�. �c���d� LOP PLS �l1 distance � 14.0�. �e���f� Optim<strong>al</strong> PLS at � � 150 �l1 distance � 12.8�.<br />

0.8<br />

1<br />

0<br />

0.2<br />

0.4<br />

y<br />

0.6<br />

0.8<br />

1<br />

-400<br />

-450<br />

-500<br />

-550<br />

-600<br />

-650<br />

-700<br />

0<br />

0.2<br />

0.4<br />

0.6<br />

x<br />

0.8<br />

0.4<br />

1<br />

0<br />

0.2<br />

0.2<br />

0.4<br />

y<br />

0.6<br />

0<br />

0.8<br />

1

y<br />

2<br />

1.5<br />

1<br />

0.5<br />

0<br />

0.1<br />

0.2<br />

0.3<br />

0.4<br />

0.5<br />

0.6<br />

0.7<br />

0.8<br />

0.9<br />

1<br />

1<br />

0.9<br />

0.8<br />

0.7<br />

0<br />

0<br />

0.2<br />

0.4<br />

0.6<br />

0.8<br />

y<br />

0.6<br />

0.5<br />

x<br />

0.4<br />

0.3<br />

0.2<br />

0.1<br />

0<br />

y<br />

0<br />

0.1<br />

0.2<br />

0.3<br />

0.4<br />

0.5<br />

0.6<br />

0.7<br />

0.8<br />

0.9<br />

1<br />

1<br />

0.9<br />

0.8<br />

0.7<br />

0.6<br />

0.5<br />

x<br />

�a� �c� �e�<br />

1 1<br />

0.8<br />

0.6<br />

x<br />

0.4<br />

0.2<br />

0<br />

2<br />

1.5<br />

1<br />

0.5<br />

0<br />

0<br />

0.2<br />

0.4<br />

0.6<br />

0.8<br />

y<br />

1 1<br />

0.8<br />

0.4<br />

0.3<br />

0.6<br />

x<br />

0.2<br />

0.4<br />

0.1<br />

0.2<br />

0<br />

0<br />

y<br />

2<br />

1.5<br />

1<br />

0.5<br />

0<br />

0.1<br />

0.2<br />

0.3<br />

0.4<br />

0.5<br />

0.6<br />

0.7<br />

0.8<br />

0.9<br />

1<br />

1<br />

0.9<br />

0.8<br />

0.7<br />

0<br />

0<br />

0.2<br />

0.4<br />

0.6<br />

0.8<br />

�b� �d� �f�<br />

Figure 5� PLS�s on a 100�point sample of F8 with � � 0� �a���b� Delaunay PLS �l1 distance � .050�. �c���d� LOP<br />

PLS �l1 distance � .026�. �e���f� Optim<strong>al</strong> PLS at � � �005 �l1 distance � .011�.<br />

y<br />

2<br />

1.5<br />

1<br />

0.5<br />

0<br />

0.1<br />

0.2<br />

0.3<br />

0.4<br />

0.5<br />

0.6<br />

0.7<br />

0.8<br />

0.9<br />

1<br />

1<br />

0.9<br />

0.8<br />

0.7<br />

0<br />

0<br />

0.2<br />

0.4<br />

0.6<br />

0.8<br />

y<br />

0.6<br />

0.5<br />

x<br />

0.4<br />

0.3<br />

0.2<br />

0.1<br />

0<br />

y<br />

0<br />

0.1<br />

0.2<br />

0.3<br />

0.4<br />

0.5<br />

0.6<br />

0.7<br />

0.8<br />

0.9<br />

1<br />

1<br />

0.9<br />

0.8<br />

0.7<br />

0.6<br />

0.5<br />

x<br />

�a� �c� �e�<br />

1 1<br />

0.8<br />

0.6<br />

x<br />

0.4<br />

0.2<br />

0<br />

2<br />

1.5<br />

1<br />

0.5<br />

0<br />

0<br />

0.2<br />

0.4<br />

0.6<br />

0.8<br />

y<br />

1 1<br />

0.8<br />

0.4<br />

0.3<br />

0.6<br />

x<br />

0.2<br />

0.4<br />

0.1<br />

0.2<br />

0<br />

0<br />

y<br />

0<br />

0.1<br />

0.2<br />

0.3<br />

0.4<br />

0.5<br />

0.6<br />

0.7<br />

0.8<br />

0.9<br />

1<br />

1<br />

0.9<br />

0.8<br />

y<br />

0.7<br />

0<br />

0<br />

0.2<br />

0.4<br />

0.6<br />

0.8<br />

�b� �d� �f�<br />

Figure 6� PLS�s on a 100�point sample of F8 with � � �1� �a���b� Delaunay PLS �l1 distance � .098�. �c���d�<br />

LOP PLS �l1 distance � .097�. �e���f� Optim<strong>al</strong> PLS at � � �01 �l1 distance � .075�.<br />

2<br />

1.5<br />

1<br />

0.5<br />

y<br />

0.6<br />

1 1<br />

0.6<br />

1 1<br />

0.5<br />

x<br />

0.5<br />

x<br />

0.8<br />

0.8<br />

0.4<br />

0.4<br />

0.3<br />

0.6<br />

x<br />

0.3<br />

0.6<br />

x<br />

0.2<br />

0.4<br />

0.2<br />

0.4<br />

0.1<br />

0.2<br />

0.1<br />

0.2<br />

0<br />

0<br />

0<br />

0

y<br />

1.2<br />

1<br />

0.8<br />

0.6<br />

0.4<br />

0.2<br />

0<br />

0.1<br />

0.2<br />

0.3<br />

0.4<br />

0.5<br />

0.6<br />

0.7<br />

0.8<br />

0.9<br />

1<br />

1<br />

0.9<br />

0.8<br />

0<br />

0<br />

0.2<br />

0.4<br />

0.6<br />

0.8<br />

1<br />

y<br />

1<br />

0.7<br />

0.6<br />

0.8<br />

0.5<br />

x<br />

0.4<br />

0.3<br />

0.2<br />

0.1<br />

0<br />

y<br />

0<br />

0.1<br />

0.2<br />

0.3<br />

0.4<br />

0.5<br />

0.6<br />

0.7<br />

0.8<br />

0.9<br />

1<br />

1<br />

0.9<br />

0.8<br />

0.7<br />

0.6<br />

0.5<br />

x<br />

�a� �c� �e�<br />

x<br />

0.6<br />

0.4<br />

0.2<br />

0<br />

1.2<br />

1<br />

0.8<br />

0.6<br />

0.4<br />

0.2<br />

0<br />

0<br />

0.2<br />

0.4<br />

0.6<br />

0.8<br />

1<br />

y<br />

1<br />

0.8<br />

x<br />

0.6<br />

0.4<br />

0.3<br />

0.4<br />

0.2<br />

0.2<br />

0.1<br />

0<br />

0<br />

y<br />

0<br />

0.1<br />

0.2<br />

0.3<br />

0.4<br />

0.5<br />

0.6<br />

0.7<br />

0.8<br />

0.9<br />

1<br />

1<br />

0.9<br />

0.8<br />

0<br />

0<br />

0.2<br />

0.4<br />

0.6<br />

0.8<br />

1<br />

�b� �d� �f�<br />

Figure 7� PLS�s on a 100�point sample of F1 with � � 0� �a���b� Delaunay PLS �l1 distance � .019�. �c���d� LOP<br />

PLS �l1 distance � .017�. �e���f� Optim<strong>al</strong> PLS at � � �0001 �l1 distance � .017�.<br />

y<br />

1.2<br />

1<br />

0.8<br />

0.6<br />

0.4<br />

0.2<br />

0<br />

0.1<br />

0.2<br />

0.3<br />

0.4<br />

0.5<br />

0.6<br />

0.7<br />

0.8<br />

0.9<br />

1<br />

1<br />

0.9<br />

0.8<br />

0<br />

0<br />

0.2<br />

0.4<br />

0.6<br />

0.8<br />

1<br />

y<br />

1<br />

0.7<br />

0.6<br />

0.8<br />

0.5<br />

x<br />

0.4<br />

0.3<br />

0.2<br />

0.1<br />

0<br />

y<br />

0<br />

0.1<br />

0.2<br />

0.3<br />

0.4<br />

0.5<br />

0.6<br />

0.7<br />

0.8<br />

0.9<br />

1<br />

1<br />

0.9<br />

0.8<br />

0.7<br />

0.6<br />

0.5<br />

x<br />

�a� �c� �e�<br />

x<br />

0.6<br />

0.4<br />

0.2<br />

0<br />

1.2<br />

1<br />

0.8<br />

0.6<br />

0.4<br />

0.2<br />

0<br />

0<br />

0.2<br />

0.4<br />

0.6<br />

0.8<br />

1<br />

y<br />

1<br />

0.8<br />

x<br />

0.6<br />

0.4<br />

0.3<br />

0.4<br />

0.2<br />

0.2<br />

0.1<br />

0<br />

0<br />

1.2<br />

1<br />

0.8<br />

0.6<br />

0.4<br />

0.2<br />

y<br />

0<br />

0.1<br />

0.2<br />

0.3<br />

0.4<br />

0.5<br />

0.6<br />

0.7<br />

0.8<br />

0.9<br />

1<br />

1<br />

y<br />

0.9<br />

0.8<br />

0<br />

0<br />

0.2<br />

0.4<br />

0.6<br />

0.8<br />

1<br />

�b� �d� �f�<br />

Figure 8� PLS�s on a 100�point sample of F1 with � � �1� �a���b� Delaunay PLS �l1 distance � .065�. �c���d�<br />

LOP PLS �l1 distance � .071�. �e���f� Optim<strong>al</strong> PLS at � � �01 �l1 distance � .055�.<br />

1.2<br />

1<br />

0.8<br />

0.6<br />

0.4<br />

0.2<br />

y<br />

1<br />

1<br />

0.7<br />

0.7<br />

0.6<br />

0.8<br />

0.6<br />

0.8<br />

0.5<br />

x<br />

x<br />

0.5<br />

x<br />

x<br />

0.6<br />

0.6<br />

0.4<br />

0.4<br />

0.3<br />

0.4<br />

0.3<br />

0.4<br />

0.2<br />

0.2<br />

0.2<br />

0.2<br />

0.1<br />

0.1<br />

0<br />

0<br />

0<br />

0

Abstract<br />

This paper presents a technique for performing<br />

volume morphing between two volumetric datasets in the<br />

wavelet domain. The idea is to decompose the volumetric<br />

datasets into a set of frequency bands, apply smooth<br />

interpolation to each band, and reconstruct to form the<br />

morphed model. In addition, a technique for establishing a<br />

suitable correspondence among object voxels is presented.<br />

The combination of these two techniques results in a<br />

smooth transition between the two datasets and produces<br />

morphed volume with fewer high frequency distortions<br />

than those obtained from spati<strong>al</strong> domain volume morphing.<br />

1. Introduction and motivation<br />

Recently, 3D metamorphosis, the process of<br />

simulating the deformation of one 3D model to another,<br />

has gained popularity in animation and shape design.<br />

Previously published techniques [5, 6] de<strong>al</strong> mainly with<br />

the metamorphosis between two polygon<strong>al</strong>-based models.<br />

The gener<strong>al</strong> method of these <strong>al</strong>gorithms is to displace the<br />

vertices, edges, and faces of the first model over time to<br />

coincide in position with the corresponding vertices, edges,<br />

and faces of the second model. However, establishing the<br />

suitable correspondence among surface elements is<br />

complex. In addition, these <strong>al</strong>gorithms gener<strong>al</strong>ly impose<br />

topologic<strong>al</strong> restrictions on the models in order to maintain<br />

the face connectivity during morphing.<br />

Motivated in part by the difficulties presented in<br />

morphing surface-based 3D models and in part by the<br />

desire to morph sampled/simulated datasets directly, the<br />

volume graphics [4] approach represents the 3D models in<br />

voxel space and performs volume morphing between the<br />

two volumetric models. One of the main advantages of this<br />

approach is that the topology restriction on the datasets is<br />

eliminated, since there is no explict topology description of<br />

the volume and the voxel correspondence can be directly<br />

established between any two volumes. However, the<br />

problem of finding the appropriate correspondence among<br />

voxels still exists. One naive solution is simply to crossdissolve<br />

between the two volumes over time. In other<br />

words, to morph from model g(x, y, z) to f (x, y, z), a new<br />

model k t(x, y, z) = (1 − t)g(x, y, z) + tf(x, y, z) isformed.<br />

Wa velet-Based Volume Morphing<br />

Taosong He, Sidney Wang, and Arie Kaufman<br />

Department of Computer Science<br />

State University of New York at Stony Brook<br />

Stony Brook, NY 11794-4400<br />

Although simple, this method is often ineffective for<br />

creating the smooth transition from one model to another.<br />

For example, given two concentric spheres with identic<strong>al</strong><br />

iso-v<strong>al</strong>ues but with different radii, an ide<strong>al</strong> morphing from<br />

the larger sphere to the sm<strong>al</strong>ler one should be a sphere with<br />

constant iso-v<strong>al</strong>ue but a gradu<strong>al</strong>ly shrinking radius. But<br />

the naive technique described above would generate a<br />

sudden shrinkage from the large sphere to the sm<strong>al</strong>l one at<br />

a certain time T when a surface rendering method is<br />

employed. This is because when 0 ≤ t < T , the region<br />

between the two spheres has the density v<strong>al</strong>ue above the<br />

iso-v<strong>al</strong>ue, and at time t = T , the density v<strong>al</strong>ues of the<br />

region uniformly drop below the iso-v<strong>al</strong>ue.<br />

Another problem when performing volume<br />

morphing is that the direct interpolation of the highfrequency<br />

components in the models might cause<br />

distortion and unsatisfactory results. Hughes [3] de<strong>al</strong>s<br />

with this problem by performing volume morphing in the<br />

Fourier domain. Basic<strong>al</strong>ly, his approach takes the first<br />

volumetric model, gradu<strong>al</strong>ly removes the high frequencies,<br />

interpolates over to the low frequencies of the second<br />

model, and then smoothly adds in the high frequencies of<br />

the second model. Although effective in reducing high<br />

frequency distortion, the technique does not solve the<br />

problem of unsmooth transformation of iso-surfaces<br />

because the Fourier transform does not loc<strong>al</strong>ize in spati<strong>al</strong><br />

domain. In Hughes’ implementation, in order to have a<br />

smooth transition during morphing, the voxel v<strong>al</strong>ues of the<br />

entire volume are modified according to the distance to the<br />

nearest iso-surface. Hence, new datasets need to be created<br />

solely for the morphing application.<br />

In this paper, a technique for performing volume<br />

morphing in the wav elet domain is introduced. Since<br />

wavelet transform loc<strong>al</strong>izes in both frequency domain and<br />

spati<strong>al</strong> domain, the problems of high frequency distortion<br />

and unsmooth transformation can be <strong>al</strong>leviated<br />

simultaneously. The idea is to decompose the volumes<br />

into a set of frequency bands, apply smooth interpolation<br />

between the volumes to each band, and then reconstruct<br />

the morphed volume. Furthermore, the decomposition and<br />

reconstruction processes are accomplished in a<br />

multiresolution fashion so that high frequency distortion

can be adjusted to the desired level. By taking advantage<br />

of the spati<strong>al</strong> information within each frequency band, we<br />

can extract and correspond the object voxels of the first<br />

model to the object voxels of the second model<br />

intelligently. In the next section, the volume<br />

correspondence problem is presented. In Section 3<br />

wavelet theory is briefly introduced. Wav elet application to<br />

volume morphing in described in Section 4.<br />

2. The correspondence problem<br />

Unlike polygon<strong>al</strong>-based modeling, where every<br />

surface element of the mesh contributes to the modeling of<br />

apart of an object, voxel-based modeling captures not<br />

only the object itself but <strong>al</strong>so the space surrounding the<br />

object. Hence, in order to have a gradu<strong>al</strong> deformation<br />

from one object to another, itisessenti<strong>al</strong> to map only those<br />

voxels which belong to parts of an object. In our<br />

implementation, iso-v<strong>al</strong>ues are used to distinguish these<br />

voxels from empty space. The <strong>al</strong>gorithm for solving the<br />

correspondence problem is first described in 1D space,<br />

followed by the extension of the <strong>al</strong>gorithm into 3D space.<br />

Given anobject A in a 1D raster and an object B in another<br />

1D raster, the first step of the <strong>al</strong>gorithm is to classify these<br />

two rasters into segments of object and non-object.<br />

Without loss of gener<strong>al</strong>ity, let object A consist of m object<br />

segments, object B consist of n object segments, and<br />

m ≥ n (Figure 1). As in the case of surface-based<br />

morphing, the two important qu<strong>al</strong>ity criterion are<br />

maintaining the correct topology and minimizing the shape<br />

distortion during transformation. First, to satisfy the<br />

topology criterion, each object segment in A can be<br />

mapped to only one object segment in B. This restriction<br />

is needed to ensure that the number of object segments<br />

does not increase during morphing. Under the condition<br />

that the first criterion is satisfied, object segments of A<br />

should be distributed onto object segments of B as<br />

"evenly" as possible to minimize the shape distortion.<br />

.<br />

T = 0<br />

T = 0.5<br />

T = 1<br />

Object A’s segments<br />

Object B’s segments<br />

Figure 1:1DCorrespondence Problem<br />

Form<strong>al</strong>ly, the 1D correspondence problem is stated as<br />

follows. Given:<br />

determine:<br />

where<br />

subject to:<br />

and<br />

A = ⎧ ⎨a1a 1′, a2a2′,..., ama m′<br />

⎩<br />

⎫ ⎬, ⎭<br />

B = ⎧ ⎨b1b1′, b2b2′,..., bnb n′<br />

⎩<br />

⎫ ⎬, m ≥ n<br />

⎭<br />

P = {p 1, p 2,..., p n} and<br />

W = {w 1, w 2,...,w n}<br />

pi = ⎧ ⎫<br />

⎨x j,...,x k⎬,<br />

1 ≤ i ≤ n, 1 ≤ j ≤ k ≤ m,<br />

⎩ ⎭<br />

and x l ∈A for j ≤ l ≤ k<br />

wi = Σ (<strong>al</strong>′−<strong>al</strong>) j ≤ l ≤ k<br />

1. (x u ∈p i1 Λ x v ∈p i2 Λ i 1 < i 2) → (u < v)<br />

for <strong>al</strong>l u, v<br />

Σ<br />

2. min n<br />

i=1<br />

⎛<br />

⎜ wi ⎜<br />

⎜<br />

(bi′−bi) ⎝<br />

−<br />

m<br />

i=1<br />

Σ(ai′−ai) n<br />

i=1<br />

Σ(b<br />

⎞<br />

⎟<br />

⎟ .<br />

i′−bi) ⎟<br />

⎠<br />

In Equation 2, the set P represents the partition of A‘s<br />

object segments into n partitions, and the set W represents<br />

the corresponding weight for each member of P. As<br />

shown in Equation 4, the weight for each partition is the<br />

tot<strong>al</strong> length of object segments within each partition.<br />

Equation 5 guarantees that the partition is in consecutive<br />

order from left to right. Equation 6 insures that object<br />

segments of A are "evenly" distributed onto object<br />

segments of B by minimizing the variance.<br />

In our implementation, dynamic programming has<br />

been used to solve the 1D correspondence problem. Once<br />

the correspondences have been established for the object<br />

segments in A and B, each object segment in B needs to be<br />

partitioned to accommodate the corresponding object<br />

segments from A. For example, if<br />

2<br />

(1)<br />

(2)<br />

(3)<br />

(4)<br />

(5)<br />

(6)

.<br />

Correspond_3D ( A, B )<br />

Volume_Data *A, *B;<br />

{<br />

}<br />

Z1 = Object_Segments ( A, Z_AXIS );<br />

Z2 = Object_Segments ( B, Z_AXIS );<br />

Correspond_1D ( Z1, Z2 );<br />

for each non-empty scan plane u in A<br />

{<br />

}<br />

u’ = the corresponding scan plane in B;<br />

Y1 = Object_Segments ( u , Y_AXIS );<br />

Y2 = Object_Segments ( u’ , Y_AXIS );<br />

Correspond_1D ( Y1, Y2 );<br />

for each non-empty scan line v in u<br />

{<br />

}<br />

v’ = the corresponding scan line in u’ ;<br />

X1 = Object_Segments ( v , X_AXIS );<br />

X2 = Object_Segments ( v’ , X_AXIS );<br />

Correspond_1D ( X1, X2 );<br />

Figure 2:Pseudo-code for the 3D Correspondence<br />

pi = ⎧ ⎨a ja j′,..., ak ak′ ⎩<br />

⎫ ⎬<br />

⎭<br />

then segment b ib i′ of B needs to be partitioned into<br />

k − j + 1sub-segments of lengths<br />

where<br />

⎧<br />

⎨(a<br />

j′−a j) r,...,(ak′−ak) r<br />

⎩<br />

⎫ ⎬<br />

⎭<br />

r = (bi′−bi) k<br />

Σ(<strong>al</strong>′−<strong>al</strong>) l= j<br />

.<br />

The correspondence problem in 3D space is<br />

essenti<strong>al</strong>ly accomplished by applying the above 1D<br />

(7)<br />

(8)<br />

(9)<br />

correspondence <strong>al</strong>gorithm, which we c<strong>al</strong>l Correspond_1D,<br />

to each of the three princip<strong>al</strong> axes in an nested fashion.<br />

The 3D correspondence <strong>al</strong>gorithm, described in the<br />

pseudo-code presented in Figure 2, establishes a mapping<br />

from object scan-planes of A to object scan-planes of B,<br />

from object scan-lines of A to object scan-lines of B, and<br />

fin<strong>al</strong>ly from object voxels of A to object voxels of B. With<br />

these correspondence relations, volume morphing is<br />

achieved through the interpolations over time of the<br />

corresponding scan-planes, scan-lines, and voxels.<br />

3. Wav elet theory<br />

Gener<strong>al</strong>ly, the high frequency components in 3D<br />

functions represented by volumetric data tend to generate<br />

sm<strong>al</strong>l wiggles on the iso-surfaces of the models [3]. If the<br />

morphing <strong>al</strong>gorithm described above is directly performed<br />

in the spati<strong>al</strong> domain, these wiggles could cause distortions<br />

on the iso-surfaces of the intermediate functions (see<br />

Figure 3a). Recently, wav elet theory, which is rooted in<br />

time-frequency an<strong>al</strong>ysis, has been widely used in a variety<br />

of applications, such as shape description of volumetric<br />

objects [8] and radiosity [2]. Since a wav elet transform has<br />

loc<strong>al</strong> property in both spati<strong>al</strong> and frequency domain, it is<br />

an ide<strong>al</strong> solution to the problem of high frequency<br />

distortion during morphing. In this section wav elet theory<br />

is briefly introduced, then in Section 4 the wav elet-based<br />

morphing <strong>al</strong>gorithm is presented.<br />

Multiresolution sign<strong>al</strong> an<strong>al</strong>ysis decomposes a<br />

function into a smooth approximation of the origin<strong>al</strong><br />

function and a set of detailed information at different<br />

resolutions [7]. Form<strong>al</strong>ly, let L 2 (R) denote <strong>al</strong>l functions<br />

with finite energy; the smooth approximation of a function<br />

f ∈L 2 (R) atany resolution 2 i is a projection denoted as<br />

A 2 i: L 2 (R) → V 2 i, V 2 i ∈L 2 (R), and the detail of f at any<br />

higher resolution 2 j is a projection of f onto a subspace<br />

O 2 j of L 2 (R) denoted as P 2 j: L 2 (R) → O 2 j, j ≥ i.<br />

Consequently, the finest detailed information is contained<br />

in P 2 j with the highest resolution. By choosing the<br />

appropriate projection functions such that O 2 j are<br />

orthogon<strong>al</strong> to both each other and V 2 i,wehav e V 0 = L 2 (R)<br />

and L 2 (R) =+ 1 j = i O 2 j + V 2 i (when O 2 j is the orthogon<strong>al</strong><br />

complement of V 2 j, V 2 j+1 is written as V 2 j+1 = V 2 j + O 2 j ).<br />

For the discrete functions, it can be proven that there exist<br />

two families of functions:<br />

ψ j, n = 2 − j /2 ψ (2 j t − n) n ∈ Z<br />

φ j, n = 2 − j /2 φ(2 j t − n) n ∈ Z,<br />

(10)<br />

(11)<br />

which constitute the orthonorm<strong>al</strong> basis of V 2 j and O 2 j,<br />

respectively. ψ j,n are c<strong>al</strong>led wavelets and φ j,n are the<br />

corresponding sc<strong>al</strong>ing functions.

Using wav elets and sc<strong>al</strong>ing functions, the discrete<br />

detail sign<strong>al</strong> and discrete approximation at resolution 2 j<br />

are respectively defined as:<br />

(D 2 j f ) n = 2 − j /2 < f (u), ψ j ,n ><br />

(A d 2 j f ) n = 2 − j /2 < f (u), φ j,n ><br />

(12)<br />

(13)<br />

and the detailed information and smooth approximation<br />

are:<br />

P O2 j f =Σ∞ n =−∞ (D 2 j f ) n ψ (2 j t − n)<br />

A 2 j f =Σ ∞ n =−∞ (A d 2 j f ) n φ(2 j t − n).<br />

(14)<br />

(15)<br />

Instead of c<strong>al</strong>culating the inner products in Equations 12<br />

and 13, a pyramid<strong>al</strong> <strong>al</strong>gorithm [7] is applied for the<br />

decomposition of the function (Figure 4a), where<br />

H = H(−n) and G(n) = G(−n). The impulse response of<br />

the filters used is defined as:<br />

H(n) = <br />

G(n) = <br />

(16)<br />

(17)<br />

By repeating the <strong>al</strong>gorithm for −1 ≥ j ≥−M, both the<br />

discrete detail sign<strong>al</strong> and the discrete approximation at<br />

resolution 2 j can be computed. Using the same pair of<br />

filters, the origin<strong>al</strong> discrete samples can be computed by<br />

the reverse pyramid<strong>al</strong> <strong>al</strong>gorithm, as shown in Figure 4b.<br />

.<br />

2<br />

. 2<br />

2 j<br />

d<br />

A<br />

2 j<br />

d<br />

A<br />

D 2 j<br />

+1<br />

f<br />

f<br />

f<br />

2<br />

2<br />

G<br />

H<br />

: 1 sample out of 2<br />

: multiplication by 2<br />

(a)<br />

(b)<br />

H<br />

G<br />

X<br />

2<br />

2<br />

2<br />

D 2 j<br />

2 j<br />

d<br />

A<br />

f<br />

f<br />

. 2<br />

2 j<br />

d<br />

A<br />

+1<br />

: a 0 between 2 samples<br />

: convolve with filter X<br />

Figure 4:Wav elet Decomposition and Reconstruction<br />

f<br />

Wa velet theory can be easily expanded to any<br />

dimension by constructing high dimension orthonorm<strong>al</strong><br />

wavelets using the tensor product of sever<strong>al</strong> subspaces of<br />

L 2 (R) [7, 8]. To decompose or reconstruct a 3D function,<br />

the one dimension<strong>al</strong> pyramid<strong>al</strong> <strong>al</strong>gorithm described in<br />

Figure 4 is applied sequenti<strong>al</strong>ly <strong>al</strong>ong the princip<strong>al</strong> axes.<br />

Since the convolution <strong>al</strong>ong each axis is separable, for a<br />

volume of size n 3 ,the decomposition and reconstruction<br />

can be implemented in O(n 3 )time, which is asymptotic<strong>al</strong>ly<br />

optim<strong>al</strong>. Figure 5shows that the smooth approximation of<br />

a volume at resolution 2 j+1 decomposes into a smooth<br />

approximation at resolution 2 j and the discrete detail<br />

sign<strong>al</strong>s <strong>al</strong>ong seven orientations. Since the wav elets and<br />

sc<strong>al</strong>ing functions are orthogon<strong>al</strong>, the multiresolution<br />

representation<br />

(A d 2 −M f , (D i 2 j f ) −M ≤ j ≤−1, 1 ≤ i ≤ 7)<br />

(18)<br />

has the same tot<strong>al</strong> number of samples as the origin<strong>al</strong> sign<strong>al</strong><br />

A d 1 f .<br />

4. Wav elets for morphing<br />

Equation 10 and Equation 11 indicate that both the<br />

wavelets and sc<strong>al</strong>ing functions are the translation and<br />

dilation of a mother function ψ (t) or φ(t). It can thus be<br />

proven that the wav elet decomposition has the property of<br />

both spati<strong>al</strong> and frequency loc<strong>al</strong>ity. The <strong>al</strong>gorithm shown<br />

in Figure 4a can be interpreted as the separation of the<br />

detailed information, which corresponds to high pass<br />

filtering, and the generation of a smooth function, which<br />

corresponds to low pass filtering. In addition, a sign<strong>al</strong> that<br />

is nonzero only during a finite time span has a wav elet<br />

transform whose nonzero elements are concentrated<br />

around that time. For a 3D volume, this means that the<br />

spati<strong>al</strong> information, which is essenti<strong>al</strong> for volume<br />

morphing, is maintained in wav elet domain.<br />

.<br />

2 j<br />

d<br />

A<br />

+1<br />

f<br />

4 5<br />

6 7<br />

D j f D j f<br />

2 2<br />

D j f D j f<br />

2 2<br />

2 j<br />

d<br />

A<br />

1<br />

D j<br />

2<br />

Figure 5:Decomposition of a Volume Discrete Approximation<br />

by a 3D Wav elet Transform<br />

f<br />

f<br />

D<br />

3<br />

2 j<br />

f

The basic idea of wav elet-based morphing is to solve<br />

the correspondence problem between the gener<strong>al</strong> shape of<br />

the objects without the interference of high frequencies. To<br />

achieve this, the two volumes f and g are first decomposed<br />

into smooth approximation at resolution 2 −M and the<br />

detailed information:<br />

(A 2 −M f , (P O2 j f ) −M ≤ j ≤−1) and<br />

(A 2 −M g, (P O2 j g) −M ≤ j ≤−1).<br />

(19)<br />

Next, the direct morphing <strong>al</strong>gorithm, which is described in<br />

Section 2, is applied on the smooth approximation<br />

A 2 −M f and A 2 −M g to generate a smooth approximation<br />

A 2 −M k of an intermediate model. Then, the same<br />

correspondence relations found between A 2 −M f and A 2 −M g<br />

are employed for the interpolation between the detailed<br />

information of f and g to generate PO2 k. Fin<strong>al</strong>ly, the<br />

j<br />

morphed model k is reconstructed from the smooth<br />

approximation A 2 −M k and detailed information P O2 j k.<br />

To establish the correspondence between the smooth<br />

approximation A 2 −M f and A 2 −M g, anatur<strong>al</strong> approach is to<br />

first reconstruct the smooth approximation of the functions<br />

from the discrete approximations A d 2−M f and Ad 2−M g at<br />

resolution 2 −M back to the origin<strong>al</strong> resolution using the<br />

expansion of Equation 15 in 3D. Then, the correspondence<br />

problem can be solved at the origin<strong>al</strong> resolution. This<br />

approach can generate good results, but is computation<strong>al</strong>ly<br />

expensive because of the reconstruction process.<br />

Another approach is to directly establish the<br />

correspondence between the discrete approximation A d 2−M f<br />

and A d 2−M g (see Figure 6). The reason why this method is<br />

reasonable is that the filter H used in the decomposition<br />

can be seen as a low pass filter. Consequently, A d 2−M f and<br />

A d 2−M g can be interpreted as the representation of the<br />

origin<strong>al</strong> functions at a lower resolution, and the<br />

correspondence between A d 2−M f and Ad 2−M g presents the<br />

relation between the gener<strong>al</strong> shape of the two objects. In<br />

addition, given the correspondence, since the sc<strong>al</strong>ing<br />

.<br />

2 j<br />

d<br />

A<br />

2 j<br />

d<br />

A<br />

f<br />

g D 2 j<br />

D 2 j<br />

C<br />

f<br />

g<br />

I<br />

2 H<br />

. 2<br />

2 H . 2<br />

D j+1 f 2<br />

I 2 G<br />

I<br />

D j+1 g 2<br />

C : correspondence I<br />

2<br />

: interpolation<br />

Figure 6:Wav elet Morphing Algorithm<br />

functions ψ (2 j t − n) are <strong>al</strong>l the translations of a single<br />

function ψ (2 j t), interpolation before or after<br />

reconstruction using Equation 15 would generate the same<br />

intermediate model. Unlike the first approach, there is no<br />

need to reconstruct the smooth approximation at the<br />

origin<strong>al</strong> resolution. In addition, since the time of solving<br />

the correspondence problem depends on the size of<br />

volume, it is much cheaper to establish the correspondence<br />

at a lower resolution.<br />

As for the high frequency components, the discrete<br />

detail sign<strong>al</strong>s are interpolated at the same resolution and<br />

the same orientation using the same correspondence<br />

relation found between the smooth approximation. Again,<br />

the theoretic<strong>al</strong> base of this approach is the spati<strong>al</strong> and<br />

frequency loc<strong>al</strong>ity of the wav elet transform. To establish<br />

the correspondence between D i 2 j f and Di 2 j g when j > M,<br />

we treat the subvolumes with size of (2 j−M ) 3 as unit<br />

volume elements in D i 2 j f and Di 2 j g.<br />

Once we have the multiresolution representation,<br />

different interpolation schedules, similar to [3], are applied<br />

at different resolutions. The effect is the blending of the<br />

gener<strong>al</strong> shape of the two models, with the gradu<strong>al</strong> remov<strong>al</strong><br />

of the high frequencies of the first model and the gradu<strong>al</strong><br />

appearance of the high frequencies of the second model.<br />

This is demonstrated in Figure 3b and Figure 7b, where<br />

schedules are designed so that finer details of the first<br />

model disappear faster than the coarser details, while the<br />

coarser details are blended in before the finer details for<br />

the second model.<br />

An advantage of wav elet multiresolution<br />

representation is that the detailed information <strong>al</strong>ong seven<br />

different orientations is separately saved in<br />

D i 2 j f (1 ≤ i ≤ 7). Although not implemented yet, different<br />

schedules can be designed for the detail sign<strong>al</strong>s at the same<br />

resolution but with different orientations, since visu<strong>al</strong><br />

sensitivity depends not only on the frequency components<br />

but <strong>al</strong>so on the orientation of the stimulus [7]. In<br />

summary, bydesigning different schedules, high frequency<br />

G<br />

....

distortion can be adjusted to the desired level (ev en<br />

magnified, if desired) and different morphing effects can<br />

be achieved.<br />

Another flexibility of the wav elet-based morphing is<br />

the wide selection of wav elets that can be employed, since<br />

there is an infinite number of wav elets with different<br />

characteristics. In our implementation, the Battle-Lemarie<br />

wavelet is used for its symmetry and exponenti<strong>al</strong> decay.<br />

5. Results and conclusions<br />

We hav e presented a technique for performing<br />

volume morphing in the wav elet domain. The advantage<br />

of our method over aFourier volume morphing [3] is that<br />

our approach not only effectively reduces high frequency<br />

distortion, but <strong>al</strong>so establishes a suitable correspondence<br />

between the two volumetric datasets without the data<br />

modification process.<br />

The wav elet-based morphing technique presented<br />

can be applied to sampled, simulated and modeled<br />

geometric datasets. Tw o sequences of morphing from a<br />

CT scanned lobster to an MRI head are illustrated in<br />

Figures 3a and 3b. In Figure 3a, volume morphing is<br />

performed directly in the spati<strong>al</strong> domain, while in Figure<br />

3b our technique of wav elet-based volume morphing is<br />

applied to the datasets. The <strong>al</strong>leviation of high frequency<br />

distortion is most apparent during the middle stages of the<br />

animation in Figure 3b, where the morphing is performed<br />

mainly on the gener<strong>al</strong> shape of the models. Similarly, the<br />

comparison between spati<strong>al</strong> and wav elet-based morphing<br />

for geometric datasets is shown in Figures 7a and 7b,<br />

where in these two sequences a binary voxelized goblet is<br />

morphed into a binary voxelized torus. It is shown that in<br />

these two figures the correct topology is maintained during<br />

morphing. Furthermore, in Figure 7b our technique of<br />

wavelet-based morphing gradu<strong>al</strong>ly <strong>al</strong>leviates the high<br />

frequency distortion caused by the <strong>al</strong>iasing existed in the<br />

origin<strong>al</strong> binary voxelized models. Binary voxelized models<br />

were used here just to demonstrated the effectiveness of<br />

the wav elet-based volume morphing. In practice, volumesampled<br />

voxelized models [9] are used as origin<strong>al</strong> models,<br />

resulting in even smoother wav elet-based morphing.<br />

The multiresolution representation of the volume<br />

can be explored for an adaptive morphing. We are<br />

currently building a "previewer" so that the morphing can<br />

be interactively performed at low resolutions. This kind of<br />

"preview" tool is very useful for adjusting morphing<br />

parameters in the interpolation schedules. By taking<br />

advantage of the spati<strong>al</strong> loc<strong>al</strong>ity property of wav elet<br />

transform, subvolumes of the models can be selected for<br />

morphing. Thus, similar to 2D feature-based morphing [1],<br />

3D features of one volume can be extracted and mapped to<br />

the desired feature of another. Weare currently developing<br />

auser interface to accomplish this task. Other future work<br />

includes the investigation of the wav elet selection for the<br />

specific morphing effect, and the design of interpolation<br />

schedules for the information <strong>al</strong>ong different orientations.<br />

6. Acknowledgments<br />

This work has been supported in part by the Nation<strong>al</strong><br />

Science Foundation under grant number CCR-9205047<br />

and the Department of Energy under the PICS grant. The<br />

MRI head data for Figure 3 is courtesy of Siemens,<br />

Princeton, NJ, and the CT lobster data is courtesy of AVS,<br />

W<strong>al</strong>tham, MA. The authors would like to thank Steve<br />

Skiena for his suggestions on the correspondence problem.<br />

7. References<br />

1. Beier, T. and Neely, S., ‘‘Feature-based Image<br />

Metamorphosis’’, Computer Graphics, 26, 2 (July 1992),<br />

35-42.<br />

2. Gortler, S.J., Schroder, P., Cohen, M. F. and Hanrahan, P.,<br />

‘‘Wa velet Radiosity’’, SIGGRAPH 93, August 1993,<br />

221-230.<br />

3. Hughes, J. F., ‘‘Scheduled Fourier Volume Morphing’’,<br />

Computer Graphics, 26, 2(July 1992), 43-46.<br />

4. Kaufman, A., Cohen, D. and Yagel, R., ‘‘Volume<br />

Graphics’’, IEEE Computer, 26, 7(July 1993), 51-64.<br />

5. Kaul, A. and Rossignac, J., ‘‘Solid-Interpolating<br />

Deformations: Construction and Animations of PIPs’’,<br />

Proceeding of EUROGRAPHICS’91, September 1991,<br />

493-505.<br />

6. Kent, J., Parent, R. and Carlson, W., ‘‘Establishing<br />

Correspondence by Topologic<strong>al</strong> Merging: A New<br />

Approach to 3-D Shape Transformation’’, Proceedings of<br />

Graphics Interface’91, June 1991, 271-278.<br />

7. M<strong>al</strong>lat, S. G., ‘‘A Theory for Multiresolution Sign<strong>al</strong><br />

Decomposition: The Wav elet Representation’’, IEEE<br />

Tr ansaction on Patten An<strong>al</strong>ysis and Machine Intelligence,<br />

11, 7(July 1989), 674-693.<br />

8. Muraki, S., ‘‘Volume Data and Wav elet Transform’’, IEEE<br />

Computer Graphics and Applications, 13, 4(July 1993),<br />

50-56.<br />

9. Wang, S. W. and Kaufman, A. E., ‘‘Volume Sampled<br />

Voxelization of Geometric Primitives’’, Proceedings<br />

Visu<strong>al</strong>ization ’93, San Jose, CA, October 1993, 78-84.

Figure 3a: Spati<strong>al</strong> Domain Volume Morphing from a CT Lobster to an MRI Head.

Figure 3b: Wav elet Domain Volume Morphing from a CT Lobster to an MRI Head.

Figure 7a: Spati<strong>al</strong> Domain Volume Morphing from a Binary Voxelized Goblet to a Bi nary<br />

Voxelized Torus.

Figure 7b: Wav elet Domain Volume Morphing from a Binary Voxelized Goblet to a Bi nary<br />

Voxelized Torus.

Please reference the following QuickTime movies located in the MOV<br />

directory:<br />

HE.MOV<br />

HE_2.MOV<br />

Copyright © 1994 by the Research Foundation of the State University of<br />

New York at Stony Brook<br />

QuickTime is a trademark of Apple Computer, Inc.

Progressive Transmission of Scientific Data Using<br />

Biorthogon<strong>al</strong> Wavelet Transform<br />

��� ��� ��� ������ �� ��������<br />

������������������� �������������������<br />

NSF <strong>Engineering</strong> Research Center for Computation<strong>al</strong> Field Simulation<br />

P.O. Box 6176, Mississippi State University, Mississippi State, MS 39762<br />

Abstract<br />

An important issue in scientific visu<strong>al</strong>ization systems<br />

is the management of data sets. Most data sets in scientific<br />

visu<strong>al</strong>ization, whether created by measurement or simulation,<br />

are usu<strong>al</strong>ly voluminous. The go<strong>al</strong> of data management<br />

is to reduce the storage space and the access time of these<br />

data sets to speed up the visu<strong>al</strong>ization process. A new progressive<br />

transmission scheme using spline biorthogon<strong>al</strong><br />

wavelet bases is proposed in this paper. By exploiting the<br />

properties of this set of wavelet bases, a fast <strong>al</strong>gorithm involving<br />

only additions and subtractions is developed. Due<br />

to the multiresolution<strong>al</strong> nature of the wavelet transform,<br />

this scheme is compatible with hierarchic<strong>al</strong>–structured rendering<br />

<strong>al</strong>gorithms. The formula for reconstructing the function<strong>al</strong><br />

v<strong>al</strong>ues in a continuous volume space is given in a<br />

simple polynomi<strong>al</strong> form. Lossless compression is possible,<br />

even when using floating–point numbers. This <strong>al</strong>gorithm<br />

has been applied to data from a glob<strong>al</strong> ocean model. The<br />

lossless compression ratio is about 1.5:1. With a compression<br />

ratio of 50:1, the reconstructed data is still of good<br />

qu<strong>al</strong>ity. Sever<strong>al</strong> other wavelet bases are compared with the<br />

spline biorthogon<strong>al</strong> wavelet bases. Fin<strong>al</strong>ly, the reconstructed<br />

data is visu<strong>al</strong>ized using various <strong>al</strong>gorithms and the<br />

results are demonstrated.<br />

1. Introduction<br />

Progressive transmission is a good framework for data<br />

management in scientific visu<strong>al</strong>ization when a large volume<br />

of data is involved. The principle is to transmit the<br />

least amount of data necessary to generate a usable approximation<br />

of the origin<strong>al</strong> data. If the user requires further refinement,<br />

more data is fetched into the memory and a higher–resolution<br />

data set is reconstructed. See Fig. 1.<br />

Progressive transmission <strong>al</strong>gorithms based on the<br />

DCT, tree–structured pyramids, bit plane techniques, etc.,<br />

have been proposed [2]. Blandford [3] presented a scheme<br />

based on a 8–tap discrete wavelet transform (WT) and concluded<br />

it was very suitable for progressive transmission in<br />

the case of non–uniform resolution. Muraki [6] applied the<br />

truncated version of Battle–Lemarié wavelets to volume<br />

data and proposed a fast superposition <strong>al</strong>gorithm for reconstruction<br />

of function<strong>al</strong> v<strong>al</strong>ues in continuous space. However,<br />

there are still some unsolved problems. Most transform–<br />

based approaches slow down the system performance by<br />

introducing a time–consuming decoding procedure. This<br />

greatly limits their v<strong>al</strong>ue in applications with strict speed<br />

HH HL<br />

LH<br />

Origin<strong>al</strong><br />

Data<br />

WT<br />

HH HL<br />

LH LL<br />

Refinement Information<br />

Refine–<br />

ment<br />

Control<br />

super–<br />

position<br />

IWT<br />

Rendering<br />

<strong>al</strong>gorithms<br />

Reconstruct–<br />

ed Data<br />

Figure 1: Block diagram of progressive transmisson using<br />

the wavelet transform.<br />

requirements. In most visu<strong>al</strong>ization techniques such as isosurface<br />

rendering and fluid topology extraction, the function<strong>al</strong><br />

v<strong>al</strong>ues in the continuous space must be c<strong>al</strong>culated<br />

conveniently. By using an infinitely supported function as<br />

the superposition basis, a complex approximation <strong>al</strong>gorithm<br />

has to be utilized. Another drawback is that since<br />

most low bit–rate <strong>al</strong>gorithms use transforms such as the<br />

DCT or WT, lossless data compression is difficult because<br />

the denominators of the coefficients often are not in the<br />

form of 2 n .

In this paper, a scheme based on the biorthogon<strong>al</strong><br />

spline wavelet transform is proposed. The lengths of <strong>al</strong>l filters<br />

are less than 6. Experiment<strong>al</strong> results indicate that they<br />

perform better in most cases than a family of optimized<br />

6–tap wavelet bases where the same filter is used in both the<br />

decomposition and the reconstruction sides. Because <strong>al</strong>l the<br />

filter coefficients are dyadic ration<strong>al</strong>s, multiplication and<br />

division operations can be simplified to addition and subtraction<br />

for floating–point numbers or to shifting for integer<br />

numbers. This makes the transform much faster. This property<br />

<strong>al</strong>so makes lossless coding possible. In the case of the<br />

biorthogon<strong>al</strong> wavelet, symmetry is more easily achieved,<br />

resulting in a better handling of the data boundary. Because<br />

the transform basis functions are compactly supported and<br />

can be explicitly formulated in a polynomi<strong>al</strong> form, the reconstruction<br />

of function v<strong>al</strong>ues from wavelet transform coefficients<br />

is much easier.<br />

2. Method<br />

Basic<strong>al</strong>ly, the scheme illustrated in Fig. 1 contains four<br />

steps. The wavelet transform and entropy coding, the entropy<br />

decoding and inverse wavelet transform, the refinement<br />

strategy and the rendering <strong>al</strong>gorithm. Since sophisticated<br />

methods for entropy coding and refinement control exist<br />

[2][3][4], we will focused on the wavelet transform and the<br />

reconstruction of function<strong>al</strong> v<strong>al</strong>ues in continuous space.<br />

2.1 Biorthogon<strong>al</strong> Wavelet Transform<br />

Because of its multiresolution<strong>al</strong> nature, the wavelet<br />

transform is very suitable for hierarchic<strong>al</strong> manipulations<br />

such as progressive data transmission and tree–structured<br />

graphics rendering. A simple WT decomposition and reconstruction<br />

scheme [4] using quadrature mirror filters<br />

(QMF) is shown in Figure 2.<br />

Suppose that c j�1 is the origin<strong>al</strong> input at a given resolution<br />

level j � 1. In the decomposition stage, data are<br />

convoluted with a pair of filters h and g. h is often a low–<br />

pass filter while g is often a high–pass filter. As a result, the<br />

c j can be viewed as a coarser approximation of c j�1 . By<br />

downsampling the filtered data, the tot<strong>al</strong> number of samples<br />

in level j is the same as that of level j � 1. This procedure<br />

can be repeated sever<strong>al</strong> times. After reconstruction,<br />

the fin<strong>al</strong> result c ~ j�1 is identic<strong>al</strong> to c j�1 . g is given by:<br />

g n � (� 1) n h �n�1<br />

There are many families of wavelet bases with reasonable<br />

decay both in the time and the frequency domain. To<br />

guarantee perfect reconstruction (PR), the filter can not be<br />

truncated. This implies that the wavelet basis must be compactly<br />

supported. Also, to more easily de<strong>al</strong> with the data<br />

(1)<br />

boundary, symmetric bases are preferred. However, it is<br />

well known from wavelet theory that symmetry and perfect<br />

reconstruction are incompatible if we use the transform in<br />

Fig. 2. This difficulty can be overcome by using the biorthogon<strong>al</strong><br />

wavelet transform [1], which is diagrammed in<br />

Fig. 3.<br />

h<br />

2�<br />

2�<br />

c j<br />

c<br />

+<br />

j�1 ~ j�1<br />

c<br />

g<br />

d j<br />

put one zero between 2� keep one sample out<br />

each sample of two<br />

Figure 2: Block diagram of the basic wavelet decomposition<br />

and reconstruction scheme. Only one h is needed.<br />

c j�1<br />

2�<br />

2�<br />

h convolve with h(n) g convolve with g(n)<br />

h convolve with h(–n) g convolve with g(–n)<br />

2�<br />

h<br />

g<br />

2�<br />

2�<br />

c j<br />

d j<br />

Figure 3: Block diagram of the biorthogon<strong>al</strong> wavelet de–<br />

composition and reconstruction scheme. and h are<br />

different.<br />

~<br />

h<br />

2�<br />

2�<br />

h ~<br />

g ~<br />

h<br />

g<br />

+ c~ j�1<br />

In this implementation, h and h ~<br />

are different but are<br />

both symmetric . Also, g and g ~ satisfy:<br />

g ~<br />

n � (� 1)n h �n�1<br />

gn � (� 1) n h ~<br />

�n�1 (2)<br />

If H(�) and H ~<br />

(�) are the Fourier–transforms of h and h ~<br />

, according<br />

to [1], a sufficient condition on H and H ~<br />

to make<br />

them PR filters is:<br />

� �<br />

l�1<br />

�l � 1 � p<br />

p �· sin(��2)<br />

p�0<br />

2p � sin(��2) 2l H(�)H<br />

R(�)�<br />

~<br />

(�) � cos(��2) 2l ·<br />

where R(�) is an odd polynomi<strong>al</strong> in cos(�), and<br />

2l � k � k ~<br />

, which means the length of h and h ~<br />

(3)

should be both even or both odd. If R � 0 and if<br />

H ~<br />

(�) � cos(��2) k~<br />

e j ���2 , where � � 0 if k ~<br />

is even and<br />

� � 1 if k ~<br />

is odd, h and h ~<br />

are c<strong>al</strong>led spline filters since the<br />

related sc<strong>al</strong>ing function � ~<br />

is a B–spline function. Table I<br />

gives some example bases of this family. H ~<br />

(z) and H(z) are<br />

z–transforms of h and h ~<br />

. Notice that the denominators of<br />

the coefficients are <strong>al</strong>l in the form 2 n . This property makes<br />

them good candidates for our application. There is still<br />

some freedom left to choose bases from this family depending<br />

on implementation requirements. One basic principle<br />

is if a set of longer bases is used, the frequency separation<br />

property of h and g will be better , but at the expenses of<br />

more computation<strong>al</strong> complexity and a lower lossless compression<br />

ratio�<br />

k ~<br />

H ~<br />

TABLE I<br />

(z) k H(z)<br />

1 (1 � z) 1<br />

1<br />

(1 � z)<br />

2<br />

3 � z�2 z�1<br />

� �<br />

1<br />

�<br />

z z2 z3<br />

� �<br />

16 16 2 2 16 16<br />

2<br />

3<br />

1<br />

2 (z�1 � 2 � z) 2 � z�2<br />

4<br />

3z �4<br />

128<br />

8<br />

� 3z�3<br />

64<br />

� z�1<br />

4<br />

� z�2<br />

8<br />

� z2<br />

8<br />

1<br />

4 (z�1 � 3 � 1 � z�1<br />

4<br />

3z � z 2 )<br />

3<br />

3z �3<br />

64<br />

� 9z�2<br />

64<br />

� 7z2<br />

64<br />

� 3<br />

4<br />

� 19z�1<br />

64<br />

�<br />

z z2<br />

�<br />

4 8<br />

3z3 3z4<br />

� �<br />

64 128<br />

� 3<br />

4<br />

� 7z�1<br />

64<br />

�<br />

3z z2<br />

�<br />

4 4<br />

9z3 3z4<br />

� �<br />

64 64<br />

�<br />

45<br />

�<br />

19z<br />

64 64<br />

�<br />

45<br />

�<br />

45z<br />

64 64<br />

Our application involves rendering the data from eighteen<br />

75 MB data files simultaneously. For efficient visu<strong>al</strong>ization,<br />

the inverse wavelet transform must be very fast. A<br />

system using the wavelet bases in Table I with k ~<br />

� 2 and<br />

k � 2 has been implemented. Fig. 4 shows the sc<strong>al</strong>e function<br />

� ~<br />

(x) and the wavelet function � ~ (x).<br />

2.2 Fast Wavelet Transform<br />

The efficient wavelet transform method introduced by<br />

M<strong>al</strong>lat [4] borrowed the QMF scheme from subband coding<br />

theory (Fig. 2). In this <strong>al</strong>gorithm, the major computation<strong>al</strong><br />

burden is caused by the convolution operation which in-<br />

volves a lot of floating–point multiplication. Because h, h ~<br />

,<br />

g and g ~ are <strong>al</strong>l symmetric in our scheme, the number of<br />

multiplications can be reduced by approximately 50%. After<br />

investigating the IEEE standard–floating point data format<br />

(Fig. 5), it was found that for a floating–point number,<br />

multiplication by 2 n can be simplified to the addition of n<br />

to the exponent, while for an integer number only a shift<br />

1.0<br />

0.0<br />

–0.5<br />

2.0<br />

1.0<br />

0.0<br />

–1.0<br />

–1.0 0.0 1.0<br />

–1.0 0.0 1.0<br />

� ~<br />

(x)<br />

� ~ (x)<br />

Figure 4: Sc<strong>al</strong>e function and wavelet function of<br />

biorthogon<strong>al</strong> WT in Table I when k and .<br />

~<br />

�<br />

� 2<br />

~ � (x)<br />

~ (x)<br />

k � 2<br />

operation is needed. This fact was exploited to develop a<br />

multiplication–free WT <strong>al</strong>gorithm.<br />

8–BIT<br />

EXP.<br />

23–BIT<br />

FRACTION<br />

SIGN OF FRACTION<br />

2.0<br />

SINGLE REAL<br />

Figure 5: Single precision (32 bits) floating–point data for–<br />

mat defined by IEEE 754 standard.<br />

2.3 Superposition<br />

To combine a progressive transmission scheme with a<br />

visu<strong>al</strong>ization <strong>al</strong>gorithm such as isosurface generation or<br />

ray casting, the function<strong>al</strong> v<strong>al</strong>ues in the continuous volume<br />

must be approximated efficiently from the transform coef-<br />

ficients. In a gener<strong>al</strong> 1–D case, if the WT with k ~<br />

� 2 and<br />

k � 2 is used, the function v<strong>al</strong>ue at x can be reconstructed<br />

using the following formula:<br />

f ^ j��<br />

(x) � �<br />

j���<br />

� ~<br />

K, j<br />

i�K<br />

(x) � �<br />

j��<br />

i�1<br />

j���<br />

� ~<br />

i, j (x)<br />

where � ~<br />

K, j (x) � 2�K � � ~<br />

( 2�K � j )<br />

� ~<br />

i, j (x) � 2�i � � ~ ( 2�i � j )<br />

K � levels of the WT (4)<br />

When � ~<br />

(x) is a set of compactly supported piecewise B–

spline functions, f(x) can be written in a closed polynomi<strong>al</strong><br />

form with order k ~<br />

� 1. As shown in Fig. 4, the � ~<br />

(x) and<br />

� ~ (x) in our <strong>al</strong>gorithm are of order 1. The process of reconstructing<br />

the function v<strong>al</strong>ues in a continuous space from the<br />

WT coefficients is illustrated in Fig. 6. In each interv<strong>al</strong> [i,<br />

i+1) , the reconstructed functions are linear functions. Thus<br />

(4) can be simplified to:<br />

f ^ (x) � (1 � q ) · f ^ (l) � q · f ^ (l�1)<br />

where x � [l, l � 1)<br />

q � x�l<br />

This suggests that the exact function v<strong>al</strong>ue at any re<strong>al</strong> x can<br />

be computed through linear interpolation of the function<br />

v<strong>al</strong>ues at the two discrete neighbors which surround x. In<br />

this case, the resulted f ~<br />

(x) is C 0 continuous. When the order<br />

of � ~<br />

(x) and � ~ (x) is larger than 1, we can still write (4)<br />

in a closed polynomi<strong>al</strong> form with order of k ~<br />

(x) will<br />

� 1. f ~<br />

be C k~ �2 continuous. If we simply take the tensor product<br />

of the one–dimension bases as the bases for the multidimension<br />

WT, the same conclusion can be derived.<br />

2.4 Lossless Compression is Possible<br />

IEEE single–precision floating–point numbers have<br />

23+1 bits of precision. Multiplication by 2 n will require no<br />

extra bit to retain the same precision. However, addition<br />

may result in some extra bits. As an example, consider the<br />

WT in our scheme. For h, the convolution formula is:<br />

cn � � 1<br />

8 f n�2 � 1<br />

4 f n�1 � 3<br />

4 fn � 1<br />

4 f n�1 � 1<br />

8 f n�2<br />

Where f i is the discrete input function v<strong>al</strong>ue. Suppose the<br />

maximum and minimum exponents of <strong>al</strong>l five f i v<strong>al</strong>ues are<br />

Pmax and P min. Then the maximum number of extra bits we<br />

need to record the precise c n is:<br />

(5)<br />

(6)<br />

be � Pmax � P min � 3 (7)<br />

Similarly, for h ~<br />

, the maximum number of extra bits needed<br />

is no more than:<br />

b ~<br />

e � Pmax � P min � 2 (8)<br />

This is the worst case. Usu<strong>al</strong>ly b e and b ~<br />

e are less than the<br />

v<strong>al</strong>ue given here. To increase the lossless compression ratio,<br />

the fewest extra bits for each coefficient in the transform<br />

domain is desired. Recording the information about<br />

extra bits using an oct–tree has produced good results.<br />

...<br />

...<br />

–4<br />

–4<br />

. . . . . .<br />

–4<br />

C 1 �1 �~<br />

1,�1<br />

–2<br />

d 1 �2 �~<br />

1,�2<br />

–2<br />

–2<br />

d 1<br />

�1 �~<br />

1,�1<br />

C 1 0 �~<br />

1, 0<br />

C 1 1 �~<br />

1, 1<br />

0 2 4<br />

d 1 0 �~<br />

1, 0<br />

d 1 1 �~<br />

1, 1<br />

0 2 4<br />

f ^<br />

(x)<br />

0 2 4<br />

...<br />

+<br />

=<br />

...<br />

. . . . . .<br />

Figure 6: Reconstruction (superposition) of function v<strong>al</strong>ues<br />

in continuous space using WT coefficients in our<br />

scheme. Notice the f is linear function in the interv<strong>al</strong> of<br />

[i, i+1).<br />

^<br />

(x)<br />

3. Results<br />

We applied the scheme described in this paper to ocean<br />

model data [14]. The model output was available on a<br />

337 � 468 � 6 grid 120 times per year. Layer thickness<br />

and current data in floating–point format — variables from<br />

the model — were used in our experiments. Each of the<br />

six time–varying layers were considered separately, the top<br />

layer being of greatest interest.<br />

First, we compared the spline biorthogon<strong>al</strong> wavelet<br />

transform with a family of 6–tap WTs where <strong>al</strong>l hi are functions<br />

of two parameters — � and � — according to the formulae<br />

�� ���� Sever<strong>al</strong> 1–D sign<strong>al</strong> sequences with 120 samples<br />

were randomly chosen from the ocean model data set.<br />

For each test sign<strong>al</strong>, we searched exhaustively in the � � �<br />

x<br />

x<br />

x

h �2 � ��1 � cos � � sin �)· (1 � cos � � sin �) � 2 cos � sin �]�4<br />

h �1 � ��1 � cos � � sin �)· (1 � cos � � sin �) � 2 cos � sin �]�4<br />

h 0 � [1 � cos(� � �) � sin(� � �)]�2<br />

h 1 � [1 � cos(� � �) � sin(� � �)]�2<br />

h 2 � 1 � h �2 � h 0 h 3 � 1 � h �1 � h 1<br />

where � � � �,� � � (9)<br />

parameter space for the minimum MSE and compared it<br />

with the MSE generated by the spline biorthogon<strong>al</strong> wavelet<br />

compression <strong>al</strong>gorithm. Table II gives the results of some<br />

typic<strong>al</strong> sign<strong>al</strong>s in our application. From these data, we concluded<br />

that <strong>al</strong>though the lengths of the spline biorthogon<strong>al</strong><br />

WT filters are less than 6, they perform the same or better<br />

than the optimized 6–tap WTs in a scheme where both forward<br />

and inverse transforms use the same filters.<br />

TABLE II<br />

Test Sign<strong>al</strong> 6–Tap WT Biorth. Spline WT<br />

� �<br />

k MSE<br />

~<br />

120 samples Optim<strong>al</strong> Optim<strong>al</strong> MSE � 2, k � 2,<br />

A –1.0210 0.4712 0.0241 0.0143<br />

B 1.4137 0.8639 0.0805 0.0537<br />

C 1.4922 1.0210 0.0806 0.0513<br />

D –1.0210 0.3141 0.0099 0.0048<br />

E 1.0995 0.3141 0.1521 0.0912<br />

F –1.4137 –0.8639 0.2364 0.0831<br />

G 1.1780 0.4712 0.1947 0.0786<br />

To apply the biorthogon<strong>al</strong> WT to our data set, the<br />

boundary conditions had to be considered. In each frame<br />

(timestep) of ocean model data, v<strong>al</strong>id function v<strong>al</strong>ues were<br />

only available within the ocean area (Fig. 7a). This area was<br />

constant over time. A 2–D WT requires the ocean area be<br />

approximated using square blocks. The blocksize used was<br />

2 n � 2 n , where n was larger than the level of the WT in<br />

each data frame. The approximated ocean area had to cover<br />

the entire origin<strong>al</strong> ocean area (Fig. 7b). For grid points in<br />

the approximated ocean area but not in the origin<strong>al</strong> area, interpolation<br />

and extrapolation techniques were used to yield<br />

function v<strong>al</strong>ues. This introduced some discontinuity at the<br />

data boundary. In our implementation, second order Lagrange<br />

interpolation was used. Since <strong>al</strong>l our WT bases are<br />

symmetric, the function v<strong>al</strong>ues outside the boundary were<br />

achieved simply by reflection.<br />

As shown in Figure 8, after applying the transform<br />

twice in each spati<strong>al</strong> dimension in a frame and once in the<br />

tempor<strong>al</strong> dimension, only 1/32 of the transform coefficients<br />

were transmitted to the decoder. The reconstructed<br />

data had good qu<strong>al</strong>ity and met the requirements of further<br />

scientific visu<strong>al</strong>ization processes. By using the refinement<br />

control strategy proposed by Blandford [3], only a sm<strong>al</strong>l<br />

amount of data was needed for a better reconstruction.<br />

In Fig. 9, layer thickness, which is a sc<strong>al</strong>ar field, compressed<br />

by our <strong>al</strong>gorithm at the rate of 50:1 is shown. For<br />

y<br />

t<br />

x<br />

2, v dF c 2<br />

F<br />

1, v dF 2, d dF d 2,h<br />

F<br />

1, v dB 1, d dF 1, h dF 464<br />

1, d dB 1, h dB 120<br />

336<br />

Figure 8: Wavelet transform coefficients of 3–D data of<br />

ocean model.<br />

a 2–D vector field, the two components are encoded independently.<br />

Streamlines are generated both for the origin<strong>al</strong><br />

field and the field reconstructed using only 1/32 of WT coefficients,<br />

the results are shown in Fig. 10.<br />

Applying a topology extraction <strong>al</strong>gorithm [10] to this<br />

vector field, the glob<strong>al</strong> and the stable topology structures<br />

remained relatively unchanged, even at a 16:1 compression<br />

ratio. With progressive refinement, more and more loc<strong>al</strong><br />

and unstable features can be extracted (Fig. 11). This can<br />

be explained as the low–pass effects of the WT.<br />

The decoding speed, an important factor in interactive<br />

visu<strong>al</strong>ization system, is about 10 frames/sec on an SGI Indigo<br />

2 machine. This satisfies the need of fast volume rendering<br />

in our application.<br />

4. Conclusions and Future works<br />

A new scheme of progressive transmission using a<br />

spline biorthogon<strong>al</strong> wavelet transform is proposed in this<br />

paper. This family of wavelet base functions is symmetric,<br />

compactly supported, and the QMF coefficients are dyadic<br />

ration<strong>al</strong>s. These attractive features make this scheme advantageous<br />

in sever<strong>al</strong> aspects. The transform itself is fast<br />

and high compression ratios can be achieved. The reconstructed<br />

data is of good qu<strong>al</strong>ity and can be refined with a<br />

sm<strong>al</strong>l amount of addition<strong>al</strong> data. Data boundaries can be<br />

tackled gracefully, The reconstruction of function v<strong>al</strong>ues in<br />

continuous space from the WT coefficients is a simple<br />

polynomi<strong>al</strong>. This interesting property is especi<strong>al</strong>ly useful<br />

for scientific visu<strong>al</strong>ization applications.<br />

Future work includes more investigation of the WT’s<br />

effects on the topology of the flow field, combining this <strong>al</strong>gorithm<br />

with some other hierarchic<strong>al</strong> scientific visu<strong>al</strong>iza-

tion techniques, and constructing better wavelet bases.<br />

5. Acknowledgments<br />

We wish to thank Scott Nations for his many helpful<br />

comments on an early version of this paper. This work has<br />

been supported in part by ARPA and the Strategic Environment<strong>al</strong><br />

Research and Development Program (SERDP).<br />

6. References<br />

[1] I. Daubechies, Ten Lectures on Wavelets, CBMS–NSF Region<strong>al</strong><br />

Conference Series in Applied Mathematics, no. 61, Society for Industri<strong>al</strong><br />

and Applied Mathematics, Philadelphia, PA, 1992.<br />

[2] Kou–Hu Tzou, “Progressive Image Transmission: A Review<br />

and Comparison of Techniques,” Optic<strong>al</strong> <strong>Engineering</strong>, 26(7), pp.<br />

581–589, July 1987.<br />

[3] R. P. Blandford, “Wavelet Encoding and Variable Resolution<br />

Progressive Transmission,” NASA Space & Earth Science Data<br />

Compression Workshop Proceedings, pp. 25–34, April 1993.<br />

[4] S. G. M<strong>al</strong>lat, “A theory for multiresolution sign<strong>al</strong> decomposition:<br />

the wavelet representation,” IEEE Trans. Pattern An<strong>al</strong>. Machine<br />

Intell., vol. 11, no. 7, July 1989.<br />

[5] M. A. Cody, “The Fast Wavelet Transform,” Dr. Dobb’s Journ<strong>al</strong>,<br />

vol. 17, no. 4, April 1992.<br />

[6] S. Muraki, “Volume Data and Wavelet Transforms,” IEEE Computer<br />

Graphics & Applications, pp. 50–56, July 1993.<br />

[7] P. Ning and L. Hesselink, “Fast Volume Rendering of Compressed<br />

Date,” Visu<strong>al</strong>ization ’93 Proceedings, pp. 11–18, 1993.<br />

[8] M. Antonini, M. Barlaud, P. Mathieu and I. Daubechies, “Image<br />

Coding Using Wavelet Transform,” IEEE Trans. on Image Processing,<br />

vol. 1, no. 2, pp. 205–220, April 1992.<br />

[9] R. H. Abraham and C. D. Shaw, Dynamics: The Geometry of Behavior,<br />

part 1–4, Arie Press, Santa Cruz, CA, 1984.<br />

[10] J. L. Helman and L. Hesselink, “Representation and Display of<br />

Vector Field Topology in Fluid Flow Data Sets,” IEEE Computer,<br />

pp. 27–36, Aug. 1989.<br />

[11] O. Rioul and M. Vetterli, “Wavelets and Sign<strong>al</strong> Processing,”<br />

IEEE SP Magazine, pp 14–38, Oct. 1991.<br />

[12] A. H. Tewfik, D. Sinha and P. Jorgensen, “On the Optim<strong>al</strong><br />

Choice of a Wavelet for Sign<strong>al</strong> Representation,” IEEE Trans. on<br />

Info. Theory, vol. 38, no. 2, pp 747–765, March 1992.<br />

[13] J. N. Bradley and C. M. Brislawn, “Applications of Wavelet–<br />

Based Compression to Multidimension<strong>al</strong> Earth Science Data,”<br />

NASA Space & Earth Science Data Compression Workshop Proceedings,<br />

pp. 13–24, April 1993.<br />

[14] H. E. Hurlburt, A. J. W<strong>al</strong>lcraft, Z. Sirkes and E. J. Metzger,<br />

“Modeling of the Glob<strong>al</strong> and Pacific Oceans,” Oceanography, vol.<br />

5, no. 1, pp. 9–18, 1992.<br />

[15] M. Rabbani and P. Jones, Digit<strong>al</strong> Image Compression Techniques,<br />

SPIE, vol. TT7, 1991.<br />

Pacific Ocean<br />

(a)<br />

Approximated Ocean Area<br />

(b)<br />

North America<br />

Land<br />

Figure 7: Land and ocean areas in each data frame. (a)<br />

Ocean area in origin<strong>al</strong> data (white area). (b) Approximation<br />

of the ocean area using 8�8 blocks. This approximated<br />

version entirely covers the origin<strong>al</strong> ocean area.

Step 19<br />

Figure 9a. Layer thickness for the NE Pacific Ocean-<br />

Origin<strong>al</strong> thickness data.<br />

Figure 10a. Velocity data for the NE Pacific Ocean-<br />

Origin<strong>al</strong> data.<br />

Step 19<br />

Figure 9b. Layer thickness for the NE Pacific Ocean-<br />

Reconstructed data (compression ratio = 50:1).<br />

Figure 10b. Velocity data for the NE Pacific Ocean-<br />

Reconstructed data (compression ratio = 50:1).<br />

Figure 11. Vector field topology extraction on reconstructed data. (a) Using origin<strong>al</strong> data. (b) Data reconstructed<br />

using 1/4 WT coefficients. (c) Data reconstructed using 1/16 WT coefficients.

An Ev<strong>al</strong>uation of Reconstruction Filters for Volume Rendering<br />

Stephen R. Marschner and Richard J. Lobb †<br />

Program of Computer Graphics<br />

Cornell University, Ithaca NY 14853<br />

srm@graphics.cornell.edu richard@cs.auckland.ac.nz<br />

Abstract<br />

To render images from a three-dimension<strong>al</strong> array of<br />

sample v<strong>al</strong>ues, it is necessary to interpolate between the<br />

samples. This paper is concerned with interpolation methods<br />

that are equiv<strong>al</strong>ent to convolving the samples with a reconstruction<br />

filter; this covers <strong>al</strong>l commonly used schemes,<br />

including trilinear and cubic interpolation.<br />

We first outline the form<strong>al</strong> basis of interpolation in<br />

three-dimension<strong>al</strong> sign<strong>al</strong> processing theory. We then propose<br />

numeric<strong>al</strong> metrics that can be used to measure filter<br />

characteristics that are relevant to the appearance of images<br />

generated using that filter. We apply those metrics<br />

to sever<strong>al</strong> previously used filters and relate the results to<br />

isosurface images of the interpolations. We show that the<br />

choice of interpolation scheme can have a dramatic effect<br />

on image qu<strong>al</strong>ity, and we discuss the cost/benefit tradeoff<br />

inherent in choosing a filter.<br />

1 Introduction<br />

Volume data, such as that from a CT or MRI scanner, is<br />

gener<strong>al</strong>ly in the form of a large array of numbers. In order<br />

to render an image of a volume’s contents, we need to construct<br />

from the data a function that assigns a v<strong>al</strong>ue to every<br />

point in the volume, so that we can perform rendering operations<br />

such as simulating light propagation or extracting<br />

isosurfaces. This paper is concerned with the methods of<br />

constructingsuch a function. We restrict our attention to the<br />

case of regular sampling, in which samples are taken on a<br />

rectangular lattice. Furthermore, our an<strong>al</strong>ysis is in terms of<br />

uniform regular sampling, in which we have equ<strong>al</strong> spacing<br />

<strong>al</strong>ong <strong>al</strong>l axes, since the non-uniform case can be included<br />

by a simple sc<strong>al</strong>ing.<br />

Given a discrete set of samples, the process of obtaining<br />

a density function that is defined throughout the volume<br />

is c<strong>al</strong>led interpolation or reconstruction; we use these terms<br />

interchangeably. Trilinear interpolation is widely used, for<br />

example in the isosurface extraction <strong>al</strong>gorithms of Wyvill,<br />

et. <strong>al</strong>. [19], and Lorensen, et. <strong>al</strong>. [13, 4], and in many raytracing<br />

schemes (e.g., that of Levoy [12]). Cubic filters<br />

have <strong>al</strong>so received attention: Levoy uses cubic B-splines<br />

for volume resampling, and Wilhelms and Van Gelder mention<br />

Catmull-Rom splines for isosurface topology disam-<br />

† On leave from the Department of Computer Science, University of<br />

Auckland, Auckland, New Ze<strong>al</strong>and until August 1994.<br />

biguation [18]. The “splatting” methods of Westover [17]<br />

and Laur & Hanrahan [11] assume a truncated Gaussian filter<br />

for interpolation, <strong>al</strong>though the interpolation operation is<br />

actu<strong>al</strong>ly merged with illumination and projection into a single<br />

fast but approximate compositing process. Carlbom [3]<br />

discusses the design of discrete “optim<strong>al</strong>” filters based on<br />

weighted Chebyshev minimization. All of these schemes<br />

f<strong>al</strong>l within the standard sign<strong>al</strong> processing framework of reconstruction<br />

by convolution with a filter, which is the model<br />

we use to an<strong>al</strong>yze them.<br />

The process of interpolation is often seen as a minor<br />

aside to the main rendering problem, but we believe it<br />

is of fundament<strong>al</strong> importance and worthy of closer attention.<br />

One needs to be aware of the limitations of interpolation,<br />

and hence of the images produced, which are usu<strong>al</strong>ly<br />

claimed to represent the origin<strong>al</strong> density function prior to<br />

sampling. Sampling and interpolation are <strong>al</strong>so basic to volume<br />

resampling, and the cost of using more sophisticated<br />

interpolation schemes may well be outweighed by the potenti<strong>al</strong><br />

benefits of storing and using fewer samples.<br />

2 Reconstruction Theory<br />

2.1 Review of Fourier an<strong>al</strong>ysis<br />

We will review Fourier an<strong>al</strong>ysis and sampling theory<br />

in two dimensions to make diagrams feasible; the gener<strong>al</strong>ization<br />

to three dimensions is straightforward. Some initi<strong>al</strong><br />

familiarity is assumed; introductions to this subject can be<br />

found in [6] and [7].<br />

Fourier an<strong>al</strong>ysis <strong>al</strong>lows us to write a complex-v<strong>al</strong>ued<br />

function g : R 2 � C as a sum of “plane waves” of the form<br />

exp�i�ωxx � ωyy��. For a periodic function, this can actu<strong>al</strong>ly<br />

be done with a discrete sum (a Fourier series), but for<br />

arbitrary g we need an integr<strong>al</strong>:<br />

g�x�y� � 1<br />

Z<br />

2π R2 ˆg�ωx�ωy�e i�ωxx�ωyy�<br />

dωx dωy<br />

The formula to get ˆg from g is quite similar:<br />

ˆg�ωx�ωy� �<br />

Z<br />

R 2 g�x�y�e�i�ωxx�ωyy� dxdy<br />

One intuitive interpretation of these formulae is that<br />

ˆg�ωx�ωy� measures the correlation over <strong>al</strong>l �x�y� between<br />

g and a complex sinusoid of frequency �ωx�ωy�, and that

g k gk<br />

gˆ kˆ gˆ kˆ = gˆ k<br />

Figure 1: Two-dimension<strong>al</strong> sampling in the space domain (top) and the frequency domain (bottom).<br />

g�x�y� sums up the v<strong>al</strong>ues at �x�y� of sinusoids of <strong>al</strong>l possible<br />

frequencies �ωx�ωy�, weighted by ˆg. We c<strong>al</strong>l ˆg the<br />

Fourier transform of g, and j ˆgj the spectrum of g. Since<br />

the Fourier transform is invertible, g and ˆg are two representations<br />

of the same function; we refer to g as the space<br />

domain representation, or just the sign<strong>al</strong>, and ˆg as the frequency<br />

domain representation. Of particular importance is<br />

that the Fourier transform of a product of two functions is<br />

the convolution of their individu<strong>al</strong> Fourier transforms, and<br />

vice versa: c gh � ˆg � ˆh; d g � h � ˆgˆh.<br />

2.2 Basic sampling theory<br />

We represent a point sample as a sc<strong>al</strong>ed Dirac impulse<br />

function. With this definition, sampling a sign<strong>al</strong> is equiv<strong>al</strong>ent<br />

to multiplyingit by a grid of impulses, one at each sample<br />

point, as illustrated in the top h<strong>al</strong>f of Figure 1.<br />

The Fourier transform of a two-dimension<strong>al</strong> impulse<br />

grid with frequency fx in x and fy in y is itself a grid of impulses<br />

with period fx in x and fy in y. If we c<strong>al</strong>l the impulse<br />

grid k�x�y� and the sign<strong>al</strong> g�x�y�, then the Fourier transform<br />

of the sampled sign<strong>al</strong>, b gk, is ˆg� ˆk. Since ˆk is an impulse grid,<br />

convolving ˆg with ˆk amounts to duplicating ˆg at every point<br />

of ˆk, producing the spectrum shown at bottom right in Figure<br />

1. We c<strong>al</strong>l the copy of ˆg centered at zero the primary<br />

spectrum, and the other copies <strong>al</strong>ias spectra.<br />

If ˆg is zero outside a sm<strong>al</strong>l enough region that the <strong>al</strong>ias<br />

spectra do not overlap the primary spectrum, then we can<br />

recover ˆg by multiplying b gk by a function ˆh which is one<br />

inside that region and zero elsewhere. Such a multiplication<br />

is equiv<strong>al</strong>ent to convolving the sampled data gk with h,<br />

the inverse transform of ˆh. This convolution with h <strong>al</strong>lows<br />

us to reconstruct the origin<strong>al</strong> sign<strong>al</strong> g by removing, or filtering<br />

out, the <strong>al</strong>ias spectra, so we c<strong>al</strong>lh a reconstruction filter.<br />

The go<strong>al</strong> of reconstruction, then, is to extract, or pass, the<br />

primary spectrum, and to suppress, or stop, the <strong>al</strong>ias spectra.<br />

Since the primary spectrum comprises the low frequencies,<br />

the reconstruction filter is a low-pass filter.<br />

It is clear from Figure 1 that the simplest region to<br />

which we could limit ˆg is the region of frequencies that are<br />

less than h<strong>al</strong>f the sampling frequency <strong>al</strong>ong each axis. We<br />

c<strong>al</strong>l this limiting frequency the Nyquist frequency, denoted<br />

fN, and the region the Nyquist region, denoted RN. We define<br />

an ide<strong>al</strong> reconstruction filter to have a Fourier transform<br />

that has the v<strong>al</strong>ue one in the Nyquist region and zero<br />

outside it. 1<br />

2.3 Volume reconstruction<br />

Extending the above to handle the three-dimension<strong>al</strong><br />

sign<strong>al</strong>s encountered in volume rendering is straightforward:<br />

the sampling grid becomes a three-dimension<strong>al</strong> lattice, and<br />

the Nyquist region a cube. See [5] for a discussion of sign<strong>al</strong><br />

processing in arbitrary dimensions.<br />

Given this new Nyquist region, the ide<strong>al</strong> convolution<br />

filter is the inverse transform of a cube, which is the product<br />

of three sinc functions:<br />

hI�x�y�z� � �2 fN� 3 sinc�2 fNx� sinc�2 fNy� sinc�2 fNz��<br />

Thus, in principle, a volume sign<strong>al</strong> can be exactly reconstructed<br />

from its samples by convolving with hI, provided<br />

that the sign<strong>al</strong> was suitably band-limited 2 before it<br />

was sampled.<br />

In practice, we can not implement hI, since it has infinite<br />

extent in the space domain, and we are faced with<br />

choosing an imperfect filter. This will inevitably introduce<br />

some artifacts into the reconstructed function.<br />

3 Practic<strong>al</strong> reconstruction issues<br />

The image processing field, which makes extensive use<br />

of reconstruction filters for image resampling (e.g., [10,<br />

16, 15]), provides a good starting point for an<strong>al</strong>yzing volume<br />

reconstruction filters. In particularly, Mitchell and<br />

1 Other definitions of an ide<strong>al</strong> filter are possible—for example, a filter<br />

h such that ˆh is one inside a circle of radius fN.<br />

2 A sign<strong>al</strong> is band-limited if its spectrum is zero outside some bounded<br />

region in frequency space, usu<strong>al</strong>ly a cube centered on the origin.

Ide<strong>al</strong> reconstruction filter<br />

– fs<br />

Primary spectrum<br />

ˆg<br />

Reconstructed spectrum<br />

Aliasing<br />

0 N f<br />

– f<br />

freq.<br />

N<br />

f s<br />

Alias spectrum<br />

Netrav<strong>al</strong>i [15] identified post<strong>al</strong>iasing, blur, anisotropy, and<br />

ringing as defects arising from imperfect image reconstruction.<br />

3.1 Post<strong>al</strong>iasing<br />

Post<strong>al</strong>iasing arises when energy from the <strong>al</strong>ias spectra<br />

“leaks through” into the reconstruction, due to the reconstruction<br />

filter being significantly non-zero at frequencies<br />

above fN. The term post<strong>al</strong>iasing is used to distinguish the<br />

problem from pre<strong>al</strong>iasing, which occurs when the sign<strong>al</strong> is<br />

insufficiently band-limited before sampling, so that energy<br />

from the <strong>al</strong>ias spectra “spills over” into the region of the primary<br />

spectrum. In both cases, frequency components of the<br />

origin<strong>al</strong> sign<strong>al</strong> appear in the reconstructed sign<strong>al</strong> at different<br />

frequencies (c<strong>al</strong>led <strong>al</strong>iases). The important distinction<br />

between the two types of <strong>al</strong>iasing is illustrated in Figure 2.<br />

Sample frequency ripple is a form of post<strong>al</strong>iasing that<br />

arises when the filter’s spectrum is significantly non-zero at<br />

lattice points in the frequency domain. The zero-frequency,<br />

or “DC”, component of the <strong>al</strong>ias spectra, which is very<br />

strong even for sign<strong>al</strong>s with little density variation, then appears<br />

in the interpolated volume as an oscillationat the sample<br />

frequency. Near-sample-frequency ripple, which occurs<br />

when filters are non-zero in the immediate vicinity of frequency<br />

domain lattice points, can <strong>al</strong>so be significant.<br />

3.2 Smoothing (“blur”)<br />

This term refers to the remov<strong>al</strong> of rapid variations in a<br />

sign<strong>al</strong> by spati<strong>al</strong> averaging. Some degree of smoothing is<br />

norm<strong>al</strong> during reconstruction, since practic<strong>al</strong> filters usu<strong>al</strong>ly<br />

start to cut off well before fN. In image processing, excessive<br />

smoothing results in a blurred image. In volume rendering,<br />

it results in loss of fine density structure. Theoretic<strong>al</strong>ly,<br />

smoothing is a filter defect, but in practice noisy volume<br />

data may benefit from some smoothing, since most of<br />

its fine structure is spurious. Also, smoothing is often necessary<br />

to combat Gibbs phenomenon (see below).<br />

3.3 Ringing (overshoot)<br />

Low-pass filtering of step discontinuities results in oscillations,<br />

or ringing, just before and after the discontinuity;<br />

this is the Gibbs phenomenon (see for example [14]). Severe<br />

ringing is not necessary for band-limitedness: Figure 3<br />

shows two band-limited approximations to a square wave,<br />

Imperfect reconstruction filter<br />

– fs<br />

Primary spectrum<br />

Figure 2: Pre<strong>al</strong>iasing (left) and post<strong>al</strong>iasing (right).<br />

ˆg<br />

Reconstructed spectrum<br />

Aliasing<br />

0 N f s f<br />

– f<br />

freq.<br />

N<br />

Alias spectrum<br />

one generated with an ide<strong>al</strong> low pass filter and the other<br />

with a filter that cuts off more gradu<strong>al</strong>ly but with the same<br />

ultimate cut-off frequency. Perceptu<strong>al</strong>ly, the latter seems<br />

preferable. 3<br />

When a sign<strong>al</strong> is being sampled, we have seen that it<br />

must be band-limited if we are to reconstruct it correctly.<br />

Natur<strong>al</strong> sign<strong>al</strong>s are not gener<strong>al</strong>ly band-limited, and so must<br />

be low-pass filtered before they are sampled (or, equiv<strong>al</strong>ently,<br />

the sampling operation must include some form of<br />

loc<strong>al</strong> averaging). The usu<strong>al</strong> assumption is that an ide<strong>al</strong> lowpass<br />

filter, cutting off at the Nyquist frequency, is optim<strong>al</strong>.<br />

However, we have just seen that such a filter causes ringing<br />

around any discontinuities, regardless of any subsequent<br />

sampling and reconstruction. If we then reconstruct the<br />

sampled sign<strong>al</strong> with an ide<strong>al</strong> reconstruction filter, we will<br />

end up with exactly the filtered sign<strong>al</strong> we sampled, which<br />

has ringing at the discontinuities. To avoid such problems,<br />

either the sampling filter or the reconstruction filter should<br />

have a gradu<strong>al</strong> cutoff if the sign<strong>al</strong> to be sampled contains<br />

discontinuities.<br />

sharp cutoff gradu<strong>al</strong> cutoff<br />

Figure 3: Band-limited square waves.<br />

3.4 Anisotropy<br />

If the reconstruction filter is not spheric<strong>al</strong>ly symmetric,<br />

the amount of smoothing, post<strong>al</strong>iasing, and ringing will<br />

vary according to the orientation of features in the volume<br />

with respect to the filter. Anisotropy manifests itself as an<br />

asymmetry in smoothing or post<strong>al</strong>iasing artifacts; in the absence<br />

of those, anisotropy can not occur. We therefore regard<br />

anisotropy as a secondary effect, and do not measure<br />

it separately.<br />

3 But the former is the optim<strong>al</strong> band-limited approximation under the<br />

L 2 norm, which demonstrates the dangers of assuming that the L 2 norm is<br />

<strong>al</strong>ways appropriate.

3.5 Cost<br />

The remaining critic<strong>al</strong> issue in filter design is that of<br />

cost. Any practic<strong>al</strong> filter takes a weighted sum of only a limited<br />

number of samples to compute the reconstruction at a<br />

particular point; that is, it is zero outside some finite region,<br />

c<strong>al</strong>led the region of support. If a filter’s region of support<br />

is contained within a cube of side length 2r, we c<strong>al</strong>l r the<br />

radius of the filter. In this paper, we consider a range of filters<br />

of different radii. It is important to re<strong>al</strong>ize that larger<br />

filters are gener<strong>al</strong>ly much more expensive: a trilinear interpolation<br />

involves a weighted sum of eight samples, while a<br />

tricubic filter involves 64. In gener<strong>al</strong>, the number of samples<br />

involved increases as the cube of the filter radius.<br />

The effect of filter radius on the run time of a volume<br />

rendering program depends on the <strong>al</strong>gorithm. Run times for<br />

simple ray tracing <strong>al</strong>gorithms tend to increase with the cost<br />

of each density c<strong>al</strong>culation, i. e., as the cube of the filter radius.<br />

Run times for splatting<strong>al</strong>gorithms, which precompute<br />

the two-dimension<strong>al</strong> “footprint” of a filter, tend to increase<br />

as the square of the filter radius. Lastly, when resampling an<br />

image or volume on a new lattice that is par<strong>al</strong>lel to the old<br />

lattice, separable filters (see Section 4.1) <strong>al</strong>low linear time<br />

complexity with respect to filter radius, using a multi-pass<br />

<strong>al</strong>gorithm that filters once <strong>al</strong>ong each axis direction.<br />

4 Filters to be An<strong>al</strong>yzed<br />

The filters we wish to an<strong>al</strong>yze f<strong>al</strong>l into two categories,<br />

separable and spheric<strong>al</strong>ly symmetric. However, a subclass<br />

of separable filters, the pass-band optim<strong>al</strong> filters, is defined<br />

in a different way from <strong>al</strong>l other filters, and is discussed separately<br />

below.<br />

In the defining equations that follow, we use the notation<br />

�P� to be one if P is true and 0 otherwise. All but the first<br />

two of the filters below need to be norm<strong>al</strong>ized by a constant<br />

so that their integr<strong>al</strong> over R 3 is equ<strong>al</strong> to one.<br />

4.1 Separable filters<br />

Separable filters can be written<br />

Included in this category are:<br />

h�x�y�z� � hs�x� hs�y� hs�z��<br />

� The trilinear filter. Trilinear interpolationis equiv<strong>al</strong>ent to<br />

convolution by a separable filter:<br />

hs�x� � �jxj � 1� �1 � jxj�<br />

� A two-parameter family of cubic filters, with parameters<br />

B and C, studied in two dimensions in [15]:<br />

1<br />

6<br />

8<br />

������<br />

hs�B�C��x� �<br />

������<br />

�12 � 9B � 6C�jxj 3 �<br />

��18 � 12B � 6C�jxj2 � �6 � 2B�<br />

if jxj �1,<br />

��B � 6C�jxj3 � �6B � 30C�jxj2 �<br />

��12B � 48C�jxj � �8B � 24C�<br />

if 1 �jxj �2,<br />

0 otherwise.<br />

This family includes the well-known B-spline (B � 1,<br />

C � 0) and Catmull-Rom spline (B � 0, C � 0�5). We<br />

confine our attention to filters in the range �B�C� � �0�0�<br />

to �1�1�.<br />

� The (truncated) Gaussian filter, which is often used in<br />

splatting <strong>al</strong>gorithms for volume rendering:<br />

hs�xm�σ��x� � �jxj � xm�e �x2 �2σ 2<br />

� The cosine bell filter, which has been widely used as a<br />

window (see below) in one-dimension<strong>al</strong> sign<strong>al</strong> processing<br />

[1], but can <strong>al</strong>so be used as a reconstruction filter in<br />

its own right:<br />

hs�xm��x� � �jxj � xm� �1 � cos�πx�xm��<br />

� Windowed sinc filters. These filters approximate the<br />

ide<strong>al</strong> sinc filter by a filter with finite support. Simply<br />

truncating the sinc at some distance leads to problems<br />

with ringing and post<strong>al</strong>iasing. Instead, the sinc is multiplied<br />

by a window function that drops smoothly to zero.<br />

This family approximates a sinc filter arbitrarily closely<br />

as the radius of the window is increased. We consider<br />

only one window, namely a cosine bell that reaches zero<br />

after two cycles of the sinc function. The defining equation<br />

of the windowed sinc is:<br />

hs�xm��x� � �jxj � xm��1 � cos�πx�xm�� sinc�4x�xm�<br />

4.2 Spheric<strong>al</strong>ly symmetric filters<br />

The v<strong>al</strong>ue of a spheric<strong>al</strong>ly symmetric filter depends<br />

only on the distance from the origin. Such filters can be<br />

written<br />

p<br />

h�x�y�z� � hr� x2 � y2 � z2�� The two such filters we investigate are:<br />

� a rotated version of the cosine bell. This is simply a filter<br />

whose hr is the same as the separable version’shs above.<br />

� a spheric<strong>al</strong>ly symmetric equiv<strong>al</strong>ent of the separable windowed<br />

sinc, which we c<strong>al</strong>l a windowed3-sinc. The 3-sinc<br />

(which is not the same as the separable sinc defined earlier)<br />

is the inverse Fourier transform of a function that is<br />

one inside a unit sphere and zero outside. For this filter,<br />

hr�rm��r� � �α � 1��1 � cos�πα���sinα � αcosα��α 3<br />

where α � r�rm.<br />

4.3 Pass-band optim<strong>al</strong> discrete filters<br />

These filters, described by Hsu and Marzetta [8] and<br />

recommended for use in volume rendering by Carlbom [3],<br />

are separable. Hence, the following discussion relates to<br />

one-dimension<strong>al</strong> interpolation;the three-dimension<strong>al</strong>filters<br />

are the products of three one-dimension<strong>al</strong> filters.<br />

All previous filters are defined by continuous functions;<br />

for any given interpolation position, a filter is centered<br />

on the point of interest, and its v<strong>al</strong>ues at sample points

provide the weights to apply to the data points. That set<br />

of weights can be regarded as a discrete filter that resamples<br />

the input data at new sample points displaced by some<br />

fixed offset from the origin<strong>al</strong> sampling points. Carlbom defines<br />

an optim<strong>al</strong> interpolation filter as a set of such discrete<br />

filters, each individu<strong>al</strong>ly optimized to minimize smoothing.<br />

For each interpolation offset, a weighted Chebyshev<br />

minimization program [9] is used to obtain a discrete filter<br />

whose Fourier transform has (approximately) a minimum<br />

weighted departure from ide<strong>al</strong> up to some frequency<br />

fm � fN.<br />

By computing a sequence of these fixed-length optim<strong>al</strong><br />

discrete filters for offsets in the range 0 - 1, and interpolating<br />

between adjacent members, we can construct an underlying<br />

continuous filter. Figure 4 shows two such underlying<br />

filters. 4 The design method handles only odd-length discrete<br />

filters, and thus the underlying filters are asymmetric,<br />

unlike <strong>al</strong>l other filters we study.<br />

A problem with this approach to filter design is that<br />

post<strong>al</strong>iasing is ignored, giving filters that are (in a sense)<br />

optim<strong>al</strong> in the pass band at the expense of relatively poor<br />

performance in the stop band.<br />

5-point<br />

filter<br />

1<br />

-3 2<br />

9-point<br />

filter<br />

1<br />

-5 -3 2 4<br />

Figure 4: Two pass-band-optim<strong>al</strong> filters<br />

5 Metrics for filter qu<strong>al</strong>ity<br />

5.1 Definitions<br />

One of our go<strong>al</strong>s in this research was to obtain some<br />

quantitativemeasures of filter qu<strong>al</strong>ity. As <strong>al</strong>ready indicated,<br />

choosing a filter requires trading off benefits and defects according<br />

to the the nature of the sign<strong>al</strong>, how it was sampled,<br />

how much noise is present, how costly a filter we can tolerate,<br />

and what rendering <strong>al</strong>gorithm is being used. For this<br />

reason, a single number describing the qu<strong>al</strong>ity of a filter—<br />

for example, the L 2 norm of the difference between a particular<br />

filter and the ide<strong>al</strong> filter—is not an appropriate go<strong>al</strong>.<br />

Accordingly, we define separate metrics for the most important<br />

filter qu<strong>al</strong>ities: smoothing, post<strong>al</strong>iasing, and overshoot<br />

(ringing).<br />

Form<strong>al</strong>ly, we define our smoothing metric, S, of a filter<br />

h, to be<br />

S�h� � 1 � 1<br />

Z<br />

jˆhj<br />

jRNj RN 2 dV�<br />

where RN is the Nyquist region, jRNj is the frequency-space<br />

volume of RN, and dV is an infinitesim<strong>al</strong> volume element in<br />

4 The discrete filters were computed using the program [9], modified as<br />

described in [8] and [3], and with fm v<strong>al</strong>ues of 0.3 and 0.4 for the 5-point<br />

and 9-point filters respectively, as in [3].<br />

RN. We define our post<strong>al</strong>iasing metric, P, to be<br />

P �h� � 1<br />

Z<br />

jˆhj<br />

jRNj<br />

2 dV�<br />

where RN is the complement of RN.<br />

The smoothing and post<strong>al</strong>iasing metrics measure the<br />

difference between a particular filter and our ide<strong>al</strong> filter inside<br />

and outside the Nyquist region respectively; the difference<br />

is measured in terms of energy. (The filter energy in<br />

a region is the integr<strong>al</strong> of the square of the filter over that<br />

region.)<br />

Our overshoot metric, O�h�, measures how much overshoot<br />

occurs if a filter h is used to band-limit the unit step<br />

function, ρs. More form<strong>al</strong>ly, O�h� � max�ρs �h��1, where<br />

ρs is 1 if x � 0 and 0 otherwise.<br />

5.2 Computation<br />

The smoothing and post<strong>al</strong>iasing metrics are based on<br />

the three-dimension<strong>al</strong> Fourier transforms of the filters. All<br />

except the pass-band optim<strong>al</strong> filters are even functions, for<br />

which the transform simplifies to the cosine transform [14]:<br />

ˆh�ωx�ωy�ωz� �<br />

Z<br />

R 3 h�x�y�z�cos�ωxx�cos�ωyy�cos�ωzz� dxdydz�<br />

For the separable filters, the transform further simplifies to<br />

the product of three one-dimension<strong>al</strong> transforms.<br />

For spheric<strong>al</strong>ly symmetric filters, the three-<br />

dimension<strong>al</strong> integr<strong>al</strong> can be simplified [2] to<br />

ˆhr�ωr� � 4π<br />

ωr<br />

Z ∞<br />

0<br />

R N<br />

rhr�r�sin�ωrr� dr�<br />

The smoothing metric is obtained directly from its definition<br />

by numeric<strong>al</strong> integration. The post<strong>al</strong>iasing metric is<br />

computed from the smoothing metric and the tot<strong>al</strong> filter energy.<br />

We can compute the tot<strong>al</strong> energy in the space domain,<br />

where the filter has finite support, since Parsev<strong>al</strong>’s theorem<br />

[14] shows that the result is the same in both space and frequency<br />

domains.<br />

Metrics for the pass-band optim<strong>al</strong> filters were computed<br />

from the underlying continuous filters illustrated in<br />

Figure 4.<br />

6 Filter Testing<br />

6.1 The test volume<br />

Although numerous datasets are publicly available, we<br />

are unaware of any that are correctly sampled from some<br />

exactly known sign<strong>al</strong>. This makes it difficult to ev<strong>al</strong>uate reconstruction<br />

techniques, since the ultimate measure of the<br />

qu<strong>al</strong>ity of a reconstruction is how closely it approximates<br />

the origin<strong>al</strong> sign<strong>al</strong>. Accordingly, we use a test sign<strong>al</strong><br />

where<br />

ρ�x�y�z� �<br />

�1 � sin�πz�2� � α�1 � ρr�<br />

2�1 � α�<br />

ρr�r� � cos�2π fM cos� πr<br />

2 ���<br />

p<br />

x2 � y2�� �

We sampled this sign<strong>al</strong> on a 40 by 40 by 40 lattice in<br />

the range �1 � x�y�z � 1, with fM � 6 and α � 0�25. The<br />

function has a slow sinusoid<strong>al</strong> variation in the z direction<br />

and a perpendicular frequency-modulated radi<strong>al</strong> variation.<br />

With the given parameters, it can be shown that the onedimension<strong>al</strong><br />

radi<strong>al</strong> sign<strong>al</strong> has 99.8% of its energy below a<br />

frequency of 10, and our an<strong>al</strong>ysis suggests that the spectrum<br />

of the volume as a whole is similarly band-limited. This<br />

makes it acceptable to point sample the function over the<br />

range �1 � x�y�z � 1 at 20 samples per unit distance. Note,<br />

however, that a significant amount of the function’s energy<br />

lies near the Nyquist frequency, making this sign<strong>al</strong> a very<br />

demanding filter test—<strong>al</strong>l our filters show some perceptible<br />

post<strong>al</strong>iasing and smoothing.<br />

Figure 5 shows a ray-traced image of the test volume’s<br />

isosurface ρ�x�y�z� � 0�5.<br />

Figure 5: The unsampled test sign<strong>al</strong>.<br />

6.2 Test image rendering<br />

To demonstrate the behaviour of the various filters, we<br />

display isosurfaces of reconstructed test volumes. It is important<br />

that we show the exact shape of the isosurface, including<br />

sm<strong>al</strong>l irregularities that can be seen only with detailed<br />

shading. This means we need a gradient that corresponds<br />

exactly to the reconstructed density function. The<br />

usu<strong>al</strong> schemes for rendering isosurfaces (e. g., Lorensen and<br />

Cline [13]) approximate the gradients using centr<strong>al</strong> differences<br />

at sample points and then interpolate those gradients;<br />

the resulting estimate does not track sm<strong>al</strong>l-sc<strong>al</strong>e changes in<br />

the isosurface orientation.<br />

Since our reconstructed density function is the convolution<br />

of the samples with the reconstruction filter, the density<br />

gradient is the convolution of the samples with the gradient<br />

of the filter. For any differentiable filter h, we can thus<br />

obtain an exact formula for the gradient of the reconstructed<br />

function, which can be ev<strong>al</strong>uated at any point in the volume.<br />

For rendering, we use a ray tracer that displays isosurfaces<br />

of arbitrary functions by using a root-finding <strong>al</strong>gorithm<br />

to locate the first crossing of the isosurface level <strong>al</strong>ong<br />

each ray.<br />

Post<strong>al</strong>iasing<br />

0.1<br />

0.08<br />

0.06<br />

0.04<br />

0.02<br />

0<br />

pass-band<br />

optim<strong>al</strong><br />

filters<br />

9-pt<br />

windowed sincs<br />

r=3.79<br />

(0,0.5)<br />

= Catmull-Rom<br />

7-pt<br />

(0,1)<br />

��� ��� ��<br />

5-pt<br />

r=4.28<br />

r=4.78<br />

(0,0)<br />

Trilinear<br />

(1,0)<br />

= B-Spline<br />

0.2 0.4 0.6 0.8 1<br />

Smoothing<br />

Figure 6: Smoothing and post<strong>al</strong>iasing metrics.<br />

7 Results<br />

7.1 Smoothing and Post<strong>al</strong>iasing<br />

Figure 6 shows the smoothing and post<strong>al</strong>iasing metrics<br />

for the trilinear filter, the family of cubic filters, a range of<br />

windowed sincs, and three pass-band optim<strong>al</strong> filters. The<br />

metrics for our ide<strong>al</strong> filter would be (0,0), <strong>al</strong>though, as discussed<br />

in Section 3.3, some smoothing is usu<strong>al</strong>ly required,<br />

if only to combat overshoot.<br />

Cubic Filters. This family is shown in the figure as a<br />

10 by 10 mesh. The mapping from B-C space to smoothingpost<strong>al</strong>iasing<br />

space is not one-to-one: the �1�1� corner of<br />

the mesh is “folded” over. The B-spline smoothes the most<br />

heavily, but has low post<strong>al</strong>iasing, while the Catmull-Rom<br />

spline produces much less smoothing but has poor post<strong>al</strong>iasing<br />

properties. The images in Figures 9(a) and 9(b) support<br />

these measurements: the B-spline smoothes out the<br />

large variations in the sign<strong>al</strong>—the waves get sh<strong>al</strong>lower with<br />

increasing frequency—and the Catmull-Rom preserves the<br />

depth of the waves at the cost of <strong>al</strong>iasing, which shows up<br />

as sc<strong>al</strong>loped crests.<br />

According to our metrics, the filters <strong>al</strong>ong the fold<br />

should be best. However, Figure 9(c) shows the test volume<br />

reconstructed using one such filter (B � 0�5, C � 0�85). We<br />

can see that, while the over<strong>al</strong>l geometry is reproduced quite<br />

faithfully, the surface has a dimpled texture, due to nearsample-frequency<br />

ripple. The ripples, <strong>al</strong>though of low amplitude,<br />

are of high frequency, and so produce large loc<strong>al</strong><br />

variations in gradient, and therefore in shading. It is perhaps<br />

a limitation of our post<strong>al</strong>iasing metric that it weights<br />

leakage at <strong>al</strong>l frequencies equ<strong>al</strong>ly.<br />

Our experience corroborates the space-domain convergence<br />

an<strong>al</strong>ysis of Mitchell and Netrav<strong>al</strong>i [15], which suggests<br />

that filters <strong>al</strong>ong the line 2C � B � 1 (which includes<br />

Catmull-Rom and B-splines as extreme cases) are among<br />

the best: we find that these filters have negligible nearsample-frequency<br />

ripple. But we see no reason in gener<strong>al</strong><br />

to prefer any particular filter <strong>al</strong>ong that line a priori, since<br />

we must <strong>al</strong>ways settle for a tradeoff between smoothing and<br />

post<strong>al</strong>iasing.

Trilinear filter. The trilinear filter is plotted in Figure<br />

6. It can be seen that its metrics are the same as for<br />

a cubic of approximately B � 0�26, C � 0�1. Images for<br />

these two filters are shown in Figure 9(d) and 9(e). They<br />

look similar, except that the trilinear filter introduces gradient<br />

discontinuities, which our metrics do not measure.<br />

Windowed sinc filter. The metrics for our particular<br />

cosine-windowed sinc are shown in Figure 6 for a range of<br />

radii. It can be seen from the figure that these filters are<br />

in a sense superior to the entire family of cubics, since for<br />

any cubic filter there are windowed sincs with both better<br />

post<strong>al</strong>iasing and better smoothing. However, because of<br />

their size, they are much more expensive to use than the cubics.<br />

Also, because sample-frequency ripple is so offensive,<br />

only the labelled points are of interest, since they are the<br />

only ones for which the filter’s spectrum has zeroes at the<br />

nearest lattice points (see Section 3.1).<br />

The results for a radius of 4.78 are shown in Figure 9(f).<br />

The wave structure is free of both sc<strong>al</strong>loping and excessive<br />

smoothing. (As in <strong>al</strong>l the images, we must ignore the pronounced<br />

effects of filtering the discontinuous outer edge of<br />

the volume.) However, the filter’s anisotropy causes significant<br />

variations in the heights of the circular crests: the filter<br />

smoothes more in directions near the coordinate axes than<br />

<strong>al</strong>ong diagon<strong>al</strong>s.<br />

The results for a radius of 4.28 are similar, but with<br />

slightly more post<strong>al</strong>iasing. Both these filters are roughly<br />

two orders of magnitude more expensive (in an O�r 3 � <strong>al</strong>gorithm)<br />

than trilinear interpolation.<br />

Pass-band optim<strong>al</strong> filters The metrics for three different<br />

pass-band optim<strong>al</strong> filters are shown in Figure 6. As expected,<br />

their excellent pass band performance (low smoothing)<br />

is achieved at the expense of relatively poor post<strong>al</strong>iasing.<br />

The 5-point optim<strong>al</strong> filter is wider than the cubic filters<br />

(twice the cost, in an O�r 3 � <strong>al</strong>gorithm) and the 9-point filter<br />

is comparable in cost with the windowed sinc of radius<br />

4.78. Also, the pass-band optim<strong>al</strong> filters are more difficult<br />

to c<strong>al</strong>culate and manipulate gener<strong>al</strong>ly (e.g., to obtain gradients)<br />

than other filters, so we do not recommend them for<br />

gener<strong>al</strong>-purpose reconstruction. Their primary use is probably<br />

for image and volume resampling at a fixed offset when<br />

minim<strong>al</strong> smoothing is the go<strong>al</strong>.<br />

Other filters. Table 1 shows the smoothing and post<strong>al</strong>iasing<br />

metrics for some representative separable Gaussian<br />

and separable cosine bell filters. From the metrics, and from<br />

sever<strong>al</strong> test images, we conclude that the cubics gener<strong>al</strong>ly<br />

perform better for similar cost and are more flexible. One<br />

exception is the cosine bell of radius 1.5, which, as the metrics<br />

in Table 1 suggest, produces images similar to a Bspline,<br />

but at a lower cost. The filter does introduce slight<br />

loc<strong>al</strong> gradient variations, but in many rendering contexts<br />

these would not be apparent.<br />

We investigated a range of spheric<strong>al</strong>ly symmetric filters.<br />

However, since the zeroes of their spectra f<strong>al</strong>l on<br />

Filter Radius Smooth. Post<strong>al</strong>ias.<br />

Cosine bell 1.0 0.67 0.096<br />

Cosine bell 1.5 0.88 0.002<br />

Cosine bell 2.0 0.95 0.00008<br />

Gauss. σ � 0�50 2.5 0.81 0.014<br />

Gauss. σ � 0�60 2.0 0.90 0.002<br />

Gauss. σ � 0�75 2.5 0.95 0.0001<br />

Table 1: Miscellaneous separable filter metrics.<br />

spheric<strong>al</strong> surfaces, rather than axis-<strong>al</strong>igned planes, it proved<br />

impossible to adequately reject sample-frequency ripple<br />

with filters of any reasonable cost. For very high-qu<strong>al</strong>ity<br />

reconstruction, the isotropy of spheric<strong>al</strong>ly symmetric windowed<br />

sinc filters could be a significant advantage.<br />

overshoot %<br />

8<br />

0<br />

1<br />

B<br />

Figure 7: Overshoot metrics for cubic filters.<br />

7.2 Overshoot<br />

Our overshoot metrics for the cubic filters are graphed<br />

in Figure 7. As discussed in Section 3.3, overshoot is primarily<br />

of concern with volumes containing inadequately<br />

smoothed discontinuities;filters with high overshootshould<br />

be avoided in such cases. Figure 8 illustrates the effects of<br />

reconstructing a point-sampled cube with a B-spline, which<br />

has no overshoot, and with the cubic filter most prone to<br />

overshoot, B � 0, C � 1.<br />

8 Conclusions<br />

Interpolation underpins <strong>al</strong>l volume rendering <strong>al</strong>gorithms<br />

working from sampled sign<strong>al</strong>s. We have considered<br />

the family of interpolationschemes that can be expressed as<br />

convolution of a sample lattice with a filter.<br />

The artifacts resulting from imperfect reconstruction<br />

f<strong>al</strong>l into three main categories: smoothing, post<strong>al</strong>iasing,<br />

Figure 8: A point-sampled cube reconstructed with a<br />

B-spline (left) and with the cubic (0,1).<br />

0<br />

0<br />

C<br />

1

and overshoot. Since reconstruction is necessarily imperfect,<br />

choosing a filter must involve tradeoffs between these<br />

three artifacts.<br />

We have defined metrics to quantify the characteristics<br />

of a filter in terms of these artifacts. In gener<strong>al</strong>, the metrics<br />

correlate well with the observed behavior of the filters, <strong>al</strong>though<br />

the post<strong>al</strong>iasing metric does not adequately address<br />

the troublesome problem of ripple in the reconstructed sign<strong>al</strong><br />

at or near the sample frequency.<br />

Trilinear interpolation is certainly the cheapest option,<br />

and will likely remain the method of choice for time-critic<strong>al</strong><br />

applications. Where higher qu<strong>al</strong>ity reconstruction is required,<br />

especi<strong>al</strong>ly in the presence of rapidly varying sign<strong>al</strong>s,<br />

the family of cubics is recommended. Cubics offer<br />

considerable flexibility in the tradeoff between smoothing<br />

and post<strong>al</strong>iasing. For applications in which near-samplefrequency<br />

ripple could be a problem, we recommend cubics<br />

for which B � 1�2C; otherwise, filters <strong>al</strong>ong the “fold” line<br />

in Figure 6 are preferred.<br />

For the most demanding reconstruction problems, windowed<br />

sincs can provide arbitrarily good reconstruction.<br />

Their large radii make them extremely expensive in O�r 3 �<br />

<strong>al</strong>gorithms, such as ray-tracing, but they could certainly be<br />

used in an O�r� resampling <strong>al</strong>gorithm. The radius should be<br />

chosen so that the Fourier transform is zero at the sampling<br />

frequency, in order to eliminate sample-frequency ripple.<br />

Spheric<strong>al</strong>ly symmetric filters tend to produce samplefrequency<br />

ripple, and do not seem to offer any significant<br />

advantages over separable filters for most applications.<br />

8.1 Future work<br />

Although the metrics presented in this paper provide a<br />

useful guideline, we believe they can be improved. In particular,<br />

the post<strong>al</strong>iasing metric could be made more sensitive<br />

to the frequencies that produce the most objectionable<br />

artifacts.<br />

Given the better reconstruction techniques outlined in<br />

this paper, it should be possible to represent volume data<br />

with a sparser sampling lattice. Using a precise definition<br />

of the reconstructed sign<strong>al</strong> gives us a framework in which<br />

to ev<strong>al</strong>uate errors introduced by such subsampling or other<br />

forms of data compression.<br />

9 Acknowledgements<br />

This work was supported by the NSF/ARPA Science<br />

and Technology Center for Computer Graphics and Scientific<br />

Visu<strong>al</strong>ization(ASC-8920219). We gratefully acknowledge<br />

the generous equipment grants from Hewlett-Packard<br />

Corporation, on whose workstations the images in this paper<br />

were generated. We especi<strong>al</strong>ly wish to thank James<br />

Durkinfor providingsupport and motivationthroughoutthe<br />

research.<br />

References<br />

[1] K. G. Beauchamp. Sign<strong>al</strong> Processing. George & Allen Unwin<br />

Ltd., 1973.<br />

[2] S. Bochner and K. Chandrasekharan. Fourier Transforms.<br />

Princeton University Press, 1949.<br />

[3] Ingrid Carlbom. Optim<strong>al</strong> filter design for volume reconstruction<br />

and visu<strong>al</strong>ization. In Visu<strong>al</strong>ization ’93, pages 54–61,<br />

October 1993.<br />

[4] H. E. Cline, W. E. Lorensen, S. Ludke, C. R. Crawford, and<br />

B. C. Teeter. Two <strong>al</strong>gorithms for the three-dimension<strong>al</strong> reconstruction<br />

of tomograms. Medic<strong>al</strong> Physics, 15(3):320–<br />

327, May/June 1988.<br />

[5] Dan E. Dudgeon and Russel M. Mersereau. Multidimension<strong>al</strong><br />

Sign<strong>al</strong> Processing. Prentice-H<strong>al</strong>l, 1984.<br />

[6] J. D. Foley, A. van Dam, S. K. Feiner, and J. F. Hughes. Computer<br />

Graphics: Principles and Practices (2nd Edition). Addison<br />

Wesley, 1990.<br />

[7] Rafael C. Gonz<strong>al</strong>ez and Paul Wintz. Digit<strong>al</strong> Image Processing<br />

(2nd Ed.). Addison-Wesley, Reading, MA, 1987.<br />

[8] Kai Hsu and ThomasL. Marzetta. Velocity filtering of acoustic<br />

well logging waveforms. IEEE Transactions on Acoustics,<br />

Speech and Sign<strong>al</strong> Processing, 37(2):265–274, February<br />

1989.<br />

[9] J.H.McClellan, T.W.Parks, and L.R.Rabiner. FIR linear<br />

phase filter design program. In IEEE ASSP Society Digit<strong>al</strong><br />

Sign<strong>al</strong> Processing Committee, editor, Programs for Digit<strong>al</strong><br />

Sign<strong>al</strong> Processing, pages 5.1-1–5.1-13. IEEE Press, 1979.<br />

[10] Robert G. Keys. Cubic convolution interpolation for digit<strong>al</strong><br />

image processing. IEEE Trans. Acoustics, Speech, and Sign<strong>al</strong><br />

Processing, ASSP-29(6):1153–1160, December 1981.<br />

[11] David Laur and Pat Hanrahan. Hierarchic<strong>al</strong> splatting: A<br />

progressive refinement <strong>al</strong>gorithm for volume rendering. In<br />

Thomas W. Sederberg, editor, Computer Graphics (SIG-<br />

GRAPH ’91 Proceedings), volume 25, pages 285–288, July<br />

1991.<br />

[12] Marc Levoy. Display of surfaces from volume data. IEEE<br />

Computer Graphics and Applications, 8(3):29–37, May<br />

1988.<br />

[13] William E. Lorensen and Harvey E. Cline. Marching cubes:<br />

A high resolution 3D surface construction <strong>al</strong>gorithm. In<br />

Maureen C. Stone, editor, Computer Graphics (SIGGRAPH<br />

’87 Proceedings), volume 21, pages 163–169, July 1987.<br />

[14] Clare McGillem and George Cooper. Continuous and Discrete<br />

Sign<strong>al</strong> and System An<strong>al</strong>ysis. Holt, Rinehart and Winston,<br />

1984.<br />

[15] Don P. Mitchell and Arun N. Netrav<strong>al</strong>i. Reconstruction filters<br />

in computer graphics. In John Dill, editor, Computer<br />

Graphics (SIGGRAPH ’88 Proceedings), volume 22, pages<br />

221–228, August 1988.<br />

[16] Stephen K. Park and Robert A. Schowengerdt. Image reconstruction<br />

by parametric cubic convolution. Computer Vision,<br />

Graphics, and Image Processing, 23(3):258–272, September<br />

1983.<br />

[17] Lee Westover. Footprint ev<strong>al</strong>uation for volume rendering. In<br />

Forest Baskett, editor, Computer Graphics (SIGGRAPH ’90<br />

Proceedings), volume 24, pages 367–376, August 1990.<br />

[18] Jane Wilhelms and Allen Van Gelder. Topologic<strong>al</strong> consideration<br />

in isosurface generation. Technic<strong>al</strong> report, University<br />

of C<strong>al</strong>ifornia, Santa Cruz, April 1990.<br />

[19] Brian Wyvill, Craig McPheeters, and Geoff Wyvill. Data<br />

structure for soft objects. The Visu<strong>al</strong> Computer, 2(4):227–<br />

234, 1986.

(a) B-spline (b) Catmull-Rom<br />

(c) Cubic (B � 0�5, C � 0�85) (d) Trilinear<br />

(e) Cubic (B � 0�26, C � 0�1) (f) Windowed sinc (r � 4�8)<br />

Figure 9: Isosurface images of the test sign<strong>al</strong> reconstructed using various filters.

Please reference the following QuickTime movies located in the MOV<br />

directory:<br />

CIRCLE.MOV..(Macintosh only)<br />

LINE.MOV (Macintosh only)<br />

Copyright © 1994 Cornell University Program of Computer Graphics<br />

These two animations illustrate the effects of using a range of cubic filters to<br />

reconstruct the sampled test sign<strong>al</strong> described in the paper. They show images<br />

generated using filters <strong>al</strong>ong two paths through the (B, C) parameter space of<br />

the cubics. The “line” movie is a sequence of reconstructions using filters<br />

<strong>al</strong>ong the line segment joining (B, C) = (1, 0), the B-spline filter, with (B, C)<br />

= (0, 0.5), the Catmull-Rom filter. This movie makes the most sense played<br />

in a “loop back and forth” mode. The second movie, the “circle” movie, is a<br />

sequence moving around a circle inscribed in the square with corners at (0,<br />

0), (1, 0), (1, 1), and (0, 1). This one makes more sense played in a “loop<br />

from beginning to end” mode. The movies show that there is a continuous<br />

range of cubic filters, with varying properties, to choose from.<br />

QuickTime is a trademark of Apple Computer, Inc.

Visu<strong>al</strong>izing Flow with Quaternion Frames<br />

Abstract<br />

Flow �elds� geodesics� and deformed volumes are<br />

natur<strong>al</strong> sources of families of space curves that can<br />

be characterized by intrinsic geometric properties such<br />

as curvature� torsion� and Frenet frames. By express�<br />

ing a curve�s moving Frenet coordinate frame as an<br />

equiv<strong>al</strong>ent unit quaternion� we reduce the number of<br />

components that must be displayed from nine with six<br />

constraints to four with one constraint. We can then<br />

assign a color to each curve point by dotting its quater�<br />

nion frame with a 4D light vector� or we can plot<br />

the frame v<strong>al</strong>ues separately as a curve in the three�<br />

sphere. As examples� we examine twisted volumes used<br />

in topology to construct knots and tangles� a spheric<strong>al</strong><br />

volume deformation known as the Dirac string trick�<br />

and streamlines of 3D vector �ow �elds.<br />

1 Introduction<br />

We propose new tools for the visu<strong>al</strong>ization of a class<br />

of volume data that includes streamlines derived from<br />

3D vector �eld data as well as deformed volumes. The<br />

common feature of such data that we exploit is the<br />

existence of a family of static or time�varying space<br />

curves that do not intersect� but which may exhibit<br />

extremely complex geometry� typic<strong>al</strong>ly� portions of<br />

neighboring curves are similar in some regions of the<br />

volume� but become inhomogeneous when interesting<br />

phenomena are taking place. Our approach is based<br />

on the observation that families of curves in three�<br />

space possess sever<strong>al</strong> intrinsic but loc<strong>al</strong>ly computable<br />

geometric properties� these include the curvature� the<br />

torsion� and a loc<strong>al</strong> coordinate frame� the Frenet frame<br />

�<strong>al</strong>so c<strong>al</strong>led the Frenet�Serret frame�� de�ned by the<br />

tangent� norm<strong>al</strong> and binorm<strong>al</strong> at each point of each<br />

curve.<br />

While it is awkward to represent the Frenet frame<br />

itself visu<strong>al</strong>ly in high�density data because it consists<br />

of three 3D vectors� or nine components� it has only<br />

three independent degrees of freedom� it is well known<br />

that these three degrees of freedom can conveniently<br />

be represented by an equiv<strong>al</strong>ent unit quaternion that<br />

Andrew J. Hanson and Hui Ma<br />

Department of Computer Science<br />

Indiana University<br />

Bloomington� IN 47405<br />

corresponds� in turn� to a point in the three�sphere<br />

�see� e.g.� �15��. We exploit the quaternion representa�<br />

tion of rotations to reexpress the Frenet frame of a 3D<br />

space curve as an elegant unit four�vector �eld over<br />

the curve� the resulting quaternion Frenet frame can<br />

be represented as a curve by itself� or can be used to<br />

assign a color to each curve point using an interactive<br />

4D lighting model.<br />

2 Frenet Frames<br />

The Frenet frame is uniquely de�ned for �<strong>al</strong>most�<br />

every point on a 3D space curve �see� e.g.� �5� 6�� and<br />

<strong>al</strong>so �1� 8��. If �x�s� is any smooth space curve� its<br />

tangent� binorm<strong>al</strong>� and norm<strong>al</strong> vectors at a point on<br />

the curve are given by<br />

�T�s� �<br />

�B�s� �<br />

�x 0 �s�<br />

k�x 0�s�k �x 0�s� � �x 00�s� k�x 0�s� � �x 00�s�k �N�s� � �B�s� � �T�s� �<br />

�1�<br />

The Frenet frame obeys the following di�erenti<strong>al</strong> equa�<br />

tion in the parameter s�<br />

2<br />

4<br />

3<br />

�T 0�s� �N 0�s� �B 0 5 � v�s�<br />

�s�<br />

2<br />

4<br />

0 ��s� 0<br />

���s� 0 ��s�<br />

0 ���s� 0<br />

3 2<br />

5 4<br />

�T�s�<br />

�N�s�<br />

�B�s�<br />

�2�<br />

where v�s� � k�x 0 �s�k is the sc<strong>al</strong>ar magnitude of the<br />

curve derivative� ��s� is the curvature� and ��s� is the<br />

torsion. All these quantities can in principle be c<strong>al</strong>cu�<br />

lated in terms of the parameterized or numeric<strong>al</strong> loc<strong>al</strong><br />

v<strong>al</strong>ues of �x�s� and its �rst three derivatives as follows�<br />

��s� � k�x0 �s� � �x 00 �s�k<br />

k�x 0 �s��k 3<br />

��s� � ��x0 �s� � �x 00 �s�� � �x 000 �s�<br />

k�x 0 �s� � �x 00 �s�k 2<br />

�<br />

3<br />

5<br />

�3�<br />

If we are given a non�vanishing curvature and a torsion<br />

as smooth functions of s� we can theoretic<strong>al</strong>ly integrate

the system of equations to �nd the unique numeric<strong>al</strong><br />

v<strong>al</strong>ues of the corresponding space curve �up to a rigid<br />

motion�.<br />

3 Theory of Quaternion Frames<br />

A quaternion frame is a unit�length four�vector<br />

q � �q0� q1� q2� q3� � �q0� �q� that corresponds to ex�<br />

actly one 3D coordinate frame and is characterized by<br />

the following properties�<br />

� Unit Norm. The components of a unit quater�<br />

nion obey the constraint�<br />

�q0� 2 � �q1� 2 � �q2� 2 � �q3� 2 � 1 �4�<br />

and therefore lie on S 3 � the three�sphere.<br />

� Multiplication rule. The quaternion product<br />

of two quaternions q and p� which we write as<br />

q � p� takes the form<br />

2 3<br />

�q � p�0 6<br />

6<br />

�q � p� 7<br />

1 7<br />

4 �q � p� 5<br />

2<br />

�q � p�3 �<br />

2<br />

6<br />

6<br />

4<br />

q0p0 � q1p1 � q2p2 � q3p3<br />

q0p1 � p0q1 � q2p3 � q3p2<br />

q0p2 � p0q2 � q3p1 � q1p3<br />

q0p3 � p0q3 � q1p2 � q2p1<br />

3<br />

7<br />

7<br />

5 �<br />

This rule is isomorphic to multiplication in the<br />

group SU�2�� the double covering of the ordinary<br />

3D rotation group SO�3�.<br />

� Mapping to 3D rotations. Every possible 3D<br />

rotation R �a 3�3 orthogon<strong>al</strong> matrix� can be con�<br />

structed from either of two related quaternions�<br />

q � �q0� q1� q2� q3� or �q � ��q0� �q1� �q2� �q3��<br />

using the quadratic relationship�<br />

R �<br />

2<br />

4<br />

Q�� � �� D � �123� D � �312�<br />

D � �123� Q�� � �� D � �231�<br />

D � �312� D � �231� Q�� � ��<br />

3<br />

5 �<br />

�5�<br />

where Q����� � q 2 0 �q2 1 �q2 2 �q2 3 and D � �ijk� �<br />

2q iq j � 2q0q k.<br />

� Quaternion Frenet Frame. All 3D coordinate<br />

frames can be expressed in the form of quater�<br />

nions using Eq. �5�� if we assume the columns<br />

of Eq. �5� are the vectors � �T� �N� �B�� respectively�<br />

one can show �see �8�� that jq 0 �s�j takes the form<br />

2<br />

6<br />

6<br />

4<br />

q 0<br />

0<br />

q 0 1<br />

q 0 2<br />

q 0 3<br />

3<br />

7 v<br />

7 � 5 2<br />

2<br />

6<br />

6<br />

4<br />

0 �� 0 ��<br />

� 0 � 0<br />

0 �� 0 �<br />

� 0 �� 0<br />

3<br />

7<br />

7<br />

5 �<br />

2<br />

q0<br />

3<br />

6<br />

6<br />

4<br />

q1<br />

q2<br />

7<br />

7<br />

5 �<br />

q3<br />

�6�<br />

As a check� we verify that the matrices<br />

A �<br />

B �<br />

C �<br />

2<br />

4<br />

2<br />

4<br />

2<br />

4<br />

q0 q1 �q2 �q3<br />

q3 q2 q1 q0<br />

�q2 q3 �q0 q1<br />

�q3 q2 q1 �q0<br />

q0 �q1 q2 �q3<br />

q1 q0 q3 q2<br />

q2 q3 q0 q1<br />

�q1 �q0 q3 q2<br />

q0 �q1 �q2 q3<br />

give rise directly to the usu<strong>al</strong> quantities� jAj�jq 0 j �<br />

�T 0 � v� �N� jBj � jqj � �N 0 � �v� �T � v� �B� jCj �<br />

jdqj � �B 0 � �v� �N� where we have applied Eq. �6�<br />

to get the �n<strong>al</strong> terms.<br />

Just as the Frenet equations may be integrated ex�<br />

plicitly to generate a unique moving frame with its<br />

space curve for non�vanishing ��s� �6�� we could in<br />

principle integrate the quaternion equations� Eq. �6��<br />

to get the needed information� Equation �6�� having<br />

only four components and automatic<strong>al</strong>ly enforcing the<br />

constraint Eq. �4�� is much simpler for numeric<strong>al</strong> an<strong>al</strong>�<br />

ysis than Eq. �2�.<br />

4 Assigning Smooth Quaternion<br />

Frames<br />

The Frenet frame equations are pathologic<strong>al</strong>� for<br />

example� when the curve is perfectly straight for some<br />

distance or when the curvature vanishes momentarily.<br />

Thus� re<strong>al</strong> numeric<strong>al</strong> data for space curves will fre�<br />

quently exhibit behaviors that make the assignment<br />

of a smooth Frenet frame di�cult or impossible. In<br />

addition� since any given 3 � 3 orthogon<strong>al</strong> matrix cor�<br />

responds to two quaternions that di�er in sign� meth�<br />

ods of deriving a quaternion from a Frenet frame are<br />

intrinsic<strong>al</strong>ly ambiguous. Therefore� we prescribe the<br />

following procedure for assigning smooth quaternion<br />

Frenet frames to points on a space curve�<br />

� Assign an initi<strong>al</strong> orientation to the beginning of<br />

each curve. Appropriate choices may depend on<br />

context.<br />

� Given a sequence of points for a sampled space<br />

curve� compute the numeric<strong>al</strong> derivatives at a<br />

given point and use those to compute the Frenet<br />

frame according to Eq. �2�. If any critic<strong>al</strong> quanti�<br />

ties vanish� keep the frame of the previous point.<br />

� Check the dot product of the previous binorm<strong>al</strong><br />

�B�s� with the current v<strong>al</strong>ue� if it is much less than<br />

one� choose a correction procedure to handle this<br />

3<br />

5<br />

3<br />

5<br />

3<br />

5

singular point. Among the correction procedures<br />

we have considered are �1� simply jump discontin�<br />

uously to the next frame to indicate the presence<br />

of a point with very sm<strong>al</strong>l curvature� �2� create an<br />

interpolating set of points and perform a geodesic<br />

interpolation �15�� or �3� deform the curve slightly<br />

before and after the singular point to �ease in�<br />

with a gradu<strong>al</strong> rotation of the frame. Creating a<br />

jump in the frame assignment is the easiest� and<br />

is an intuitively reasonable choice� since the ge�<br />

ometry is changing dramatic<strong>al</strong>ly at such points.<br />

� Apply a suitable <strong>al</strong>gorithm such as that of Shoe�<br />

make �15� to compute a candidate for the quater�<br />

nion corresponding to the Frenet frame.<br />

� If the 3 � 3 Frenet frame is smoothly changing�<br />

make one last check on the 4D dot product of the<br />

quaternion frame with its own previous v<strong>al</strong>ue� if<br />

there is a sign change� choose the opposite sign to<br />

keep the quaternion smoothly changing �this will<br />

have no e�ect on the corresponding 3 � 3 Frenet<br />

frame�. If this dot product is near zero instead<br />

of �1� you have detected a radic<strong>al</strong> change in the<br />

Frenet frame which should have been noticed in<br />

the previous tests.<br />

� If the space curves of the data are too coarsely<br />

sampled to give the desired smoothness in the<br />

quaternion frames� but are still close enough<br />

to give consistent qu<strong>al</strong>itative behavior� one may<br />

choose to smooth out the intervening frames using<br />

the desired level of recursive slerping �15� to get<br />

smoothly splined intermediate quaternion frames.<br />

In Figure 1� we plot an example of a torus knot�<br />

a smooth space curve with everywhere nonzero cur�<br />

vature� together with its associated Frenet frames� its<br />

quaternion frame v<strong>al</strong>ues� and the path of its quater�<br />

nion frame �eld projected from four�space. Figure 2<br />

plots the same information� but this time for a curve<br />

with a discontinuous frame that �ips too quickly at a<br />

zero�curvature point. This space curve has two planar<br />

parts drawn as though on separate pages of a partly�<br />

open book and meeting smoothly on the �crack� be�<br />

tween pages. We see the obvious jump in the Frenet<br />

and quaternion frame graphs at the meeting point� if<br />

the two curves are joined by a long straight line� the<br />

Frenet frame is ambiguous and may option<strong>al</strong>ly be de�<br />

clared unde�ned in this segment.<br />

Alternative Frames. We have chosen to de<strong>al</strong> di�<br />

rectly with the more familiar properties and anoma�<br />

lies of the standard Frenet frame in the treatment pre�<br />

sented here� however� it is worth noting that <strong>al</strong>terna�<br />

tive methods such as the par<strong>al</strong>lel transport frame for�<br />

mulation proposed by Bishop �1� can be used to avoid<br />

frame discontinuities. The quaternion frame method<br />

extends <strong>al</strong>so to par<strong>al</strong>lel transport frames �8�.<br />

5 Visu<strong>al</strong>ization Methods<br />

Once we have c<strong>al</strong>culated the quaternion Frenet<br />

frame� the curvature� and the torsion for a point on the<br />

curve� we have a family of tensor and sc<strong>al</strong>ar quantities<br />

that we may exploit to expose the intrinsic proper�<br />

ties of a single curve. Furthermore� and probably of<br />

greater interest� we <strong>al</strong>so have the ability to make visu<strong>al</strong><br />

comparisons of the similarity and di�erences among<br />

families of neighboring space curves.<br />

The Frenet frame �eld of a set of streamlines is po�<br />

tenti<strong>al</strong>ly a rich source of detailed information about<br />

the data. However� the Frenet frame is unsuitable<br />

for direct superposition on dense data due to the<br />

high clutter resulting when its three orthogon<strong>al</strong> 3�<br />

vectors are displayed� direct use of the frame is only<br />

practic<strong>al</strong> at very sparse interv<strong>al</strong>s� which prevents the<br />

viewer from grasping important structur<strong>al</strong> details and<br />

changes at a glance. The 4�vector quaternion frame<br />

is potenti<strong>al</strong>ly a more straightforward and �exible ba�<br />

sis for frame visu<strong>al</strong>izations� below� we discuss sever<strong>al</strong><br />

<strong>al</strong>ternative approaches to the exploitation of quater�<br />

nion frames for data consisting of families of smooth<br />

curves.<br />

5.1 Direct Three�Sphere Plot of Quater�<br />

nion Frame Fields<br />

We now make a cruci<strong>al</strong> observation� For each 3D<br />

space curve� the quaternion frame de�nes a completely<br />

new 4D space curve lying on the unit three�sphere em�<br />

bedded in 4D Euclidean space.<br />

These curves can have entirely di�erent geometry<br />

from the origin<strong>al</strong> space curve� since distinct points on<br />

the curve correspond to distinct orientations. Families<br />

of space curves with exactly the same shape will map<br />

to the same quaternion curve� while curves that f<strong>al</strong>l<br />

away from their neighbors will stand out distinctly in<br />

the three�sphere plot. Regions of vanishing curvature<br />

will show up as discontinuous gaps in the otherwise<br />

continuous quaternion frame �eld curves.<br />

Figures 1d and 2d present elementary examples of<br />

the three�sphere plot. More complex examples are in�<br />

troduced in Section 7 and shown in Figures 3b� 4b�<br />

and 5b. The quaternion frame curves displayed in<br />

these plots are 2D projections of two overlaid 3D solid<br />

b<strong>al</strong>ls corresponding to the �front� and �back� hemi�<br />

spheres of S 3 . The 3�sphere is projected from 4D to<br />

3D <strong>al</strong>ong the 0�th axis� so the �front� b<strong>al</strong>l has points<br />

with 0 � q0 � �1� and the �back� b<strong>al</strong>l has points

�a� �b�<br />

�c� �d�<br />

Figure 1� �a� Projected image of a 3D �3�5� torus knot. �b� Selected Frenet frame components displayed <strong>al</strong>ong<br />

the knot. �c� The corresponding smooth quaternion frame components. �d� The path of the quaternion frame<br />

components in the three�sphere projected from four�space. Gray sc<strong>al</strong>es indicate the 0�th component of the curve�s<br />

four�vector frame �upper left graph in �c��.<br />

with �1 � q0 � 0. The q0 v<strong>al</strong>ues of the frame at each<br />

point are displayed as shades of gray in the curves of<br />

Figures 1 and 2.<br />

5.2 Probing Quaternion Frames with 4D<br />

Light<br />

As an <strong>al</strong>ternative display method� we now adapt<br />

techniques we have explored in other contexts for de<strong>al</strong>�<br />

ing directly with 4D objects �see �11�� �12�� and �10��.<br />

In our previous work on 4D geometry and lighting� the<br />

critic<strong>al</strong> element has <strong>al</strong>ways been the observation that<br />

4D light can be used as a probe of geometric struc�<br />

ture provided we can �nd a way �such as thickening<br />

curves or surfaces until they become true 3�manifolds�<br />

to de�ne a unique 4D norm<strong>al</strong> vector that has a well�<br />

de�ned sc<strong>al</strong>ar product with the 4D light� when that<br />

objective is achieved� we can interactively employ a<br />

moving 4D light and a gener<strong>al</strong>ization of the standard<br />

illumination equations to produce images that selec�<br />

tively expose new structur<strong>al</strong> details.<br />

Once we have generated our �possibly piecewise�<br />

smooth quaternion frames for each curve� we see that<br />

the quaternion frame q�s� is precisely what is required<br />

to apply 4D lighting and thus instantly identify those<br />

sections of the curves with similar orientation proper�<br />

ties by their matching re�ectances. The lighting equa�<br />

tion we adopt is simply<br />

I�s� � I a � I d�L � q�s�� � �7�<br />

where L is a 4D unit vector representing a 4D light<br />

direction� and we have included both an ambient and

�a� �b�<br />

�c� �d�<br />

Figure 2� �a� Projected image of a pathologic<strong>al</strong> curve segment. �b� Selected Frenet frame components� showing a<br />

sudden change of the norm<strong>al</strong>. �c� The quaternion frame components. �d� The discontinuous path of the quaternion<br />

frame components in the three�sphere. Gray sc<strong>al</strong>es indicate the 0�th component of the curve�s four�vector frame<br />

�upper left graph in �c��.<br />

a di�use term. The 4D dot product may be treated in<br />

sever<strong>al</strong> ways when it becomes negative� if the partic�<br />

ular application actu<strong>al</strong>ly has a reason to distinguish<br />

two equiv<strong>al</strong>ent quaternion frames because of their po�<br />

sition in a time sequence� one may distinguish positive<br />

and negative dot products by assigning di�erent color<br />

ranges �this method is used in Figures 3�5� or by set�<br />

ting the di�use v<strong>al</strong>ue to zero when the dot product is<br />

negative� if this distinction is not signi�cant� the ab�<br />

solute v<strong>al</strong>ue may be used. We have found it useful to<br />

use a variety of color maps in place of a strict gray<br />

sc<strong>al</strong>e of intensities. A moment�s re�ection reve<strong>al</strong>s that<br />

this amounts to assigning shells of color to the three�<br />

sphere and tagging the quaternion vector �eld lines in<br />

the three�sphere plot with the v<strong>al</strong>ues of the color shells<br />

through which they pass� rotating the light is equiv�<br />

<strong>al</strong>ent to rotating the 4D orientation of the color map<br />

distributed across the three�sphere. Yet another vari�<br />

ation would assign each point of the three�sphere to a<br />

unique color in the 3D hue�saturation�intensity space�<br />

making 4D rotation of the �light� irrelevant except for<br />

permuting the emphasized orientations. It is <strong>al</strong>so pos�<br />

sible to add a heuristic specular term to Eq. �7�� e.g.�<br />

by considering the projection direction of the three�<br />

sphere plot to be a 4D �view vector.�<br />

Figures 3a� 4a� and 5a show streamline data sets<br />

rendered by computing a pseudocolor index at each<br />

point from the 4D lighting formula Eq. �7�.<br />

5.3 Addition<strong>al</strong> Geometric Cues<br />

Gray �6� 3� has advocated the use of curvature and<br />

torsion�based color mapping to emphasize the geomet�<br />

ric properties of single curves such as the torus knot.

Since this information is trivi<strong>al</strong> to obtain simultane�<br />

ously with the Frenet frame� we <strong>al</strong>so o�er the <strong>al</strong>ter�<br />

native of encoding the curvature and torsion as sc<strong>al</strong>ar<br />

�elds on a volumetric space populated either sparsely<br />

or densely with streamlines� examples are shown in<br />

Figures 3c�d� 4c�d and 5c�d.<br />

Another extension one might adopt is based on the<br />

idea that� from Eq. �4�� the curvature ��s� is propor�<br />

tion<strong>al</strong> to the norm of a 3�vector� we can thus construct<br />

the four�component object<br />

�K�s� �<br />

�<br />

��s�� �x0 �s� � �x 00 �s�<br />

j�x 0 �s�j 3<br />

�<br />

�8�<br />

and then use the norm<strong>al</strong>ized �four�vector� �K�s� �<br />

�K�s��k �K�s�k as the quantity to be probed with 4D<br />

light. Since we norm<strong>al</strong>ly start the interactive system<br />

with the light shining directly in the direction of the<br />

component assigned to ��s� in Eq. �8�� we can begin<br />

with an image coded strictly by the strength of the<br />

curvature� and move the 4D light out into the other di�<br />

mensions to reve<strong>al</strong> the components of the vector whose<br />

magnitude is the curvature.<br />

Fin<strong>al</strong>ly� we remark that stream surfaces �14� can in<br />

principle <strong>al</strong>so be mapped to the three�sphere� e.g.� by<br />

choosing an interpolation of the quaternion frames of<br />

the streamline curves from which the stream surface<br />

is derived.<br />

6 Interactive Interfaces<br />

4D Light Orientation Control. Direct manipula�<br />

tion of 3D orientation using a 2D mouse is typic<strong>al</strong>ly<br />

handled using a rolling b<strong>al</strong>l �7� or virtu<strong>al</strong> sphere �2�<br />

method to give the user a feeling of physic<strong>al</strong> control.<br />

Here we brie�y outline the extension of this philosophy<br />

to 4D orientation control �see �4� 9��<br />

To control a single 3D lighting vector using a 2D<br />

mouse� we note that the unit vector in 3D has only<br />

two degrees of freedom� so that picking a point within<br />

a unit circle determines the direction uniquely up to<br />

the sign of its view�direction component. By choos�<br />

ing some convention for distinguishing vectors with<br />

positive or negative view�direction components �e.g.�<br />

solid or dashed line display�� we can make the direction<br />

unique. To control the light vector using the rolling<br />

b<strong>al</strong>l� begin with the vector pointing straight out of the<br />

screen� and move the mouse diagon<strong>al</strong>ly in the desired<br />

direction to tilt the vector to its new orientation� ro�<br />

tating past 90 degrees moves the vector so its view<br />

component is into the screen.<br />

The an<strong>al</strong>ogous control system for 4D lighting is<br />

based on a similar observation� since the 4D nor�<br />

m<strong>al</strong> vector has only 3 independent degrees of freedom�<br />

choosing an interior point in a solid sphere determines<br />

the vector uniquely up to the sign of its component<br />

in the unseen 4th dimension �the �4D view�direction<br />

component��. The rest of the control proceeds an<strong>al</strong>o�<br />

gously.<br />

Three�sphere projection control. A natur<strong>al</strong><br />

characteristic of the mapping of the quaternion frames<br />

to the three�sphere is that a particular projection must<br />

be chosen from 4D to 3D when actu<strong>al</strong>ly displaying<br />

the quaternion data. In order to expose <strong>al</strong>l possible<br />

relevant structures� the user interface must <strong>al</strong>low the<br />

viewer to freely manipulate the 4D projection parame�<br />

ters. This control is easily and inexpensively provided<br />

using the interface just described for controlling the<br />

4D light orientation. Our �MeshView� 4D viewing<br />

utility supports re<strong>al</strong>�time interaction with such struc�<br />

tures.<br />

7 Examples<br />

We present three di�erent examples of streamline or<br />

�ow data. Each data set is rendered four ways� �1� as<br />

a Euclidean space picture� pseudocolored by 4D light�<br />

�2� as a four�vector quaternion frame �eld plotted in<br />

the three�sphere� �3� in Euclidean space color�coded<br />

by curvature� �4� in Euclidean space color�coded by<br />

torsion.<br />

� Figure 3. An AVS�generated streamline data<br />

set� the �ow is obstructed somewhere in the cen�<br />

ter� causing sudden jumps of the streamlines in<br />

certain regions.<br />

� Figure 4. The �Dirac string trick� deformation<br />

�13� of a spheric<strong>al</strong> solid consisting of concentric<br />

spheres in Euclidean space.<br />

� Figure 5. A complicated set of streamlines de�<br />

rived from twisting a solid elastic Euclidean space<br />

as part of the process of tying a topologic<strong>al</strong> knot.<br />

In principle� any of the images for which we have<br />

shown only streamline curves can <strong>al</strong>so be displayed<br />

with stream surfaces or interpolated solid volume ren�<br />

dering� we have a module for solid rendering that dis�<br />

plays data such as that in Figure 5 as slices of the solid<br />

object.<br />

8 Conclusion<br />

In this paper� we introduced a visu<strong>al</strong>ization method<br />

for distinguishing critic<strong>al</strong> features of streamline�like<br />

volume data by assigning to each streamline a quater�<br />

nion frame �eld derived from its moving Frenet frame�<br />

curvature and torsion �elds may be incorporated as<br />

well. The quaternion frame is a four�vector �eld that

is a piecewise smoothly varying map from each orig�<br />

in<strong>al</strong> space curve to a new curve in the three�sphere<br />

embedded in four�dimension<strong>al</strong> Euclidean space. Fur�<br />

thermore� this four�vector can be interpreted as a four�<br />

dimension<strong>al</strong> norm<strong>al</strong> direction at each curve point� thus<br />

<strong>al</strong>lowing us to build on our previous work exploiting<br />

4D illumination� by assigning a shade to each curve<br />

point that depends on the sc<strong>al</strong>ar product of the quater�<br />

nion frame with a 4D light� we can explore a wide va�<br />

riety of loc<strong>al</strong> data features by interactively varying the<br />

light direction.<br />

Acknowledgments<br />

This work was supported in part by NSF grant IRI�<br />

91�06389. We thank Brian Kaplan for his assistance<br />

with the vector �eld data set� and John Hart� George<br />

Francis� and Lou Kau�man for the Dirac string trick<br />

data description. Bruce Solomon brought reference �1�<br />

to our attention.<br />

References<br />

�1� Bishop� R. L. There is more than one way<br />

to frame a curve. Amer. Math. Monthly 82� 3<br />

�March 1975�� 246�251.<br />

�2� Chen� M.� Mountford� S. J.� and Sellen�<br />

A. A study in interactive 3�d rotation using 2�<br />

d control devices. In Computer Graphics �1988��<br />

vol. 22� pp. 121�130. Proceedings of SIGGRAPH<br />

1988.<br />

�3� Cipra� B. Mathematicians gather to play the<br />

numbers game. Science 259 �1993�� 894�895. De�<br />

scription of Alfred Gray�s knots colored to repre�<br />

sent variation in curvature and torsion.<br />

�4� Cross� R. A.� and Hanson� A. J. Virtu<strong>al</strong> re<strong>al</strong>�<br />

ity performance for virtu<strong>al</strong> geometry. In Proceed�<br />

ings of Visu<strong>al</strong>ization �94 �1994�� IEEE Computer<br />

Society Press. In these Proceedings.<br />

�5� Eisenhart� L. P. A Treatise on the Di�erenti<strong>al</strong><br />

Geometry of Curves and Surfaces. Dover� New<br />

York� 1909 �1960�.<br />

�6� Gray� A. Modern Di�erenti<strong>al</strong> Geometry of<br />

Curves and Surfaces. CRC Press� Inc.� Boca Ra�<br />

ton� FL� 1993.<br />

�7� Hanson� A. J. The rolling b<strong>al</strong>l. In Graph�<br />

ics Gems III� D. Kirk� Ed. Academic Press� San<br />

Diego� CA� 1992� pp. 51�60.<br />

�8� Hanson� A. J. Quaternion frenet frames� Mak�<br />

ing optim<strong>al</strong> tubes and ribbons from curves. Tech.<br />

Rep. 407� Indiana University Computer Science<br />

Department� 1994.<br />

�9� Hanson� A. J. Rotations for n�dimension<strong>al</strong><br />

graphics. Tech. Rep. 406� Indiana University<br />

Computer Science Department� 1994.<br />

�10� Hanson� A. J.� and Cross� R. A. Interac�<br />

tive visu<strong>al</strong>ization methods for four dimensions.<br />

In Proceedings of Visu<strong>al</strong>ization �93 �1993�� IEEE<br />

Computer Society Press� pp. 196�203.<br />

�11� Hanson� A. J.� and Heng� P. A. Visu<strong>al</strong>izing<br />

the fourth dimension using geometry and light.<br />

In Proceedings of Visu<strong>al</strong>ization �91 �1991�� IEEE<br />

Computer Society Press� pp. 321�328.<br />

�12� Hanson� A. J.� and Heng� P. A. Illuminating<br />

the fourth dimension. Computer Graphics and<br />

Applications 12� 4 �July 1992�� 54�62.<br />

�13� Hart� J. C.� Francis� G. K.� and Kauffman�<br />

L. H. Visu<strong>al</strong>izing quaternion rotation. Preprint�<br />

1994.<br />

�14� Hultquist� J. Constructing stream surfaces in<br />

steady 3d vector �elds. In Proceedings of Vi�<br />

su<strong>al</strong>ization �92 �1992�� IEEE Computer Society<br />

Press� pp. 171�178.<br />

�15� Shoemake� K. Animating rotation with quater�<br />

nion curves. In Computer Graphics �1985��<br />

vol. 19� pp. 245�254. Proceedings of SIGGRAPH<br />

1985.

Figure 3: Vector field streamlines. (a) With 4D light. (b) Quaternion<br />

field path. (c) Curvature. (d) Torsion.<br />

Figure 4: Dirac Strings. (a) With 4D light. (b) Quaternion field path.<br />

(c) Curvature. (d) Torsion.<br />

Figure 5: Knot volume deformation. (a) With 4D light. (b) Quaternion<br />

field path. (c) Curvature. (d) Torsion.

Feature Detection from Vector Quantities in a Numeric<strong>al</strong>ly Simulated Hypersonic<br />

Flow Field in Combination with Experiment<strong>al</strong> Flow Visu<strong>al</strong>ization<br />

Abstract<br />

In computation<strong>al</strong> fluid dynamics visu<strong>al</strong>ization is a frequently<br />

used tool for data ev<strong>al</strong>uation, understanding of flow characteristics,<br />

and qu<strong>al</strong>itative comparison to flow visu<strong>al</strong>izations<br />

originating from experiments. Building on an existing visu<strong>al</strong>ization<br />

software system, that <strong>al</strong>lows for a careful selection<br />

of state-of-the-art visu<strong>al</strong>ization techniques and some extensions,<br />

it became possible to present various features of the<br />

data in a single image. The visu<strong>al</strong>izations show vortex position<br />

and rotation as well as skin-friction lines, experiment<strong>al</strong><br />

oil-flow traces, and shock-wave positions. By adding experiment<strong>al</strong><br />

flow visu<strong>al</strong>ization, a comparison between numeric<strong>al</strong><br />

simulation and wind-tunnel flow becomes possible up to a<br />

high level of detail. Since some of the underlying <strong>al</strong>gorithms<br />

are not yet described in detail in the visu<strong>al</strong>ization literature,<br />

some experiences gained from the implementation are illustrated.<br />

1 Introduction<br />

Numeric<strong>al</strong> flow simulation creates demanding data of high<br />

complexity, which requires a well selected combination of<br />

visu<strong>al</strong>ization techniques to visu<strong>al</strong>ize the dominant properties<br />

of the data and the significant structures needed to gain<br />

insight into the flow. By carefully reducing the number of<br />

visu<strong>al</strong> elements required for the representation of a given<br />

feature in the data, one may free space in the image for the<br />

visu<strong>al</strong>ization of other features present at the same time.<br />

Eventu<strong>al</strong>ly, even data from different sources, such as an<br />

image from an experiment and visu<strong>al</strong> elements from numeric<strong>al</strong>ly<br />

simulated flows, may be visu<strong>al</strong>ized in a single image.<br />

It turns out that interesting discoveries become possible only<br />

due to this combined visu<strong>al</strong>ization. Complex visu<strong>al</strong>ization<br />

that provides a collective presentation of different features<br />

offers better insight into the interaction of physic<strong>al</strong> phenomena.<br />

The major benefit for aerodynamicists, however, was<br />

only achieved due to the successful combination of vortex<br />

visu<strong>al</strong>ization, shock visu<strong>al</strong>ization, skin-friction lines, and<br />

oil-flow patterns.<br />

Hans-Georg Pagendarm<br />

Birgit W<strong>al</strong>ter<br />

DLR, German Aerospace Research Establishment<br />

D37073 Göttingen, Germany<br />

- 1 -<br />

2 The flow problem<br />

Fig. 1 Geometry of the flat plate, wedge, and fin<br />

configuration placed in a hypersonic flow field<br />

(schematic view)<br />

The visu<strong>al</strong>ization of phenomena in flows will be demonstrated<br />

using data kindly supplied by T. Gerhold [1],[2]. The<br />

flow simulation results from a Navier-Stokes solution for a<br />

blunt-fin / wedge configuration (see: Fig. 1) in a hypersonic<br />

flow at a Mach number of 5. The flow shows a horseshoe<br />

type of vortex. The simulation <strong>al</strong>so resolves a sm<strong>al</strong>ler secondary<br />

vortex that rotates in the opposite direction. These<br />

vortices produce characteristic traces on the w<strong>al</strong>l, which<br />

have been visu<strong>al</strong>ized in the numeric<strong>al</strong> data as well as in a<br />

wind-tunnel flow for direct comparison. A second significant<br />

phenomenon in this flow field is a pattern of shock<br />

waves. This flow is studied to learn more about the interaction<br />

of shock waves and complex three-dimension<strong>al</strong> boundary<br />

layers or viscous flows in gener<strong>al</strong>. Even though the<br />

geometry appears to be simple an extremely complex threedimension<strong>al</strong><br />

flow field is generated.

3 Visu<strong>al</strong>ization of w<strong>al</strong>l friction<br />

As in this case experiment<strong>al</strong> fluid mechanics of hypersonic<br />

flows is frequently done in blow-down wind tunnels. These<br />

facilities <strong>al</strong>low only a short-duration of constant-flow condition.<br />

Therefore the data collected within a single experiment<br />

are extremely limited. Sc<strong>al</strong>ar quantities such as pressure are<br />

often measured at a sm<strong>al</strong>l number of locations on the w<strong>al</strong>l.<br />

Usu<strong>al</strong>ly there are no measurements in the three-dimension<strong>al</strong><br />

flow field. The use of oil-flow visu<strong>al</strong>ization <strong>al</strong>lows glob<strong>al</strong><br />

acquisition of near-w<strong>al</strong>l-velocity direction<strong>al</strong> information.<br />

Thus oil-flow patterns are a powerful representation of flow<br />

behaviour.<br />

The technique employs a dye dispersed in a speci<strong>al</strong> oil.<br />

This oil is sprayed on the solid w<strong>al</strong>ls of the model in the<br />

wind tunnel. Due to viscous action of the flow velocity close<br />

to the w<strong>al</strong>l, the oil moves slowly in the loc<strong>al</strong> flow direction.<br />

When the oil evaporates it leaves behind a trace of dye,<br />

which marks the loc<strong>al</strong> flow direction.<br />

In order to compare numeric<strong>al</strong> flow simulations with<br />

such experiments, one has to visu<strong>al</strong>ize the near- w<strong>al</strong>l flow<br />

field. The direction of a flow velocity field is frequently visu<strong>al</strong>ized<br />

using streamlines. In simulations of viscous flows<br />

the velocity of the flow at a solid w<strong>al</strong>l is zero by definition.<br />

This prevents the c<strong>al</strong>culation of streamlines directly on the<br />

w<strong>al</strong>ls. One would like to find the limiting streamline at locations<br />

where the velocity goes to zero while the direction of<br />

the velocity vector is determined by the direction of the<br />

velocity near the w<strong>al</strong>l. Limiting streamlines on a simpler fin/<br />

flat-plate configuration were presented <strong>al</strong>ready by Hung and<br />

Buning [3]. Helman and Hesselink [4] point out some of the<br />

difficulties of such an approach using an example from [4].<br />

At that time those limiting streamlines were probably generated<br />

by performing a particle tracing in the flow regime<br />

close to the w<strong>al</strong>l (in the case of [4] and [5] by using addition<strong>al</strong><br />

constraints on the velocity component norm<strong>al</strong> to the<br />

w<strong>al</strong>l.. Today skinfriction lines are commonly used instead of<br />

near-w<strong>al</strong>l particle traces. Visu<strong>al</strong>ization of skin-friction lines<br />

has been used for a long time for comparison with oil-flow<br />

patterns. (e.g. see [6] and [7] ). Therefore, the main interest<br />

here is concerned with the particular implementation within<br />

a visu<strong>al</strong>ization system.<br />

All images in this paper where created using the visu<strong>al</strong>ization<br />

system HIGHEND [8]. This system is easily extendible<br />

and the data processing needed for visu<strong>al</strong>ization of skinfriction<br />

lines was quickly performed using existing tools<br />

after adding sm<strong>al</strong>l pieces of code.<br />

The expression “w<strong>al</strong>l-friction lines” results from using<br />

the w<strong>al</strong>l shear vector for visu<strong>al</strong>ization purposes. The w<strong>al</strong>l<br />

shear vector τw is the derivative norm<strong>al</strong> to the w<strong>al</strong>l of the<br />

velocity vector v . In gener<strong>al</strong> it is nonzero and points in<br />

the direction of the near-w<strong>al</strong>l velocity vectors when projected<br />

norm<strong>al</strong> to the w<strong>al</strong>l. The w<strong>al</strong>l shear τ w may be c<strong>al</strong>cu-<br />

- 2 -<br />

lated from the gradient of the velocity vector v after<br />

introducing a w<strong>al</strong>l coordinate system where<br />

dinate vector norm<strong>al</strong> to the w<strong>al</strong>l.<br />

n is the coor-<br />

τ w<br />

= ∇v – ( ∇v ⋅ n)<br />

The gradient ∇v<br />

may be c<strong>al</strong>culated using a Gaussian integr<strong>al</strong><br />

formulation<br />

∇v<br />

⎛ 1<br />

-- v dA⎞<br />

⎝ V∫<br />

⎠<br />

This <strong>al</strong>lows for an easy implementation[9],[10] that is insensitive<br />

to a pathologic<strong>al</strong> or degenerated grid cell in the<br />

numeric<strong>al</strong> data set. To c<strong>al</strong>culate the vorticity, a staggered<br />

grid is generated by creating new vertices in the centre of<br />

each grid cell (see Fig. 2). This is done by c<strong>al</strong>culating the<br />

coordinates of the centre vertex as the arithmetic<strong>al</strong> mean of<br />

the coordinates of the surrounding vertices.<br />

i-1,j-1,k+1<br />

=<br />

lim<br />

V → 0<br />

i-1,j+1,k+1 i+1,j+1,k+1<br />

i-1,j-1,k-1 i+1,j-1,k-1<br />

Fig. 2 A staggered grid around the grid point i,j,k is<br />

used. The integration is performed on the<br />

surface of the inner volume. For simplicity, this<br />

figure shows a cartesian grid where cells are<br />

cubes. However the approach may be<br />

gener<strong>al</strong>ized towards curvilinear or even<br />

unstructured grids.<br />

After the w<strong>al</strong>l shear τ w has been c<strong>al</strong>culated on <strong>al</strong>l solid<br />

boundaries represented in the data, a standard streamline<br />

integration <strong>al</strong>gorithm using a second-order Runge-Kutta<br />

scheme is used to integrate the friction lines from the shear<br />

vector field. The skin-friction lines provide glob<strong>al</strong> information<br />

about the near-w<strong>al</strong>l flow field (Fig. 3) Experienced aerodynamicists<br />

will be able to imagine even qu<strong>al</strong>itatively the<br />

A<br />

i+1,j+1,k-1

over<strong>al</strong>l three-dimension<strong>al</strong> flow pattern in the flow field from<br />

these w<strong>al</strong>l patterns.<br />

In particular, skin-friction lines show the location of separation<br />

and reattachment of the flow at the w<strong>al</strong>l. As mentioned,<br />

earlier experiments were performed in a wind tunnel to provide<br />

measurements and visu<strong>al</strong>ization to match the numeric<strong>al</strong><br />

flow simulation. Oil-flow patterns were captured as a photograph.<br />

Due to the limited access to the wind tunnel during<br />

the experiments, the photograph shows a perspective view<br />

of the fin taken from a side of the wind tunnel.<br />

Fig. 3 Skin-friction lines on w<strong>al</strong>ls of the the blunt fin<br />

and wedge.<br />

Unfortunately, some of the details of the positions and the<br />

equipment used when recording the experiments were not<br />

available anymore. Therefore, for direct comparison of significant<br />

lines and oil-flow pattern, the perspective had to be<br />

reconstructed from the edges of the model visible in the<br />

image.<br />

Fig. 4 Skin-friction lines projected perspectively on<br />

the oil-flow pattern<br />

- 3 -<br />

After careful interactive matching of the viewing conditions<br />

which was required in this case, the skin-friction lines could<br />

be projected into the image showing the oil-flow pattern in<br />

the wind tunnel experiment.<br />

The resulting combined image (Fig. 4) increases confidence<br />

in the over<strong>al</strong>l correct numeric<strong>al</strong> simulation. Some<br />

loc<strong>al</strong> discrepancies could be explained by a loc<strong>al</strong> lack of resolution<br />

in the numeric<strong>al</strong> simulation. However, the experiment<br />

clearly shows a second weak separation line in the<br />

lower side w<strong>al</strong>l of the fin, which does not show in the<br />

numeric<strong>al</strong>ly generated skin-friction lines (Fig. 5). The<br />

experiment suggests that there is a vortex at some distance<br />

from the w<strong>al</strong>l, which is the reason for this pattern.<br />

4 Vortex visu<strong>al</strong>ization<br />

s 1<br />

s2 ss22 Fig. 5 The oil-flow pattern shows a second weak<br />

separation trace s 2 , which is not visible in the<br />

numeric<strong>al</strong> data<br />

A vortex would be expected to be present in the numeric<strong>al</strong><br />

solution as well. However, due to a lack of resolution for<br />

very sm<strong>al</strong>l vortices it might be too weak to influence the<br />

skin-friction lines visibly.<br />

The visu<strong>al</strong>ization of vortices typic<strong>al</strong>ly relies on particle<br />

traces. C<strong>al</strong>culation of particle traces within a flow field is a<br />

well known visu<strong>al</strong>ization technique that similary to flow visu<strong>al</strong>ization<br />

by injection of dye into re<strong>al</strong> flows. The construction<br />

of trajectory lines is gener<strong>al</strong>ly applicable to <strong>al</strong>l kinds of<br />

vector data. Presumably it is because of the similarity to<br />

experiment<strong>al</strong> flow visu<strong>al</strong>ization techniques that the visu<strong>al</strong>ization<br />

of such lines is frequently mentioned in the literature<br />

of computation<strong>al</strong> fluid dynamics (see among others<br />

[11],[12],[13],[4]). Some authors study the accuracy problem<br />

in detail (see: [14],[15],[16]). Today, most visu<strong>al</strong>ization<br />

systems make use of a second-order Runge-Kutta integra-

tion scheme. However, some authors report <strong>al</strong>ternative<br />

methods [17], [18]. Volpe [13] suggested the display of<br />

stream ribbons for a more understandable visu<strong>al</strong>ization of<br />

flow fields. He demonstrated how to obtain the impression<br />

of a ribbon floating in the flow field by c<strong>al</strong>culating a large<br />

number of adjacent streamlines. Those lines must be placed<br />

very close to each other to keep the gaps invisible in the<br />

image. Another way of creating stream ribbons is by constructing<br />

polygons between two neighbouring lines. A simple<br />

method to create such polygons by the use of a marching<br />

triangulation <strong>al</strong>gorithm is illustrated in [19]. A similar<br />

approach is reported by [20]. Both approaches fail if the<br />

flow field is diverging because the two limiting streamlines<br />

depart from each other. Eventu<strong>al</strong>ly they will be far enough<br />

from each other that physic<strong>al</strong>ly unfeasible effects occur in<br />

the visu<strong>al</strong>ization. Such effects could be the crossing of<br />

stream ribbons or ribbons passing through solid flow boundaries.<br />

To produce v<strong>al</strong>id visu<strong>al</strong>izations in such circumstances,<br />

it is necessary to c<strong>al</strong>culate the stream ribbon from a single<br />

trajectory line. Again, this approach has been used in the<br />

past. In particular the famous NCSA video on a ‘Severe<br />

Thunderstorm’ shows swirling ribbons. Therefore, the following<br />

description concentrates on implementation issues.<br />

C<strong>al</strong>culating stream ribbons from more than one streamline<br />

often fails because the numeric<strong>al</strong> v<strong>al</strong>ues of two near by<br />

velocity vectors differ significantly. This <strong>al</strong>lows for a growing<br />

distance between two adjacent lines. A straightforward<br />

approach to avoid this considers one of the two lines as a<br />

primary line that marks the location of the ribbon and uses<br />

the second streamline c<strong>al</strong>culation only for obtaining the orientation<br />

of the line in space while keeping the two lines at a<br />

constant distance. Such an approach may be derived from an<br />

<strong>al</strong>gorithm suggested for tracking of surface particles by van<br />

Wijk [20]. However, in fluid dynamics information on vortic<strong>al</strong><br />

behaviour is commonly obtained by applying the rotation<br />

or curl operator of the velocity vector field v (e.g. see<br />

[21]).<br />

rot v<br />

=<br />

∂vz ∂vy ------- – -------<br />

∂y ∂z<br />

∂vx ∂vz ------- – -------<br />

∂z ∂x<br />

∂vy ∂vx ------- – -------<br />

∂x ∂y<br />

The resulting vector represents the axis of rotation as well as<br />

the amount of rotation at a given point in the vector field<br />

v .The angular velocity, or vorticity ω , is simply one h<strong>al</strong>f<br />

rot v .<br />

- 4 -<br />

ω ( x, y, z, t)<br />

1<br />

-- rot v<br />

2<br />

Since flow simulation data frequently are stored on curvilinear<br />

or even unstructured grids, it may require some effort to<br />

ev<strong>al</strong>uate the rotation or curl because the transformation of<br />

the coordinates has to be taken into account. However, one<br />

may again take advantage of replacing the rotation or curl<br />

by a Gaussian integr<strong>al</strong>:<br />

This approach <strong>al</strong>lows an implementation very similar to the<br />

one suggested earlier for the ev<strong>al</strong>uation of the gradient of a<br />

sc<strong>al</strong>ar field [9]. Once the vorticity ω is c<strong>al</strong>culated everywhere<br />

in the vector field, the vorticity vector may be projected<br />

onto the loc<strong>al</strong> flow direction to obtain the angular<br />

velocity of rotation in the loc<strong>al</strong> streamwise direction, which<br />

<strong>al</strong>lows the detrmination of the stream-ribbon swirl.<br />

Note that ωribbon is a sc<strong>al</strong>ar quantity, since the direction is<br />

defined by the loc<strong>al</strong> direction of the velocity vector or the<br />

streamline. This quantity is a measure of rigid body rotation<br />

in the flow field. It is not identic<strong>al</strong> to another sc<strong>al</strong>ar quantity<br />

often used to find vortic<strong>al</strong> motion in flow fields, the helicity,<br />

which is simply the cosine of the angle between the vorticity<br />

vector and the velocity vector.<br />

4.1 Construction of a stream ribbon<br />

First, a streamline or particle path is c<strong>al</strong>culated using an<br />

established particle tracing <strong>al</strong>gorithm. This program produces<br />

a line as a series of coordinates. The system was<br />

extended in such a way that for each point <strong>al</strong>ong the line the<br />

magnitudes of the loc<strong>al</strong> velocity vector v and the loc<strong>al</strong><br />

streamwise vorticity are stored as well. These<br />

v<strong>al</strong>ues are obtained within the grid cell by trilinear interpolation.<br />

Knowledge of the loc<strong>al</strong> velocity of the flow <strong>al</strong>ong a<br />

streamline <strong>al</strong>lows the c<strong>al</strong>culation of the elapsed time<br />

between two points on the line at a distance s.<br />

=<br />

rot v = ∇× v = – lim<br />

ω ribbon<br />

t ( s)<br />

V → 0<br />

⎛ 1<br />

-- v × dA⎞<br />

⎝ V∫<br />

⎠<br />

ω ⋅ V<br />

= ωstreamwise = -----------<br />

V<br />

ω streamwise<br />

=<br />

s<br />

∫<br />

s 0<br />

A<br />

v<br />

---------------------- ds<br />

s ( x, y, z)

At the starting point of a streamline, the initi<strong>al</strong> direction and<br />

the width of the stream ribbon is defined. Marching from<br />

point to point <strong>al</strong>ong the streamline the rotation α may be<br />

integrated by multiplying the known angular velocity of the<br />

flow around the streamline and the elapsed time<br />

.<br />

s<br />

∫<br />

α ( s)<br />

= ω ( s)<br />

dt<br />

s 0<br />

Simple Eulerian integration was found to be accurate<br />

enough for visu<strong>al</strong>ization purposes after comparing the<br />

results with an <strong>al</strong>ternative method [19] for a number of<br />

cases.<br />

The ribbon is constructed of a series of polygons.<br />

These follow the streamline and are oriented according to<br />

the loc<strong>al</strong> angle integrated from the angular velocity. In gener<strong>al</strong>,<br />

ribbons which extend symmetric<strong>al</strong>ly to both sides of<br />

the defining streamline are more suitable for visu<strong>al</strong>ization<br />

purposes.<br />

α(s)<br />

·<br />

·<br />

i+1<br />

·<br />

i<br />

·<br />

b<br />

i-1<br />

Fig. 6 Construction of a stream ribbon <strong>al</strong>ong the path<br />

of a streamline while rotating it around the line<br />

with the given angle α(s)<br />

The norm<strong>al</strong> of the edge i is rotated in a plane norm<strong>al</strong> to the<br />

streamline. The rotation angle relative to the edge i-1 is<br />

given by α(s). The width b of the ribbon is kept constant.<br />

This marching procedure constructs a stream ribbon of constant<br />

width (see Fig. 6). The initi<strong>al</strong> angle of the first polygon<br />

on a line may be chosen arbitrarily. Often, this angle will be<br />

identic<strong>al</strong> with a physic<strong>al</strong> coordinate axis. It is recommended<br />

to choose the same initi<strong>al</strong> angle for <strong>al</strong>l ribbons within one<br />

image.<br />

An<strong>al</strong>ogous to the method pointed out in [21], the orientation<br />

of the ribbon could be deducted using a Frenet frame<br />

with similar results. The Frenet frame needs speci<strong>al</strong> treatment<br />

to resolve ambiguities for straight streamlines. The<br />

method presented here is straight forward to implement and<br />

was found accurate enough in various test cases. Obviously,<br />

the ribbon will not change orientation in an irrotation<strong>al</strong> field.<br />

In a field of solid body rotation with axi<strong>al</strong> translation super-<br />

s<br />

- 5 -<br />

imposed, the ribbon shows the correct swirl whether it is<br />

placed on the vortex axis or away from it. The width of the<br />

ribbon may be chosen arbitrarily as well. Therefore, it is<br />

possible to adjust the width to the sc<strong>al</strong>e of the ribbon within<br />

the image. Sm<strong>al</strong>l vortic<strong>al</strong> structures may require a comparatively<br />

large ribbon to make the swirl visible. This is a major<br />

advantage compared to the technique of constructing a ribbon<br />

between two streamlines, because in that case both lines<br />

are restricted to stay close to the centre of the vortex else the<br />

method would fail. The technique presented here however is<br />

not restricted.<br />

4.2 Vortex pattern near the blunt fin<br />

The flow shows a horseshoe type of vortex. The simulation<br />

<strong>al</strong>so resolves a sm<strong>al</strong>ler secondary vortex that rotates in<br />

opposite direction (Fig. 7). In particular, in the vincinity of<br />

the stagnation region ahead of the fin the vortices are accelerated<br />

when they pass the fin. This is advantageous for the<br />

visu<strong>al</strong>ization since a streamline release in this region is<br />

sucked into the vortex and remains very close to the centr<strong>al</strong><br />

core for a long time.<br />

Fig. 7 Ribbons represent vortices in the flow field. The<br />

image <strong>al</strong>lows the examination of threedimension<strong>al</strong><br />

phenomena with respect to their<br />

traces on the solid w<strong>al</strong>ls<br />

Therefore, streamlines were carefully selected to hit the vortex<br />

close to the plane of symmetry then follow the centre of<br />

the vortex past the fin. The ribbons were c<strong>al</strong>culated for two<br />

streamlines, one for each of the vortices.<br />

To find streamlines that stay within the vortex core, the<br />

starting point for the streamline must be placed accurately in<br />

the centre of the vortex. This may be done interactively.<br />

While in the two-dimension<strong>al</strong> or surface-flow case significant<br />

starting points may be found by means of topology<br />

an<strong>al</strong>ysis [4], this is not necessarily sufficient in the threedimension<strong>al</strong><br />

case. However visu<strong>al</strong>ization of restricted

streamlines in a plane through the flow domain provide a<br />

good starting point for interactive refinement.The full path<br />

of the line consists of a part integrated forward through the<br />

converging vortex core while the part of the line that<br />

approaches the fin from the inflow boundary was integrated<br />

backwards to meet the vortex exactly. Careful selection of<br />

streamlines and c<strong>al</strong>culation of ribbons <strong>al</strong>lows representing<br />

the vortex pattern with effective and easy to perceive visu<strong>al</strong><br />

objects that do not clutter the image<br />

In the case discussed here, the horseshoe vortex passes<br />

the fin with increasing distance while the secondary vortex<br />

stays very close to the side w<strong>al</strong>l of the fin. When visu<strong>al</strong>ized<br />

in combination with the oil-flow pattern obtained in the win<br />

tunnel experiment, the position of this secondary vortex<br />

explains nicely the weak trace of a separating flow h<strong>al</strong>f way<br />

up the fin. Fig. 8 shows the vortex core close to the fin,<br />

slightly below the lower separation trace. The vortex must<br />

be below this trace to topologic<strong>al</strong>ly explain the pattern on<br />

the fin.<br />

Fig. 8 Three-dimension<strong>al</strong> vortex cores from the<br />

numeric<strong>al</strong> simulation visu<strong>al</strong>ized in combination<br />

with oil-flow traces from wind tunnel<br />

experiments<br />

As suspected earlier, this vortex may be represented a bit too<br />

weak, due to spati<strong>al</strong> resolution in the simulation. This could<br />

explain why the skin friction lines as they are shown in Fig.<br />

3 and Fig. 4 do not show this separation.<br />

5 Vortex and shock wave interaction<br />

The location of the vortices are typic<strong>al</strong>ly very much determined<br />

by their interaction with the shock waves present in<br />

this three-dimension<strong>al</strong> flow field. In the past, most visu<strong>al</strong>izations<br />

of shock phenomena relied on pseudo colours or isolines<br />

on cuts through the data space. These methods were<br />

- 6 -<br />

<strong>al</strong>ready used by Hung and Buning [3] to visu<strong>al</strong>ize shock<br />

locations in a comparable flow field. Their paper as well as<br />

the related work of Hung and Kordulla [23] provide visu<strong>al</strong>ization<br />

of sc<strong>al</strong>ar data such as Mach number or pressure in<br />

various two-dimension<strong>al</strong> slices of the flow field for presentaion<br />

of the complex flow field. In the plane of symmetry<br />

they provide an early example of a combined visu<strong>al</strong>ization<br />

showing “two-dimension<strong>al</strong> streamlines” together with isocontours.<br />

To visu<strong>al</strong>ize the three-dimension<strong>al</strong> shape of shock waves, a<br />

shock detection and visu<strong>al</strong>ization technique was implemented<br />

using the HIGHEND visu<strong>al</strong>ization system mentioned<br />

earlier [9].<br />

Fig. 9 Three-dimension<strong>al</strong> shock waves from the<br />

numeric<strong>al</strong> simulation visu<strong>al</strong>ized in combination<br />

with oil-flow traces from wind tunnel<br />

experiments<br />

This method constructs a surface that matches the maximum<br />

of the loc<strong>al</strong> density change everywhere in the flow field. The<br />

gradient of the sc<strong>al</strong>ar quantity density is projected onto the<br />

loc<strong>al</strong> flow direction vector to find the location of maxim<strong>al</strong><br />

compression in the streamwise direction. By connecting<br />

these locations, a surface is formed, which may be visu<strong>al</strong>ized<br />

as a transparent surface. In the case discussed here, various<br />

shock waves are present in the flow field.<br />

The blunt fin creates a dominant detached bow shock.<br />

The sharp kink in the bottom w<strong>al</strong>l formed by the wedge<br />

forms an oblique ascending shock wave, which starts at the<br />

location of the kink and is steeper than the wedge. Both<br />

shock waves intersect. As a result of the intersection of the<br />

fin with the bottom w<strong>al</strong>l and the horseshoe type vortex, there<br />

is a third part of the shock pattern that encloses the vortex.<br />

More details still await further an<strong>al</strong>ysis. However, these<br />

prominent phenomena <strong>al</strong>ready provide insight into the interaction<br />

of different flow properties.

Because of viscous action near the w<strong>al</strong>ls, shocks become<br />

weaker there and will not be traced. Their position and<br />

shape in the vicinity of the fin clearly indicate the interaction<br />

between the shock wave and the separation traces in the oilflow<br />

image (Fig. 9).<br />

The shapes of the shock waves are bent by interaction with<br />

vortices, as may be seen when visu<strong>al</strong>izing the vortex cores<br />

in combination with the shock waves (Fig. 10).<br />

Fig. 10 Three-dimension<strong>al</strong> shock waves from the<br />

numeric<strong>al</strong> simulation visu<strong>al</strong>ized in combination<br />

with vortex cores seen from the flow exit plane<br />

6 Conclusion<br />

Visu<strong>al</strong>ization has been technology driven for a long time,<br />

pseudocolour playing a dominant role. A large variety of<br />

visu<strong>al</strong>ization methods is known today. However, only the<br />

integrated application of carefully selected techniques provide<br />

better insight even into complex data with different<br />

phenomena being simultaneously present. Each technique<br />

applied in this example provides a compact, meaningful representation<br />

of a selected feature in the data without occupying<br />

too much space in the image. The combined<br />

visu<strong>al</strong>ization of different flow features provides insight into<br />

the interaction of phenomena. Further improvements were<br />

obtained by including the combined visu<strong>al</strong>ization of data<br />

from different sources such as numeric<strong>al</strong> simulations and<br />

wind tunnel experiments. Due to a perspective mapping and<br />

blending technique, comparison between data from different<br />

sources was not restricted to image-level comparison by<br />

placing images side by side. Presentation of both data within<br />

a single image <strong>al</strong>lows for quantitative ev<strong>al</strong>uation, for example<br />

of displacement of features.<br />

- 7 -<br />

7 References<br />

[1] T. Gerhold, P. Krogmann: “Investigation of the Hypersonic Turbulent<br />

Flow Past a Blunt Fin/Wedge Configuration”, AIAA-93-5026, 5th<br />

Intern. Aerospace Plane and Hypersonic Technology Conference,<br />

Munich, Germany, Nov. 30 - Dec. 3, 1993<br />

[2] T. Gerhold: “Numeric<strong>al</strong> Simulation of Blunt-Fin-Induced Flow Using a<br />

Two-Dimension<strong>al</strong> Turbulence Model”, Proc. of ICHMT Int. Symp. on<br />

Turbulence, Heat and Mass Transfer, Lisbon,, August 9-12, 1994<br />

[3] C.M. Hung, P.G. Buning: “Simulation of Blunt-fin-induced Shockwave<br />

and Turbulent Boundary Layer Interaction” JFM, Vol. 154, , 1985<br />

[4] J.L. Helman, L. Hesselink: “Visu<strong>al</strong>izing Vector Field Topology in Fluid<br />

Flows”, IEEE Comp. Graphics & Applications, May 1991<br />

[5] S.X. Ying, L.B. Schiff, J.L. Steger: “A Numeric<strong>al</strong> Study on 3D<br />

Separated Flow Past a Hemisphere Cylinder,”, Proc. AIAA 19th Fluid<br />

Dyn., Plasma Dyn. and Lasers Conf. paper 87-1207, June 1987<br />

[6] B. Müller, A. Rizzi: “Large-Sc<strong>al</strong>e Viscous Simulation of Laminar<br />

Vortex Flow Over a Delta Wing”, AGARD CP 437 Vol.2, Dec. 1988<br />

[7] W.J. Bannink, E.M.Houtman, S.P. Ottochian: “Investigation of Surface<br />

Flow on Conic<strong>al</strong> Bodies at High Subsonic and Supersonic Speeds”,<br />

AGARD CP 437 Vol.2, Dec. 1988<br />

[8] H.-G. Pagendarm: “HIGHEND, A Visu<strong>al</strong>ization System for 3d Data<br />

with Speci<strong>al</strong> Support for Postprocessing of Fluid Dynamics Data”, in:<br />

M. Grave, Y. LeLous, W.T.Hewitt (ed.) “Visu<strong>al</strong>ization in Scientific<br />

Computing”, Springer Verlag, Heidelberg, 1994<br />

[9] H.-G. Pagendarm, B. Seitz: “An <strong>al</strong>gorithm for Detection and<br />

Visu<strong>al</strong>ization of Discontinuities in Scientific Data Fields Applied to<br />

Flow Data with Shock Waves”, in P. P<strong>al</strong>amidese (ed.) : "Visu<strong>al</strong>ization<br />

in Scientific Computing", Ellis Horwood Workshop Series, 1993<br />

[10]H.-G. Pagendarm, B. Seitz, S.I. Choudhry: “Visu<strong>al</strong>ization of Shock<br />

Waves in CFD Solutions”, 19th Internation<strong>al</strong> Symposium on Shock<br />

Waves, Marseilles, July 26-30, 1993.<br />

[11] E. Murman, A. Rizzi, K. Powel: “High Resolution of The Euler<br />

Equation for Vortex Flows”, Progress and Supercomputing in<br />

Computation<strong>al</strong> Fluid Dynamics, Birkhauser-Boston, Boston, MA,<br />

1985. pp. 93-113<br />

[12]T. Lasinski, P. Buning, D. Choi, S. Rogers, G. Bancroft, F. Merrit:<br />

“Flow Visu<strong>al</strong>ization of CFD Using Graphics Workstations”, AIAA<br />

Paper 87-1180CP, June 1987<br />

[13]G. Volpe: “Streamlines and Streamribbons in Aerodynamics”, AIAA<br />

Paper 89-0140, 27th Aerospace Science Meeting, Jan 9-12, Reno<br />

Nevada, 1989<br />

[14]E. Murman, K. Powell: “Trajectory Integration in Vortic<strong>al</strong> Flow”,<br />

AIAA Journ<strong>al</strong>, Vol 27, No. 7, July 1989, pp. 982-984<br />

[15]P. Buning: “Sources of Error in the Graphic<strong>al</strong> An<strong>al</strong>ysis of CFD<br />

Results”, J. Sci. Comp. Vol.3, No. 2, 1988<br />

[16]P.K. Yeung, S.B. Pope: “An Algorithm for Tracking Fluid Particles in<br />

Numeric<strong>al</strong> Simulations of Homogeneous Turbulence”, J. Comp.<br />

Physics, Vol. 79, 1988, pp. 373<br />

[17]D.N. Kenwright, G.D. M<strong>al</strong>linson: “A 3-D Streamline Tracking<br />

Algorithm Using Du<strong>al</strong> Stream Functions” Proc. of Visu<strong>al</strong>ization ‘92,<br />

pp. 62-68, IEEE Computer Society Press, 1992<br />

[18]W.J. Schroeder, C.R. Volpe, W.E. Lorensen: “The Stream Polygon: A<br />

Technique for 3D Vector Visu<strong>al</strong>ization”, Proc. of Visu<strong>al</strong>ization ‘91, pp.<br />

126-132, IEEE Computer Society Press, 1991<br />

[19]H.-G. Pagendarm: “Flow Visu<strong>al</strong>ization Techniques in Computer<br />

Graphics” in: “Computer Graphics and Flow Visu<strong>al</strong>ization in<br />

Computation<strong>al</strong> Fluid Dynamics”, VKI lecture series monograph 1991-<br />

07, von Karman Institute for Fluid Dynamics, Rhode-St.-Genese,<br />

Belgium<br />

[20]J.P.M. Hultquist: “Interactive Numeric Flow Visu<strong>al</strong>ization Using<br />

Stream Surfaces”, Computing Systems in <strong>Engineering</strong>, 1 (2-4) 1990,<br />

[21]J.J. van Wijk: “Flow Visu<strong>al</strong>ization with Surface Particles”, IEEE<br />

Computer Graphics & Applications, July 1993<br />

[22]J.D.Anderson: "Fundament<strong>al</strong> Aerodynamics", McGraw-Hill,<br />

Singapore, 1985<br />

[23]C.M. Hung , W. Kordulla: “A Time-Split Finite-Volume Algorithm for<br />

Three-Dimension<strong>al</strong> Flowfield Simulation”, AIAA Journ<strong>al</strong>, Vol 22, No.<br />

11, Nov. 1984

3D Visu<strong>al</strong>ization of<br />

Unsteady 2D Airplane Wake Vortices<br />

Kwan�Liu Ma<br />

ICASE� Mail Stop 132C<br />

NASA Langley Research Center<br />

Hampton� Virginia<br />

Abstract<br />

Air �owing around the wing tips of an airplane forms<br />

horizont<strong>al</strong> tornado�like vortices that can be dangerous<br />

to following aircraft. The dynamics of such vortices�<br />

including ground and atmospheric e�ects� can be pre�<br />

dicted by numeric<strong>al</strong> simulation� <strong>al</strong>lowing the safety and<br />

capacity of airports to be improved. In this paper� we<br />

introduce three�dimension<strong>al</strong> techniques for visu<strong>al</strong>izing<br />

time�dependent� two�dimension<strong>al</strong> wake vortex compu�<br />

tations� and the hazard strength of such vortices near<br />

the ground. We describe a vortex core tracing <strong>al</strong>go�<br />

rithm and a loc<strong>al</strong> tiling method to visu<strong>al</strong>ize the vortex<br />

evolution. The tiling method converts time�dependent�<br />

two�dimension<strong>al</strong> vortex cores into three�dimension<strong>al</strong><br />

vortex tubes. Fin<strong>al</strong>ly� a novel approach is used toc<strong>al</strong>�<br />

culate the induced rolling moment on the following air�<br />

plane at each grid point within a region near the vortex<br />

tubes and thus <strong>al</strong>lows three�dimension<strong>al</strong> visu<strong>al</strong>ization of<br />

the hazard strength of the vortices.<br />

1 Introduction<br />

Aircraft wakes represent potenti<strong>al</strong> hazards near air�<br />

ports. This hazard is so severe that it can control<br />

the required separation between aircraft� thus limit air�<br />

port capacity. When multiple runways are used� cross�<br />

winds and density strati�cation can <strong>al</strong>ter the trajec�<br />

tories and lifetimes of these wake vortices� producing<br />

hazardous �ight conditions which can persist during<br />

subsequent �ight operations. Thus improved forecast�<br />

ing techniques could result in safer airport operation<br />

and higher passenger throughput.<br />

In laboratories� experiment<strong>al</strong> �ow visu<strong>al</strong>ization<br />

techniques have been used to <strong>al</strong>low better understand�<br />

ing of vortex interactions and of merging character�<br />

istics in multiple vortex wakes. For example� smoke<br />

and laser light sheet have been used to obtain both<br />

qu<strong>al</strong>itative and quantitative information on the evolu�<br />

tion of vortices. Up�to�date experiment<strong>al</strong> methods re�<br />

main the primary source of design information. On the<br />

Z. C. Zheng<br />

Department of Aerospace <strong>Engineering</strong><br />

Old Dominion University<br />

Norfolk� Virginia<br />

other hand� because of the advances in computation<strong>al</strong><br />

technology� numeric<strong>al</strong> predictions of wakevortices have<br />

become feasible and are beginning to produce results<br />

consistent with experiments and physic<strong>al</strong> observations.<br />

However� numeric<strong>al</strong> predictions of wake vortex trajec�<br />

tories near the ground are still di�cult. This is be�<br />

cause the �ow is unsteady and is characterized by at<br />

least one pair of moving viscous�trailing�line vortices�<br />

which respond to an essenti<strong>al</strong>ly inviscid background�<br />

but are coupled to an unsteady� viscous ground�plane�<br />

boundary�layer region. The boundary�layer region can<br />

include separated �ows during portions of the vortex<br />

wake history and thus create secondary vortices.<br />

During the development of more sophisticated nu�<br />

meric<strong>al</strong> models� appropriate visu<strong>al</strong>ization methods are<br />

needed to monitor and verify the results from numeri�<br />

c<strong>al</strong> simulations. Compared to the di�culties of experi�<br />

ment<strong>al</strong> �ow visu<strong>al</strong>ization� three�dimension<strong>al</strong> computer<br />

visu<strong>al</strong>ization is both �exible and repeatable. In this pa�<br />

per� we describe the visu<strong>al</strong>ization techniques that we<br />

have developed� <strong>al</strong>ong with development ofnumeric<strong>al</strong><br />

prediction models.<br />

Visu<strong>al</strong>ization of wake vortices can be divided into<br />

three steps� locating vortex cores� direct visu<strong>al</strong>ization<br />

of the vortices� and visu<strong>al</strong>ization of quantities asso�<br />

ciated with vortices� such asvelocity� rolling moment�<br />

etc. The identi�cation of a vortex core has been treated<br />

di�erently for di�erent types of �ows. A rigorous�<br />

widely�accepted de�nition of a vortex for unsteady� vis�<br />

cous �ows is needed �7�. Direct visu<strong>al</strong>ization of vortic�<br />

ity �elds is often misleading in recognizing the struc�<br />

ture of vortex cores.<br />

Singer and Banks used both the vorticity and pres�<br />

sure �eld to trace the skeleton line of vortices in three�<br />

dimension<strong>al</strong> transition<strong>al</strong> �ow �8�. Pressure �eld is used<br />

to correct the numeric<strong>al</strong> errors that might beintro�<br />

duced during the integration of a vorticity line. A<br />

skeleton line passes the center of vortices. Pressure<br />

�eld is <strong>al</strong>so used to determine the boundary of the vor�<br />

tex tube. Yates and Chapman examined both theo�<br />

retic<strong>al</strong>ly and computation<strong>al</strong>ly two de�nitions of vortex

cores for steady �ow� a minimum in the streamline<br />

curvature and a maximum in the norm<strong>al</strong>ized helicity<br />

�10�. However� the minimum streamline curvature does<br />

not give a viscous vortex core edge.<br />

A somewhat vague de�nition of a vortex core is a<br />

vorticity�concentrated area characterizing the viscous<br />

aspect of the vortex. We are interested in the details of<br />

the vortex core such as its size and shape that change<br />

in time. Furthermore� for our time�dependent two�<br />

dimension<strong>al</strong> data� at each time step� there is only one<br />

primary vortex and the center of vortex is well de�ned�<br />

where the maximum vorticity occurs. Our go<strong>al</strong> is to<br />

identify the boundary of the vortex core.<br />

We describe a tracing <strong>al</strong>gorithm for identifying the<br />

vortex core at each time step using both the vorticity<br />

and velocity �elds. Visu<strong>al</strong>ization of these vortex cores<br />

is done by tiling them into a tube�like surface� using<br />

a loc<strong>al</strong> surface construction <strong>al</strong>gorithm. The surface is<br />

composed of Gouraud shaded triangle strips and can<br />

be e�ciently displayed on a graphics workstation. It<br />

is colored by di�erent sc<strong>al</strong>ar �elds to examine di�erent<br />

aspects of the vortex history. Two�dimension<strong>al</strong> tech�<br />

niques such as slicing and superimposed xy�plots are<br />

<strong>al</strong>so used in conjunction with visu<strong>al</strong>ization of the vor�<br />

tex tube to present more information simultaneously.<br />

The techniques we have developed and the visu<strong>al</strong>iza�<br />

tion results we have obtained help verify and under�<br />

stand the predicted �ow �eld.<br />

An important quantity that may indicate vortex<br />

hazards is the induced rolling moment on the following<br />

airplane� which can be c<strong>al</strong>culated using the unsteady<br />

two�dimension<strong>al</strong> predicted �ow �elds� combined with<br />

lifting line theory �4�. A novel approach presented here<br />

is to c<strong>al</strong>culate the induced rolling moment on the fol�<br />

lowing airplane at each grid point within a region near<br />

the vortex tube. The resulting data <strong>al</strong>low us to com�<br />

prehend the hazard strength in three dimensions near<br />

the vortices with techniques such as direct volume ren�<br />

dering. Direct visu<strong>al</strong>ization of hazard zone in three<br />

dimensions can assist the design of aircrafts as well as<br />

the �ight control at an airport.<br />

2 Numeric<strong>al</strong> Model<br />

The di�culties related to numeric<strong>al</strong> prediction of wake<br />

vortices near the ground have been discussed by Zheng<br />

and Ash �12�. We show brie�y here the computation<str