17.01.2013 Views

al - Adobe Acrobat Engineering

al - Adobe Acrobat Engineering

al - Adobe Acrobat Engineering

SHOW MORE
SHOW LESS

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