EUROGRAPHICS - IEEE VGTC Symposium on (2005), pp. 1–8 K. W. Brodlie, D. J. Duke, K. I. Joy (Editors)

Dense Geometric Flow Visualization

Sung W. Park,† Brian Budge,† Lars Linsen,†‡ Bernd Hamann,† and Kenneth I. Joy†

† Institute for Data Analysis and Visualization (IDAV) Department of Computer Science University of California, Davis Davis, CA 95616, U.S.A.

‡ Department of Mathematics and Computer Science Ernst-Moritz-Arndt-Universität Greifswald Greifswald, Germany

Abstract We present a flow visualization technique based on rendering geometry in a dense, uniform distribution. Flow is integrated using particle advection. By adopting ideas from texture-based techniques and taking advantage of parallelism and programmability of contemporary graphics hardware, we generate streamlines and pathlines ad- dressing both steady and unsteady flow. Pipelining is used to manage seeding, advection, and expiration of stream- lines/pathlines with constant lifetime. We achieve high numerical accuracy by enforcing short particle lifetimes and employing a fourth-order integration method. The occlusion problem inherent to dense volumetric represen- tations is addressed by applying multi-dimensional transfer functions (MDTFs), restricting particle attenuation to regions of certain physical behavior, or features. Geometry is rendered in graphics hardware using techniques such as depth sorting, illumination, haloing, flow orientation, and depth-based color attenuation to enhance . We achieve dense geometric three-dimensional flow visualization with interactive frame rates.

Categories and Subject Descriptors (according to ACM CCS): I.3.7 []: Three-dimensional Graph- ics and Realism

1. Introduction or color coding fall into the category of direct flow visualiza- tion [PLV∗02]. They provide an intuitive image of local flow Flow visualization has a long tradition in scientific data vi- properties. sualization. Approaches for 3D vector fields however have only recently experienced a boost due to the introduction of For a better understanding of global flow dynamics programmable graphics hardware with large texture mem- with respect to “long-term” behavior, integration-based ap- ory. Consequently, volumetric flow visualization has en- proaches have been introduced. These integrate flow data tered many disciplines of science and engineering including leading to trajectories of no-mass particles moving over mechanics, physics, chemistry, meteorology, geology, and time. Geometric flow visualization approaches render the in- medicine. Many applications are concerned with steady or tegrated flow using geometric objects such as lines, tubes, unsteady flow over 2D or 3D domains. ribbons, or surfaces [PLV∗02]. Flow visualization approaches can be categorized into di- rect, geometric, texture-based, and feature-based approaches In texture-based flow visualization, a texture is used for [LHD∗04]. Early attempts such as arrow and hedgehog plots a dense representation of a flow field. The texture is filtered according to the local flow vectors leading to a notion of overall flow direction [LHD∗04]. The most prominent ap- † {sunpark|bcbudge}@ucdavis.edu, proaches are line integral convolution (LIC) [CL93] and tex- {hamann|joy}@cs.ucdavis.edu ture advection [MBC93]. The LIC primitive is a noise tex- ‡ [email protected] ture, which is convolved in the direction of the flow using submitted to EUROGRAPHICS - IEEE VGTC Symposium on Visualization (2005) 2 Park, Budge, Linsen, Hamann & Joy / Dense Geometric Flow Visualization

filter kernels. In texture advection, the primitive is a “mov- the flow field induces the movement of the particle changes ing” texel, which is advected in the direction of the flow. over time [SML04]. When compared to animated stream- lines [JL00], pathlines better convey change over time. Feature-based flow visualization is concerned with the ex- traction of specific patterns of interest, or features. Various Today texture-based approaches are more widely used features such as vortices, shock waves, or separatrices have than streamlines for flow field visualization, as they provide been considered. Each of them has specific physical proper- a dense representation and can be used to display the en- ties, which can be used to extract the desired feature. Once a tire discrete domain. Texture-based approaches work well in feature has been extracted, standard visualization techniques 2D. For 3D applications the dense representation of texture- are applied for rendering [PVH∗03]. based approaches leads to occlusion problems, which is a major advantage of sparse representations. All these approaches work well for 2D vector fields. While geometric flow visualization approaches generalize to In [ZSH96], an interactive 3D flow visualization using volume data, direct and texture-based approaches have oc- streamlines was presented. Illumination is used to improve clusion issues in 3D, an inherent problem for dense repre- the streamlines’ perception. Texture-mapping capabilities of sentations. Dense representations are desirable, as they pro- modern graphics hardware is exploited. Some approaches vide information concerning overall flow behavior and serve generalize streamlines to streamtubes or even stream ribbons as a context for chosen visualization methods [Wei04]. [USM96]. In [FG98], animated opacity-mapped streamlines called dashtubes are used. These approaches only treat the We introduce a dense geometric flow visualization tech- visualization of steady flow. nique based on streamlines for steady flow and on pathlines for unsteady flow. The approaches are described in Sections A major challenge when using sparse representations like 3 and 4, respectively. They can be applied to 2D and 3D streamlines is seeding of starting points for flow integration. data sets. The lines are computed using a trajectory-based In [TB96], techniques for automated placing of seed points particle-advection method. We exploit the speed and par- were developed to achieve a nearly uniform, dense distribu- allelism of contemporary graphics hardware. In contrast to tion of streamlines for 2D flow fields. For 3D flow fields, texture-based approaches, we use the graphics hardware as seeding strategies typically involve analysis of the underly- a general-purpose computing device. We achieve high nu- ing flow field to visualize certain features using sparse dis- merical accuracy by enforcing short particle lifetimes and tributions. In [Lar02], user interaction is involved for seed- employing a fourth-order integration method. ing and for interactive control over the evolution of stream- lines for 3D flow fields. Our approach uses dense stream- Since we propose a dense flow representation, we must lines, which alleviates the problem of seeding at the expense address occlusion problems, which we do by applying multi- of introducing occlusion problems. We tackle occlusion by dimensional transfer functions (MDTFs) based on physical applying multi-dimensional transfer functions [PBL∗04]. flow properties [PBL∗04]. The application of MDTFs to dense geometric flow visualization is described in Section A dense distribution of streamlines involves additional 5. computations. To achieve interactive frame rates, we make extensive use of the programmability of contemporary We display our lines using various rendering techniques, graphics hardware. We adopt concepts from texture-based described in Section 6. Essential to a correct visual percep- flow visualization. The rendering primitive for texture-based tion is depth sorting of the geometric objects. Illumination is approaches is a texel. In texture-based approaches using line a key technique to enhance spatial perception. Adding halos integral convolution (LIC) [CL93], the texture is filtered clarifies the spatial relationships between overlapping lines. along the path of a streamline. An oriented version of the To orient lines, we highlight their tips, which increases the algorithm was discussed in [WGP97] and an extension to perception of motion. Depth perception is enhanced using unsteady flow in [SK97]. In texture-based approaches using depth-based color attenuation like desaturation and darken- texture advection [JL97], texels are moved while the motion ing. All rendering features have been implemented in graph- is directed by the flow field. In [vW02], a fast algorithm was ics hardware to achieve interactivity. presented based on advection and decay of texels in image space. Our approach uses particles as primitives instead of texels. The particles are advected and connected over subse- 2. Related Work quent frames to generate streamlines or pathlines. Flow visualization based on streamlines provides an intuitive geometric approach for steady flow data sets, as the extracted 3. Dense Geometric Flow Visualization line geometry represent trajectories of mass-less particles moving under the influence of the flow field. Streamlines The concept of dense geometric flow visualization is adopted have a long tradition in visualization and are used in var- from texture-based flow visualization approaches. A render- ious flow visualization systems [BMP∗90]. The equivalent ing primitive is advected over time under the influence of the of streamlines for unsteady flow fields are pathlines, where underlying flow field. In each time frame, a flow integration

submitted to EUROGRAPHICS - IEEE VGTC Symposium on Visualization (2005) Park, Budge, Linsen, Hamann & Joy / Dense Geometric Flow Visualization 3 step is applied to determine the position of the primitive in a more well-distributed set of samples than pseudo-random the subsequent frame. The motion of the primitive indicates generators [Nie92]. local flow behavior. The motion of a large number of prim- One of the best quasi-random methods is the Hammersley itives distributed densely across the domain visualizes the sequence. However, the Hammersley sequence is limited in behavior of the entire flow field. that the user is restrained to a fixed number of points, and While for texture-based approaches a rendering primitive the order of generation matters. Instead, we use the closely is represented by color information, for example in form of related Halton sequence for seed generation, since the Hal- noise, our approach uses geometry. Instead of advected tex- ton sequence has a coverage approaching the Hammersley els, we advect particles and connect them over subsequent sequence, but has the nice property that new seeds can be frames to form streamlines or pathlines. We first describe adaptively generated [Kel96, Nie92]. the details of our method for steady flow, before we gener- In general, there are two methods for generating the Hal- alize dense geometric flow visualization to unsteady flow in ton sequence. The first method is an iterative solution that the subsequent section. has O(logi) complexity for each element calculation, where Let f : D → R be the function of a steady flow field with Hi is the ith element of the Halton sequence. The sec- a 2D or 3D domain D and a vector-valued range R. To visu- ond technique involves generating Hi from Hi−1. This is alize steady flow we render a large number n of streamlines ideal since the calculation is extremely fast, O(1), and in distributed densely and nearly uniformly over the domain most cases exceeds the calculation speed of pseudo-random D. At each point in time (after a start-up phase), exactly n number generation. Unfortunately, there is no easy way to streamlines exist. Each streamline has a constant lifetime of keep state between successive calculations when working on k cycles. The lifetime of a streamline is divided into three graphics hardware. Thus, the second method is currently not phases: (i) seeding, (ii) advection, and (iii) expiration. The possible. seeding and the expiration phases last only one cycle each, such that for the major part of its lifetime, the other k − 2 cycles, a streamline is in its advection phase. 3.2. Advection n Streamlines are generated by integrating flow over time. The The streamlines are grouped into k groups of size k , where n is chosen to be a multiple of k. All streamlines of approach we are following is to advect particles over time in each group start their life simultaneously. The computation the direction induced by the flow. The streamlines are deter- of all streamlines can be processed in a pipeline with k cy- mined as the paths of the particles advected over time. cles. Figure 1 shows the processing pipeline. Let p(t) ∈ D be the position of a particle at time t. The position p(0) at time t = 0 denotes the seed location for that S A A A A E S A A A A particle. The path of the particle is defined as t S A A A A E S A A A p(t) = p(0) + f p(x) dx . Z0   S A A A A E S A A The integral equation must be solved using numerical inte- S A A A A E S A gration methods. Most commonly a simple first-order Euler method or a second-order Runge-Kutta method is used. S A A A A E S The Euler method computes the particle position p(t +∆t) S A A A A E at time t + ∆t from the position p(t) at time t as ∆ ∆ · Figure 1: Processing pipeline for streamline rendering. Life- p(t + t) = p(t) + t fp(t) , cycle of streamlines is divided into phases seeding (S), ad- where ∆t is a small time step. The second-order Runge-Kutta vection (A), and expiration (E). method computes a more precise approximation by utilizing the Euler approximation, denoted as pE (t + ∆t), as a look- ahead estimate and defining ∆ 3.1. Seeding fp(t) + fpE (t + t) p(t + ∆t) = p(t) + ∆t · . Our method makes use of quasi-random numbers for a uni- 2 form seeding across the domain. Uniform seeding is neces- Since keeping integration error low over time is one of our sary in order for all regions in the flow to receive attention. major goals, we use a fourth-order Runge-Kutta method One reason to use quasi-random number generation is that based on the computations their computation is reasonably simple to perform in graph- ics hardware. Another reason is that they tend to provide x1 = fp(t) , submitted to EUROGRAPHICS - IEEE VGTC Symposium on Visualization (2005) 4 Park, Budge, Linsen, Hamann & Joy / Dense Geometric Flow Visualization ∆ t texture is looked up. The vector field texture is sampled three x2 = f p(t) + · x1 ,  2  more times at different locations based on the particle’s po- ∆ t sition according to the fourth-order Runge-Kutta integration x3 = f p(t) + · x2 ,  2  method. Finally, the advected particles are written to a new ∆ · texture, which is used for both rendering and further advec- x4 = fp(t) + t x3 , and tion in the following time steps. x + 2(x + x ) + x p(t + ∆t) = 1 2 3 4 . 6 Rendering is performed by connecting particle positions over time using line primitives. We use a buffer that holds 3.3. Expiration positions of each seed in its k cycles of life. The rendering component uses as input the result of the last particle advec- The lifetime of a streamline expires k cycles after its gener- tion. The advected particle positions are first extracted from ation by the seeding process. The particle dies at this point, the texture. Then, the particles are added into the buffer in i. e., it is not advected any further. In the next cycle it will be its proper cycle. Finally, the geometry is rendered for each replaced by a new particle at a new seed location. To achieve particle up to the last advected position. high integration accuracy during advection, we favor short lifetimes. 4. Unsteady Flow 3.4. Rendering When function f describes an unsteady flow field with do- main D being the Cartesian product of the two or three A streamline is represented by a polyline define by connect- spatial dimensions and a temporal dimension, we replace ing the successive discrete locations that the corresponding streamlines by pathlines. Pathlines are defined as paths of particle traverses during advection. Streamlines are rendered particles in a flow field that changes over time, i. e., during using line primitives. Line primitives offer the greatest sim- pathline generation (or particle advection). plicity and speed, yet they can provide good visual qual- ity when coupled with appropriate rendering techniques (see We visualize unsteady flow by rendering a dense, uni- Section 6). form distribution of pathlines with constant lifetime. The lifetime of a pathline consists again of the three phases seed- ing, advection, and expiration. The seeding phase, the expi- 3.5. Implementation ration phase, and the line rendering are performed as done Since we compute and render many streamlines using a for streamlines. higher-order integration method, we exploit the parallelism During advection we have to account for the changing of contemporary graphics hardware for efficiency. To imple- flow field. The flow integration for unsteady fields is de- ment the entire processing pipeline in graphics hardware, we scribed by also have to exploit the programmability of graphics hard- ware. t p(t) = p(0) + f p(x),x dx , Z   For particle seeding, we have implemented a Halton se- 0 quence generator in the vertex shader to not reduce the effi- where p(t) describes the position of a particle at time t and ciency of the pipelining process using the fragment shader. function f depends on both position of the particle and time. As input, we stream a set of vertices, where each vertex holds We use fourth-order Runge-Kutta integration, which is gen- a 2D index corresponding to a texel in a 2D texture. Each eralized for time-dependent fields to the equations vertex streamed into the vertex shader generates two or three Halton numbers for 2D or 3D flow, respectively, and passes x1 = fp(t),t , the fragment shader value. At the end of this stage, the ren- ∆t ∆t x = f p(t) + · x ,t + , dered texture contains the location of a seed particle in each 2  2 1 2  texel. ∆t ∆t x3 = f p(t) + · x2,t + , The advection component of the algorithm takes as input a  2 2  set of particle positions, and generates a corresponding set of ∆ · ∆ x4 = fp(t) + t x3,t + t , and advected particles. We have implemented the advection by x + 2(x + x ) + x passing two textures, the vector field and the particle texture. p(t + ∆t) = 1 2 3 4 . These textures are used by a fragment shader to generate 6 advected particles, which are written to a new render texture. For implementation purposes, we use a texture for the vec- A single advection is performed by first sampling each tor field at time t +∆t in addition to the textures for the vector texel of the texture that holds the vector field at time t in the field at time t and the particle texture. The numerical integra- fragment shader. For each particle’s position the vector field tion is performed using six texture reads.

submitted to EUROGRAPHICS - IEEE VGTC Symposium on Visualization (2005) Park, Budge, Linsen, Hamann & Joy / Dense Geometric Flow Visualization 5

5. MDTFs In a bitonic sort [Bat68], a sequence of numbers (repre- senting depth in our application) is recursively divided into To capture the entire flow field we use a dense, uniform seed- two subsequences of equal length, where the first subse- ing strategy for streamline or pathline generation. For 3D quence is being sorted recursively in ascending and the sec- fields, dense structures cause occlusion problems, which we ond subsequence in descending order. The two subsequences tackle by applying MDTFs [PBL∗04]. MDTFs can be used are merged by comparing (and possibly switching) the ith to select regions of a certain physical behavior, called fea- value of the first subsequence with the ith value of the second tures. We extract features with respect to five physical quan- subsequence for all positions i and performing the merging tities of flow fields, the quantities being velocity magnitude, step recursively for both subsequences. gradient magnitude, divergence, curl magnitude, and helic- ity. We have derived equations for each of the five magni- The beauty of the bitonic sort algorithm is that its mecha- tudes in [PBL∗04]. We only visualize streamlines or path- nism is independent of the values to be sorted and thus can be lines, respectively, within the extracted features. implemented in hardware. Moreover, it is amenable to paral- lel architectures like GPUs. In [PDC∗03], an implementation In order to define an MDTF, we each of the N = 5 of a bitonic sort algorithm on a GPU was proposed. We use scalar magnitudes to color channels R, G, and B and opacity an improved version of this implementation as described in values α by using 1D transfer functions T : IR → IR4, i = i [KSW04]. The depth and indices of all particles are stored 1,...,N. We combine the 1D transfer functions T to an N- i in a 2D texture. The sorting algorithm first sorts the depth dimensional transfer function T : IRN → IR4, according to the values of all the rows of the texture simultaneously and then equations merges the rows. 1 N TRGB(x) = ∑ Ti,RGB(xi) · Ti,α(xi) N i=1 6.2. Illumination and Flat shading algorithms of line primitives impair spatial per- N 1 ception of the rendered geometry. In [ZSH96], a method for Tα(x) = ∑ Ti,α(xi) , N i=1 rendering illuminated lines at interactive frame rates is de- scribed by utilizing texture mapping hardware. The light in- ∈ N where x = (x1,...,xN) IR . The color values Ti,RGB as- tensity I(x) at each point x on a line segment is computed signed by the individual 1D transfer functions are averaged by applying a slightly modified Phong model. The model is in a weighted fashion to define the color TRGB assigned by given by the MDTF, where the weights are given by the individual opacities Ti,α. The opacity values Ti,α assigned by the in- I(x) = Iambient (x) + Idi f f use(x) + Ispecular(x) , dividual 1D transfer functions are averaged as well, to de- fine the opacity Tα assigned by the MDTF. The function T where the ambient portion is kept constant, Iambient = allows one to visualize each component distinctly, but also kambient , the diffuse portion is defined as Idi f f use = · makes possible blending of the values to extract a feature, kdi f f use(l n) with light direction l and normal vector n, and the specular component is defined as Ispecular = kspecular(v · whose behavior is defined by a combination of the five phys- m ical quantities/properties. r) with viewing direction v and reflection vector r. The il- lumination coefficients kambient , kdi f f use, and kspecular and the exponent m are application-specific. 6. Rendering techniques Using geometric properties the model is adjusted to

We render line primitives whose simplicity is advantageous p − · 2 for rendering many streamlines/pathlines at high frame rates. Idi f f use = kdi f f useq1 (l t)  But, this qpproach requires us to apply certain rendering techniques to enhance visual perception in 3D settings. and m − · 2 − · 2 − · · Ispecular = kspecularq1 (l t) q1 (v t) (l t)(v t) . 6.1. Depth Sorting The surface-specific normal vector n and reflection vector Most importantly, we need to sort our line primitives ac- r are replaced by expressions using tangent vector t, such cording to their depth in viewing direction, which is used that the model can be applied to line segments. To compen- to render lines in the correct order. When reading data from sate for excessive brightness, we raise the diffuse portion to the GPU, performing a depth sort on the central processing the power of an exponent p. We implement the illumination unit (CPU), and passing the data back to the GPU, data ex- algorithm in graphics hardware using a 4 × 4 texture trans- change becomes the bottle neck of our entire rendering sys- formation matrix for the computation of diffuse and specular tem. Thus, we perform depth sorting on the GPU. reflection as described in [SZH97]. submitted to EUROGRAPHICS - IEEE VGTC Symposium on Visualization (2005) 6 Park, Budge, Linsen, Hamann & Joy / Dense Geometric Flow Visualization

6.3. Haloing When overlapping lines occur, their spatial relationship can be clarified using haloing [ARS79]. We render a dark halo with a width of six pixels around each line that is rendered with a width of 1.5 pixels. The halo of a line obstructs the view of any line behind it.

6.4. Flow Orientation For any flow visualization it is important to indicate the ori- entation of a flow direction. In our system flow direction is visualized by motion. In addition, we intuitively emphasize orientation by highlighting the tip of each streamline or path- line, respectively. Even in still images the flow orientation can be perceived.

6.5. Depth-based Attenuation Figure 2: Dense geometric flow visualization applied to time Although depth sorting, illumination, and haloing effectively step 1500 of jets data set. MDTFs extract regions of high curl support visual perception, it may be desirable to further en- magnitude and high velocity magnitude. hance depth perception by the use of color attenuation. We have implemented the two attenuation methods of desatura- tion and darkening [SM02]. Desaturation reduces the satura- # cycles # seeds # active streamlines frame rate tion of a color while maintaining hue and brightness, which leads to the visual impression of light being absorbed or scat- 16 64 1024 66 fps tered by particles (like smog or fog) in the atmosphere. Dark- 16 256 4096 66 fps ening reduces the brightness of a color while maintaining 32 256 8192 22 fps hue and saturation. The two attenuation methods can also be 32 1024 32768 6.69 fps combined. 64 256 16384 7.43 fps 128 64 8192 7,43 fps 7. Results and Discussion 1: Frame rates for varying number of seeds, cycles, We tested our approach for steady and unsteady data and active streamlines. sets. For steady flow data, we examined a tornado data set [CM93] of size 1283. For the unsteady case, we examined a CFD simulation of five jets consisting of 2000 timesteps of 1283 vector field data.† Figures 2 and 4 show dense geometric flow visualization for the jets data set. In Figure 2, we have used depth-sorting Figure 3 shows a dense geometric flow visualization for and illumination in conjuction with depth-based attenuation the tornado data set using streamlines. In Figure 3(a), we to render streamlines at time step 1500. MDTFs are used to have rendered polylines using flow orientation, depth-based extract regions with high curl magnitude and high velocity attenuation, and haloing. The streamlines are not lit nor are magnitude. Figure 4 shows three steps of an animation of they sorted by depth. Figure 3(b) shows the importance of unsteady flow using pathlines. The pictures have been cap- using illumination and depth sorting. The visual perception tured at time steps 1120, 1400 and 1800. The images have has increased significantly. In Figure 3(c), we have used an been rendered using haloing, illumination, flow orientation, MDTF that extracts regions of high curl (or vorticity) magni- and depth-based attenuation. tude. The streamlines are only drawn within the vortex area. The computation times for our rendering depend on the In our current implementation, the six pixel-wide halo- rendering techniques used and on the number of streamlines ing lines cannot be depth-sorted in conjunction with our 1.5 or pathlines, respectively. Table 1 lists frame rates for steady pixel-wide streamlines/pathlines, as they represent different data when rendering illuminated streamlines. When apply- types of geometric objects. Thus, haloing only looks correct ing depth sorting frame rates decrease by a factor five to when we extract features with low complexity, i. e., when the ten. For unsteady data when rendering pathlines, we have artifacts caused by omitting depth-sorting are minimal. achieved frame rates up to ten frames per second. Contrary to texture-based flow visualization approaches, the frame rates † Data set courtesy of Kwan-Liu Ma, IDAV, University of Califor- achieved when using dense geometric flow visualization are nia, Davis (almost) independent of the size of the data set. Thus, for

submitted to EUROGRAPHICS - IEEE VGTC Symposium on Visualization (2005) Park, Budge, Linsen, Hamann & Joy / Dense Geometric Flow Visualization 7 larger data sets that still fit in the texture memory, frame Graphics Research Group at the Institute for Data Analy- rates are close to the ones listed above. For unsteady data, sis and Visualization (IDAV) at the University of California, data transfer, i. e. copying the individual time steps to the Davis. GPU, becomes a bottle-neck. Another nice property of our dense geometric flow visu- References alization approach when compared to texture-based methods [ARS79] APPEL A., ROHLF F. J., STEIN A. J.: The is that no spatial-temporal coherence problems occur. When haloed line effect for hidden line elimination. coupling dye advection with texture-based flow visualiza- Computer Graphics 13, 2 (1979), 151–157. 6 tion techniques, blurring based on numerical diffusion arti- facts can be observed, which has only been fixed recently in [Bat68] BATCHER K. E.: Sorting networks and their ap- [Wei04]. As our advection primitives are pathlines, i. e., geo- plications. In Proceedings of AFIPS Spring Joint metric objects, our advection step is not subject to diffusion. Computing Conference (1968), vol. 32, pp. 307– 314. 5 ∗ 8. Conclusions and Future Work [BMP 90] BANCROFT G. V., MERRITT F. J., PLES- SEL T. C., KELAITA P. G., MCCABE R. K., We have presented a flow visualization approach based on GLOBUS A.: FAST: a multi-processed environ- rendering geometry in a dense, uniform distribution. We ment for visualization of computational fluid dy- have integrated flow using particle advection to generate namics. In VIS ’90: Proceedings of IEEE con- streamlines (for steady flow) and pathlines (for unsteady ference on Visualization ’90 (1990), IEEE Com- flow). Ideas from texture-based flow visualization have been puter Society Press, pp. 14–27. 2 adopted. Pipelining is used to manage seeding, advection, and death of streamlines/pathlines with constant lifetime. [CL93] CABRAL B., LEEDOM L.: vector fields Our method uses a fourth-order Runge-Kutta method, which using line integral convolution. In Computer has been efficiently implemented in hardware by exploit- Graphics Proceedings (1993), pp. 263–269. 1, ing parallelism and programmability of graphics hardware. 2 We have addressed the occlusion problem inherent to dense [CM93] CRAWFIS R. A., MAX N.: Texture splats for 3d volumetric representations by applying MDTFs restricting vector and scalar field visualization. In Proceed- particle attenuation to regions of certain physical behavior, ings of IEEE Conference on Visualization 1993 features. Geometry is rendered using several techniques to (1993), Nielson G. M., Bergeron D., (Eds.), enhance visual perception. We have applied our approach IEEE, IEEE Computer Society Press, pp. 261– to steady and unsteady 3D flow fields achieving interactive 266. 6 frame rates. [FG98] FUHRMANN A., GRÖLLER E.: Real-time tech- Future research efforts will be directed at employing a niques for 3d flow visualization. In VIS ’98: depth-sorted haloing strategy, using adaptive time steps for Proceedings of IEEE conference on Visualiza- flow integration, experimenting with different types of ge- tion ’98 (1998), IEEE Computer Society Press, ometry (requires programmability of the graphics card’s ge- pp. 305–312. 2 ometry engine), and extending the approach to unstructured and irregularly grid-structured data. [JL97] JOBARD B., LEFER W.: The motion map: effi- cient computation of steady flow animations. In VIS ’97: Proceedings of IEEE conference on Vi- Acknowledgments sualization ’97 (1997), IEEE Computer Society This work was supported by the National Science Foun- Press, pp. 323–328. 2 dation under contract ACI 9624034 (CAREER Award), [JL00] JOBARD B., LEFER W.: Unsteady flow visual- through the Large Scientific and Software Data Set Visu- ization by animating evenly-spaced streamlines. alization (LSSDSV) program under contract ACI 9982251, Computer Graphics Forum 19, 3 (2000), 21–31. through the National Partnership for Advanced Computa- 2 tional Infrastructure (NPACI) and a large Information Tech- [Kel96] KELLER A.: Quasi-monte carlo methods nology Research (ITR) grant; the National Institutes of in computer graphics: The global illumination Health under contract P20 MH60975-06A2, funded by the problem. Lectures in Applied Mathematics 32 National Institute of Mental Health and the National Science (1996), 455–469. 3 Foundation; by a United States Department of Education Government Assistance in Areas of National Need (DOE- [KSW04] KIPFER P., SEGAL M., WESTERMANN R.: GAANN) grant #P200A980307; and through a Hewlett- Uberflow: A GPU-based particle engine. In Pro- Packard contribution to a Graduate Student Fellowship. ceedings of Eurographics Conference on Graph- We thank the members of the Visualization and Computer ics Hardware (2004). 5 submitted to EUROGRAPHICS - IEEE VGTC Symposium on Visualization (2005) 8 Park, Budge, Linsen, Hamann & Joy / Dense Geometric Flow Visualization

[Lar02] LARAMEE R. S.: Interactive 3d flow visualiza- Conference on Computer Graphics and Appli- tion using a streamrunner. In CHI 2002 Confer- cations – Pacific Graphics 2002 (2002), Coquil- ence on Human Factors in Computing Systems, lart, Shum„ Hu, (Eds.), IEEE, IEEE Computer Extended Abstracts (2002), pp. 804–805. 2 Society Press. 6 ∗ [LHD 04] LARAMEE R. S., HAUSER H., DOLEISCH H., [SML04] SCHROEDER W., MARTIN K., LORENSEN B.: VROLIJK B., POST F. H., WEISKOPF D.: The The Visualization Toolkit An Object-Oriented state of the art in flow visualization: Dense and Approach To 3D Graphics, 3 ed. Kitware, texture-based techniques. Computer Graphics Inc. publishers, 2004. 2 Forum 23 (2004). 1 [SZH97] STALLING D., ZÖCKLER M., HEGE H.-C.: [MBC93] MAX N., BECKER B., CRAWFIS R.: Flow vol- Fast display of illuminated field lines. IEEE umes for interactive vector field visualization. In Transactions on Visualization and Computer VIS ’93: Proceedings of IEEE conference on Vi- Graphics 3, 2 (1997), 118–128. 5 sualization ’93 (1993), pp. 19–24. 1 [TB96] TURK G., BANKS D.: Image-guided stream- [Nie92] NIEDERREITER H.: Random Number Genera- line placement. In International Conference on tion and quasi-Monte Carlo Methods. SIAM, Computer Graphics and Interactive Techniques 1992. 3 (1996), pp. 453–460. 2 ∗ [PBL 04] PARK S., BUDGE B., LINSEN L., HAMANN [USM96] UENG S. K., SIKORSKI K., MA K.-L.: Ef- B., JOY K. I.: Multi-dimensional transfer func- ficient streamline, streamribbon, and stream- tions for interactive 3d flow visualization. In tube constructions on unstructured grids. IEEE Proceedings of The 12th Pacific Conference on Transactions on Visualization and Computer Computer Graphics and Applications - Pacific Graphics (1996), 100–110. 2 Graphics 2004 (2004), Cohen-Or D., Ko H.-S., [vW02] VAN WIJK J.: Image based flow visualiza- Terzopoulos D.„ Warren J., (Eds.). 2, 5 tion. In Proceedings of the 29th Conference on ∗ [PDC 03] PURCELL T. J., DONNER C., CAMMARANO Computer Graphics and Interactive Techniques M., JENSEN H. W., HANRAHAN P.: Pho- (2002), Spencer S., (Ed.), vol. 21 of ACM Trans- ton mapping on programmable graphics hard- actions on Graphics, ACM Press, pp. 745–754. ware. In HWWS ’03: Proceedings of the ACM 2 SIGGRAPH/EUROGRAPHICS conference on [Wei04] WEISKOPF D.: Dye advection without the blur: Graphics hardware (2003), Eurographics Asso- A level-set approach for texture-based visual- ciation, pp. 41–50. 5 ization of unsteady flow. Computer Graphics ∗ [PLV 02] POST F. H., LARAMEE R. S., VROLIJK B., Forum (Eurographics 2004) 23, 3 (2004), 479– HAUSER H., DOLEISCH H.: Feature extraction 488. 2, 7 and visualisation of flow fields. In Eurographics [WGP97] WEGENKITTL R., GRÖLLER E., PURGATH- 2002, State of the Art Reports (2002), Fellner D., OFER W.: Animating flow fields: Rendering of Scopigno R., (Eds.), The Eurographics Associa- oriented line integral convolution. In CA ’97: tion, IEEE Computer, pp. 69–100. 1 Proceedings of Computer Animation (1997), ∗ IEEE Computer Society, p. 15. 2 [PVH 03] POST F. H., VROLIJK B., HAUSER H., LARAMEE R. S., DOLEISCH H.: The state of [ZSH96] ZÖCKLER M., STALLING D., HEGE H.-C.: In- the art in flow visualization: Feature extraction teractive visualization of 3d-vector fields using and tracking. Computer Graphics Forum 22, 4 illuminated stream lines. In VIS ’96: Proceed- (2003), 775–792. 2 ings of IEEE conference on Visualization ’96 (1996), IEEE Computer Society Press. 2, 5 [SK97] SHEN H., KAO D.: UFLIC: A line integral convolution algorithm for visualizing unsteady flows. In Proceedings of IEEE Conference on Visualization 1997 (1997), Yagel R., Hagen H., (Eds.), IEEE Computer Society Press, pp. 317– 322. 2

[SM02] SCHUSSMAN G., MA K.-L.: Scalable self- orienting surfaces: A compact, texture-enhanced representation for interactive visualization of 3d vector fields. In Proceedings of Tenth Pacific

submitted to EUROGRAPHICS - IEEE VGTC Symposium on Visualization (2005) Park, Budge, Linsen, Hamann & Joy / Dense Geometric Flow Visualization 9

(a) (a)

(b) (b)

(c) (c) Figure 3: Dense geometric flow visualization applied to Figure 4: Animation with dense geometric flow visualiza- steady flow of tornado data set. Streamlines are rendered tion applied to unsteady flow of jets data set. Pathlines are using (a) haloing and flow orientation or (b) depth sorting rendered at time steps 1120, 1400, and 1800. and illumination in conjuction with depth-based attenuation. MDTFs are used for feature extraction, e. g., regions of high curl magnitude (c). submitted to EUROGRAPHICS - IEEE VGTC Symposium on Visualization (2005)