9
High-quality Volume Rendering of Adaptive Mesh Refinement Data Gunther H. Weber 1,2,3 , Oliver Kreylos 1,3 , Terry J. Ligocki 3 , John M. Shalf 3,4 Hans Hagen 2 , Bernd Hamann 1,3 , Kenneth I. Joy 1 and Kwan-Liu Ma 1 1 CIPIC, Department of Computer Science, University of California, Davis, USA 2 AG Computergraphik, Department of Computer Science, University of Kaiserslautern, Germany 3 NERSC, Lawrence Berkeley National Laboratory, Berkeley, USA 4 NCSA, University of Illinois, Urbana-Champaign, USA Abstract Adaptive mesh refinement (AMR) is a numerical simulation technique used in computational fluid dynamics (CFD). By using a set of nested grids of different resolutions, AMR combines the simplic- ity of structured rectilinear grids with the ability to adapt to local changes in complexity in the do- main. Without proper interpolation on the bound- aries of grids of different levels of a hierarchy, dis- continuities can arise. Treating locations of data values given at cell centers of AMR grids as ver- tices of a dual grid creates gaps between hierarchy levels. Using an index-based tessellation approach that fills these gaps with “stitch cells” we define an interpolation scheme that avoids discontinuities at level boundaries. We use the resulting interpolation scheme to generate volume-rendered images. Mod- ifying transfer functions on a per-level basis allows us to emphasize (or de-emphasize) a specific level and gain a better understanding of the underlying hierarchical structure. 1 Introduction AMR was introduced to computational physics by Berger and Oliger [2] in 1984. A modified version of their algorithm was later published by Berger and Colella [1]. AMR has become increasingly popular especially in the computational physics community. Today, it is used in a variety of applications. For ex- ample, Bryan [3] has used the technique to simulate astrophysical phenomena using a hybrid approach of AMR and particle simulations. Figure 1 shows a simple two-dimensional (2D) AMR hierarchy produced by the Berger–Colella method. The basic building block of a dFigure 1: AMR hierarchy consisting of four grids in three levels. Grid boundaries are drawn as bold lines. Locations at which dependent variables are given are indicated by solid discs. dimensional Berger-Colella AMR hierarchy is an axis-aligned, structured rectilinear grid. Each grid g consists of hexahedral cells and is positioned by specifying its local origin og . AMR typically uses a cell-centered data format, i.e., dependent function values are associated with cell centers. Since loca- tion and connectivity can be inferred from the regu- lar grid structure, it suffices to store dependent data values in arrays. An AMR hierarchy consists of several levels Λ l comprising one or multiple grids. All grids in the same level have the same cell size. A hierarchy’s root level Λ0 is the coarsest level. Each level Λ l may be refined by a finer level Λ l+1 . A grid of a refined level is referred to as a coarse grid and a grid of a refining level as a fine grid.A refinement ratio r specifies how many fine grid cells fit into a coarse grid cell, considering all axial directions. VMV 2001 Stuttgart, Germany, November 21–23, 2001

High-quality Volume Rendering of Adaptive Mesh Refinement Datagraphics.idav.ucdavis.edu/~hamann/WeberKreylosLigockiSh... · 2001. 8. 13. · High-quality Volume Rendering of Adaptive

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

  • High-quality Volume Rendering of Adaptive Mesh Refinement Data

    Gunther H. Weber1,2,3, Oliver Kreylos1,3, Terry J. Ligocki3, John M. Shalf3,4

    Hans Hagen2, Bernd Hamann1,3, Kenneth I. Joy1 and Kwan-Liu Ma1

    1 CIPIC, Department of Computer Science, University of California, Davis, USA2 AG Computergraphik, Department of Computer Science, University of Kaiserslautern, Germany

    3 NERSC, Lawrence Berkeley National Laboratory, Berkeley, USA4 NCSA, University of Illinois, Urbana-Champaign, USA

    Abstract

    Adaptive mesh refinement (AMR) is a numericalsimulation technique used in computational fluiddynamics (CFD). By using a set of nested grids ofdifferent resolutions, AMR combines the simplic-ity of structured rectilinear grids with the abilityto adapt to local changes in complexity in the do-main. Without proper interpolation on the bound-aries of grids of different levels of a hierarchy, dis-continuities can arise. Treating locations of datavalues given at cell centers of AMR grids as ver-tices of a dual grid creates gaps between hierarchylevels. Using an index-based tessellation approachthat fills these gaps with “stitch cells” we define aninterpolation scheme that avoids discontinuities atlevel boundaries. We use the resulting interpolationscheme to generate volume-rendered images. Mod-ifying transfer functions on a per-level basis allowsus to emphasize (or de-emphasize) a specific leveland gain a better understanding of the underlyinghierarchical structure.

    1 Introduction

    AMR was introduced to computational physics byBerger and Oliger [2] in 1984. A modified versionof their algorithm was later published by Berger andColella [1]. AMR has become increasingly popularespecially in the computational physics community.Today, it is used in a variety of applications. For ex-ample, Bryan [3] has used the technique to simulateastrophysical phenomena using a hybrid approachof AMR and particle simulations.

    Figure 1 shows a simple two-dimensional (2D)AMR hierarchy produced by the Berger–Colellamethod. The basic building block of ad–

    Figure 1: AMR hierarchy consisting of four gridsin three levels. Grid boundaries are drawn as boldlines. Locations at which dependent variables aregiven are indicated by solid discs.

    dimensional Berger-Colella AMR hierarchy is anaxis-aligned, structured rectilinear grid. Each gridg consists of hexahedral cells and is positioned byspecifying its local originog. AMR typically usesacell-centered data format,i.e., dependent functionvalues are associated with cell centers. Since loca-tion and connectivity can be inferred from the regu-lar grid structure, it suffices to store dependent datavalues in arrays.

    An AMR hierarchy consists of several levelsΛlcomprising one or multiple grids. All grids in thesame level have the same cell size. A hierarchy’sroot level Λ0 is the coarsest level. Each levelΛlmay be refined by a finer levelΛl+1. A grid of arefined level is referred to as acoarse grid and agrid of a refining level as afine grid. A refinementratio r specifies how many fine grid cells fit intoa coarse grid cell, considering all axial directions.

    VMV 2001 Stuttgart, Germany, November 21–23, 2001

  • This value is always a positive integer. A refininggrid refines an entire levelΛl, i.e., it is completelycontained in the region covered by that level but notnecessarily in the region covered by a single grid ofthat level. Each refining grid can only refine com-plete grid cells of the parent level,i.e., it must startand end at the boundaries of grid cells of the par-ent level. The Berger-Colella scheme [1] requires alayer with a width of at least one grid cell betweena refining grid and the boundary of the refined level.

    We generate volume-rendered images from AMRdata using a cell-projection approach. For interpo-lation purposes, dependent data values should be as-sociated with a cell’s vertices rather than its center.To avoid a re-sampling step, we interpret the loca-tions of the samples as vertices of a new grid anduse this dual grid for interpolation. The use of dualgrids creates gaps between grids of different hier-archy level. We fill those gaps in an index-basedstitching step. The resulting stitch mesh can be usedto define an interpolation scheme for the whole do-main of a data set. We use this interpolation schemefor progressive volume rendering of AMR hierar-chies,i.e., we start with an image obtained by ren-dering a coarse level and refine this image by incor-porating the results produced by rendering finer lev-els. In addition, we introduce a method that allowsa user to emphasize or de-emphasize certain levelsby modifying the transfer functions used for vol-ume rendering on a per-level basis. For each level,an opacity weight and a saturation weight are spec-ified. A base transfer function is multiplied withthese weights to obtain a level transfer function.

    2 Related Work

    Little research has been done to date regarding thevisualization of AMR data. Published work hasmainly focused on converting AMR data into suit-able conventional representations and visualizingthese, see Normanet al. [10], while preserving theoriginal hierarchical structure as much as possible.Ma [6] describes a parallel rendering approach forAMR data. Even though he re-samples the data tovertex-centered data, he still uses the hierarchy andcontrasts this approach to re-sampling the data tothe finest available resolution. Max [8] describes asorting scheme for cells for volume rendering anduses AMR data as one application of his method.Weber et al. [13] extract isosurfaces from AMR

    data sets. To avoid discontinuities and re-samplingproblems they introduce an approach based on dualgrids: By interpreting the locations of cell-centereddata values as vertices of a new dual grid they avoidthe need for re-sampling. The use of a dual gridsproduces gaps between hierarchy levels. Using ascheme related to that used by Grosset al. [5],Weber et al. fill these gaps via a generic stitch-ing scheme using deformed hexahedra, triangularprisms, pyramids and tetrahedra.

    Direct volume rendering is, besides the extrac-tion of isosurfaces and slice-based methods, themost common visualization method for scalar vol-ume data. Using so-calledtransfer functions, scalarvalues are “mapped” to illumination and color prop-erties. Regions in the volume are associated withcolor/illumination properties that a transfer functionassigns to scalar values. Direct volume renderingmethods can be differentiated by their underlying il-lumination models (i.e., by the “optical properties”of transfer functions) and whether they operate inimage space or object space. Image-space-basedalgorithms,e.g., ray casting [11], operate on pixelsin screen space as “computational units,”i.e., theyperform computations on a per-pixel basis. Object-space-based methods, like cell-projection [7], oper-ate on cells as computational units,i.e., they per-form computations on a per-cell basis. Max [9] sur-veys various optical models used for volume ren-dering.

    Weber et al. [12] present two volume render-ing schemes for AMR data. One scheme is ahardware-accelerated renderer for previewing, theother scheme is based on cell projection and allowsthe progressive rendering of AMR hierarchies. It ispossible to render an AMR hierarchy starting witha coarse representation and refining it by subse-quently integrating the results from rendering finergrids.

    3 Dual Grids and Grid Stitching

    Most interpolation techniques expect dependentdata values to be located at a cell’s vertices, whilegrids in an AMR hierarchy typically use a cell-centered format. By using thedual grid, i.e., thegrid defined by the locations of the function valuesat the cell centers, it is possible to avoid a resam-pling step and use the original data values for inter-polation purposes.

    666

  • Figure 2: Dual grids of the three AMR grids com-prising the first two hierarchy levels shown in Fig-ure 1. The original AMR grids are drawn in dashedlines and the dual grids in solid lines.

    Figure 2 shows the dual grids for the first twolevels of the AMR hierarchy shown in Figure 1. Wenote that the dual grids have “shrunk” by one cellin each axial direction when compared to the origi-nal grid. The result is a gap between the coarse gridand the embedded fine grids. In order to interpolatevalues in these gaps, we use a tessellation schemethat “stitches” grids of two different hierarchy lev-els. The resultingstitch mesh is constrained by theboundaries of the coarse and the fine grids and canbe used to merge levels seamlessly. This stitch meshmust not subdivide any boundary elements of theexisting grids, only existing faces, edges and ver-tices can be used and may not be subdivided.

    In Weberet al. [13], an index-based scheme isused to generate stitch cells. Boundary faces, edgesand vertices of a fine grid must be connected to acoarse level. In the simple case of a single finegrid that is embedded in a coarse grid, the rectan-gles comprising a fine-grid boundary face must beconnected to a coarse-grid vertex, edge or rectangle.The cell types resulting from these connections arepyramids, deformed triangle prisms and deformedhexahedral cells. A fine-grid edge must either beconnected to two perpendicular edges (resulting intwo tetrahedral cells) or two quadrilaterals (result-ing in two deformed triangular prism cells) of thecoarse grid. Each fine-grid vertex is connected tothree quadrilaterals of the coarse grid via pyramidcells.

    When a coarse grid is refined by more than onefine grid, each coarse-grid point must be checked

    v6v7

    1v’ (z)

    3v’ (z)

    v3

    v2v1

    v5v4

    v00v’ (z)

    2v’ (z)

    1

    x

    y

    z

    p

    (i) Unit cube

    v2

    v3

    v4 v5

    1v’ (x)

    3v’ (x)

    pv0

    v1

    x

    y

    z

    0v’ (x)

    1

    (ii) Standard triangularprism

    v0

    v1 v2

    v3

    v4

    x

    y

    z

    p3v’ (y)

    1v’ (y)

    0v’ (y)

    2v’ (y)1

    (iii) Standard pyramid

    v0

    v1

    v3

    v2x

    y

    z

    p

    1

    (iv) Standard tetrahedron

    Figure 3: Base elements for interpolation.

    for refinement. If a fine-grid boundary edge is ad-jacent to a boundary edge of another fine grid, thisedge must be “upgraded” to the quadrilateral caseby connecting it to the adjacent edge. Vertices canbe upgraded to edges, or even quadrilaterals whenseveral grids meet at a given location. All possiblerefinement configurations of coarse-grid points re-sult in a large number of possible cases that needsto be considered when a fine grid is connected toa coarse level. Weberet al. [13] describe in detailhow to deal with these cases.

    4 Interpolation

    We use the standard elements shown in Figure 3for interpolation by mapping all cells generated inthe stitching process to the appropriate standard el-ement. All cells generated in our stitching approachhave either triangular or quadrilateral faces. Onboundary faces we have to ensure that interpolationyields consistent results, regardless of element type.We use bilinear interpolation for quadrilateral facesand linear interpolation (based on the barycentriccoordinates of the interpolated point) for triangularboundary faces.

    666

  • Single grid cell

    Scan

    tinconversion

    Back−facing pa

    rt

    Front−facing part

    Screen

    Ray−segment queues

    outt

    Figure 4: Cell projection.

    Values in the unit cube 3(i) are interpolated us-ing standard trilinear interpolation which corre-sponds to bilinear interpolation when restricted tothe boundary faces.

    In the case of a triangular prism cell, see Fig-ure 3(ii), we first compute the values at the ver-tices of the triangle containing the pointp (i.e., thetriangle that is obtained by intersecting the prismwith a plane being parallel to its two triangular endfaces and containingp) by linear interpolation inx–direction. The value atp is obtained by linearinterpolation within this triangle.

    Interpolation in pyramid cells, see Figure 3(iii),is done by a combination of bilinear and linear in-terpolation. To obtain a function value for a pointp, we first interpolate linearly along the four sideedges emanating from the point(0, 1, 0): This stepinterpolates the values at the vertices of a square inthey = constant plane containingp. Subsequentlywe interpolate bilinearly in they = constant plane.

    Linear interpolation is used for tetrahedral cells.p is expressed in term of its barycentric coordinatesand these are used as interpolation weights.

    5 Cell Projection

    Cell projection [7] is an object-space-based methodfor volume rendering. It is similar to ray casting, awidely used image-space approach. Both methodstrace rays through the volume, accumulating lightalong each ray. Ray casting does this on a per-pixel basis. Cell projection methods construct raysegments passing through the individual cells andmerge them.

    We maintain a priority queue for each pixel thatcollects all ray segments contributing to that pixel.Figure 4 shows the fundamental idea of our im-plementation of cell projection. Boundary facesof cells are divided into two parts, afront-facingpart (faces with normals directed toward the viewer)

    t in

    outs

    ins

    s

    s

    t

    x

    y

    t outt

    p

    Screen 1

    1out

    in

    Figure 5: The transformation between a stitch celland its standard element is linear. Line ray segmentsin the stitch cell are mapped to line segments in thestandard element.

    and aback-facing part (faces with normals directedaway from the viewer). First, the front-facing partis scan-converted into a buffer. For each pixel in-fluenced by a cell, this buffer holds a depth corre-sponding to an entry parameter, calledtin, alongthe ray and an interpolated scalar value at that po-sition. Subsequently, the back-facing part is scan-converted. For each generated pixel, the depth cor-responding to the exit parameter, calledtout, alongthe ray and an interpolated scalar value are com-puted. The entry parameter valuetin and the cor-responding scalar value are read from the buffer,and the ray segment fromtin to tout is constructed.This ray segment is inserted into the ray-segmentqueue of the corresponding pixel. If the ray seg-ment is adjacent to existing ray segments in theray-segment queue, it is merged with them. Tworay segments are adjacent when the union of theirparameter intervals along the ray, given by the in-tervals ([t0,in, t0,out] and [t1,in, t1,out]) is “contin-uous,” i.e., when eithert0,in = t1,out or t0,out =t1,in holds. When all cells are processed, each raysegment buffer contains only one ray segment cor-responding to the complete ray originating from thepixel.

    To create ray segments, interpolated values mustbe computed along these segments. As mentionedin Section 4, this is done by mapping each cell toits corresponding standard/unit element and usingthe interpolation function for that element. Map-ping a cell to its associated standard element can beintegrated into cell projection. For each vertex, westore its physical coordinates and corresponding co-ordinates in its standard element. When cell facesare scan-converted using physical coordinates, thestandard-element coordinates are linearly interpo-lated on the face and stored along with depth val-

    666

  • ues. Thus, pointssin andsout are known for a raysegment in standard-element space along with itsentry and exit parameter valuestin and tout. Allcells generated by our stitching approach, and thespecific AMR meshes that we are dealing with, canbe mapped to standard elements by a linear map-ping: Line segments within a cell are mapped toline segments within a standard element. Thus, itis possible to obtain values along a ray segment bylinearly interpolating the position in the standard el-ement betweensin andsout and using the standard-element interpolation function for this position, seeFigure 5.

    We use the absorption and emission light modeldescribed by Max [9]. We specify emission by threecomponents (red, green and blue) and absorption byone achromatic component, which implies that thiscomponent has the same effect on all color compo-nents. During cell projection, we compute trans-parency and emission for parts of ray segments thatintersect a cell. The transparency function for a cellis given by

    TC(s) = exp

    − s∫tin

    τ(x)dx

    , (1)whereτ(x) denotes the extinction coefficient. Thetransparency of a cell is computed asTC =TC(tmax), and its emission contribution as

    EC =

    tout∫tin

    C(s)τ(s)TC(s)ds. (2)

    The two valuesTC andEC are stored for each raysegment. Two adjacent ray segmentsS1 and S2with transparenciesTS1 andTS2 and emission con-tributionsES1 andES2 , respectively, are mergedinto a larger segment with combined transparency

    Tcombined = TS1TS2 (3)

    and combined emission

    Ecombined = ES1 + TS1ES2 , (4)

    where we assume thatS1 is the ray segment closerto the screen.

    Instead of specifying the extinction coefficientτin the transfer function, we specify and use an opac-ity valueα(s). (Opacity specifies the percentage oflight that remains after a ray has passed through a

    layer of material of unit thickness having an extinc-tion coefficientτ(s).) We define this opacity valueα(s) as

    α(s) = 1− exp(−τ(s)

    ), (5)

    If we approximate the integrals in Equations1 and 2 numerically by the Riemann sum usingequidistant samplessi with a constant spacing∆xbetween consecutive samples we obtain approxima-tions for a cell’s transparency

    TC,approx(s) =

    n∏i=0

    (1− α(si)

    )∆x(6)

    and emission contribution

    EC,approx(s) =

    n∑i=0

    C(si)o(si)

    i−1∏j=0

    (1− α(si)

    )∆x, (7)

    witho(si) = 1−

    (1− α(si)

    )∆x(8)

    This is equivalent to compositing the samples, see[14]. To approximate ray segments within a cell,we use Equations 6 and 7 with a fixed number ofsamples (usually two samples per cell).

    6 Progressive Cell Projection of AMRData

    We render an AMR hierarchy by subsequently cell-projecting its constituent levels. Two schemes arepossible: Bottom-up rendering which first rendersthe finer levels and proceeds with filling gaps byrendering the corresponding portions of the coarserlevels. In a top-down approach, a coarse level isrendered first. The result can be displayed and usedas an intermediate visualization. An image is re-fined by proceeding to the finer levels and replacingportions of an already rendered image with versionsat higher resolution.

    A bottom-up rendering scheme starts with cell-projecting the grids of the finest level. Grids ofthe coarser levels are cell-projected subsequently.While rendering coarser grids, cells overlapped bya finer grid must be skipped. Ray segments for theregions covered by these cells are already computedusing a representation at a higher resolution. This is

    666

  • p3

    p2

    p1

    p0

    0L

    1L

    L2

    v

    Figure 6: Progressive rendering of AMR hierarchy.

    done by using anintersection map. The intersec-tion map contains an entry for each cell of the orig-inal AMR grid that specifies the index of the gridthat overlaps it, should such a grid exist. In Weberet al. [12], the original grid is used to calculate in-terpolated values. Thus, for each cell, there exitsa unique finer grid that refines it. Each cell of thedual grid used in our current approach is defined byeight vertices. Each of these vertices corresponds toa cell of the original AMR grid and can be refinedby a different grid. It is no longer possible to spec-ify a single grid that refines a given cell. However,it is still possible to specify, for each cell, whether itis refined by finer levels. If at least one of the origi-nal AMR cells corresponding to one of the verticesof a cell is refined, then that cell must be skipped.Unfortunately, this prevents us from performing re-finement on the basis of single AMR grids. In ournew approach, we must use complete levels whengenerating a refined image.

    The top-down approach is modified in a similarway. The supplemental information added to eachray segment specifies the level in which a segmentwas created and the level that affects it (either thenext finer level or no level) rather than specifyinggrid indices. Ray segments are merged only whenthey are adjacent, were created in the same level andare affected by the same level. Figure 6 shows aray traced from a specific viewpoint. After render-ing the root levelL0, the ray-segment queue cor-responding to this ray contains three ray segments:one spanning from the entry point inp0 to the be-

    ginning of the first level (p1), one that is containedwithin the first level (fromp1 to p2) and one afterthe exit point from the first level (fromp2 to p3).The region fromv to p0 is “empty” and contains nocells. No ray segments are created for this region.

    Using an approach of partitioning rays into seg-ments that are affected by finer grids and those thatare not, it is straightforward to refine an alreadyrendered image by rendering a finer level. Beforea finer level is rendered, all ray segments affectedby the finer level are erased from the ray-segmentqueues. When the level grid is rendered, the gaps inthe ray segments resulting from this step are filledwith more accurate ray segments, resulting in anoverall improved image.

    7 Level-dependent Transfer Func-tions

    When rendering a hierarchical data set it is oftendesirable to emphasize or de-emphasize certain lev-els. For example, it is possible that a coarser levelis used to specify only the “context” within whicha finer level resides, but otherwise this coarser levelmight be of little interest. In this case, the coarselevel should not hide relevant information presentin the finer level. One way to achieve this is to de-emphasize the coarse level and render it with loweropacity,i.e., to scale the opacity portion of the trans-fer function by a level-specific constant. By spec-ifying a constant for each level, and modifying thetransfer function for that level accordingly, it is pos-sible to specify how much a level influences the fi-nal image.

    Another possibility to de-emphasize a level is toscale its color saturation. This can be done by con-verting RGB color values from the transfer functioninto HLS or HSV color space and scale the satura-tion by a second, level-dependent color map. De-creasing the saturation of a level does not prevent itfrom hiding details of a finer level, but this methodadds the possibility to distinguish levels and illus-trate their presence in a final image.

    8 Results

    Figures 7 and 8 show results from rendering the“bubble” data set. This data set is the result froma simulation of a shock wave passing through an

    666

  • Argon–bubble surrounded by another gas. The vi-sualized scalar field is gas density. The simulationresult is stored in AMR format with a80× 32× 32root-grid resolution. In the initial time step, this gridis refined by204 grids in a three-level hierarchy.Rendering all levels of the initial time step takesabout two minutes and23 seconds. Figures 7(ii),7(iii) and 7(iv) show the results from rendering onetime step near the end of the simulation. This timestep consists of three hierarchy levels containing682 grids in total. Rendering the root level requiredapproximately57 seconds, rendering the first levelone minute and42 seconds and rendering the sec-ond level three minutes and41 seconds. The im-provement in image quality by using the finer levelsis clearly visible.

    Figure 8 shows another time step form the samedata set. Rendering time was40 seconds for theroot level, one minute and32 seconds for the firstlevel and two minutes and48 seconds for the secondlevel. This time step consisted of525 grids in total.Rendering times were one minute and23 secondsfor the root level, one minute and55 seconds forthe first level and four minutes for the second level.The quality improvement from using finer represen-tations is clearly visible. (All time measurementswere done on a700 MHz Pentium III processor andusing a Linux system.)

    Figure 9 show images generated from an astro-physical simulation of a star cluster. Figures 9(i),9(ii) and 9(iii) show images resulting from render-ing one, two and three levels. Here, the quality im-provement is not so obvious, because features of thecoarse root level hide details from the finer levels.In Figure 9(iii), the opacity of the root level is scaledby a factor of0.6 and the opacity of the first level bya factor of0.8. Details of the finer level are clearlyvisible while retaining features from the coarse lev-els as orientation aid. In Figure 9(iv), the satura-tions of root and first level are scaled by a factor of0.2 in addition to the opacity weights. This furtherde-emphasizes these levels and allows us to clearlydistinguish between the details in the third level andthe “context” provided by the first two levels.

    9 Future Work

    Several extensions to our approach are possible.The original AMR scheme by Berger and Colella[1] requires a layer with a width of at least one grid

    cell between a refining grid and the boundary ofa refined level. Even though Bryan [3] abandonsthis requirement, we still require it to be satisfied.This is necessary, because this requirement ensuresthat only transitions between a coarse level and thenext finer level occur in an AMR hierarchy. Allow-ing transitions between arbitrary levels would resultin the need to consider too many cases during thestitching process. (The number of cases would belimited only by the number of levels in an AMR hi-erarchy, since within this hierarchy transitions be-tween arbitrary levels are possible.) These require-ments are equivalent to the requirements describedin [5] that also prevent transitions between arbi-trary levels. Unfortunately, this requirement pre-vents us from handling the full range of AMR datasets generated,e.g., those produced by the methodsof Bryan [3]. To handle the full range of AMR gridstructures, our whole grid-stitching approach mustbe extended. Any lookup-table approach has in-herent problems since the number of possible leveltransitions is bounded only by the number of levelsin the hierarchy.

    The generation of ray segments during cell pro-jection can be improved as well. More advancedlighting models and numerical integration schemescan be used. Furthermore, alternative interpolationfunctions for pyramid cells could be explored. Wealso plan to support refinement on a per-grid ba-sis instead of a per-level basis. Our cell projectionscheme is completely implemented in software anddoes not utilize special purpose graphics hardware.Even though this results in longer computation timethis fact will allow us to parallelize our approach.

    10 Acknowledgments

    This work was supported by the Directory, Office of Science, Office ofBasic Energy Sciences, of the U.S. Department of Energy under ContractNo. DE-AC03-76SF00098; the Lawrence Berkeley National Laboratory;the National Science Foundation under contracts ACI 9624034 and ACI9983641 (CAREER Awards), through the Large Scientific and SoftwareData Set Visualization (LSSDSV) program under contract ACI 9982251, andthrough the National Partnership for Advanced Computational Infrastructure(NPACI); the Office of Naval Research under contract N00014-97-1-0222;the Army Research Office under contract ARO 36598-MA-RIP; the NASAAmes Research Center through an NRA award under contract NAG2-1216;the Lawrence Livermore National Laboratory under ASCI ASAP Level-2 Memorandum Agreement B347878 and under Memorandum AgreementB503159; and the North Atlantic Treaty Organization (NATO) under contractCRG.971628 awarded to the University of California, Davis.

    We also acknowledge the support of ALSTOM Schilling Robotics andSGI. We thank the members of the NERSC/LBNL Visualization Group; theLBNL Applied Numerical Algorithms Group; the Visualization and Graph-ics Research Group at the Center for Image Processing and Integrated Com-puting (CIPIC) at the University of California, Davis, and the AG Graphis-che Datenverarbeitung und Computergeometrie at the University of Kaiser-slautern, Germany.

    666

  • (i) (ii) (iii) (iv)

    Figure 7: Images generated from “Bubble” data set (data set courtesy of Center for Computational Sciencesand Engineering (CCSE) [4], Ernest Orlando Lawrence Berkeley National Lab, Berkeley, California). (i)Initial time step at full resolution. (ii) Time step near end of simulation using only coarsest level of hierarchy.(iii) Time step near end of simulation using two levels of hierarchy. (iv) Time step near end of simulationusing all levels of hierarchy.

    (i) (ii) (iii)

    Figure 8: Different view of the “bubble” data set (data set courtesy of Center for Computational Sciencesand Engineering (CCSE) [4], Ernest Orlando Lawrence Berkeley National Laboratory, Berkeley, Califor-nia). (i) Coarsest level only (ii) Two levels (iii) Entire AMR hierarchy

    (i) (ii) (iii) (iv)

    Figure 9: Images generated from cosmology simulation (data set courtesy of Greg Bryan, MassachusettsInstitute of Technology, Theoretical Cosmology Group, Cambridge, Massachusetts). (i) Coarsest level only.(ii) Three levels. (iii) Three levels using opacity weights0.6, 0.8 and1 for levels0, 1 and2, respectively.(iv) Three levels using same opacity weights as in Figure 9(iii) and a saturation weight of value0.2 forlevels0 and1.

    666

  • References

    [1] Marsha Berger and Phillip Colella. Localadaptive mesh refinement for shock hydrody-namics. Journal of Computational Physics,82:64–84, May 1989. Lawrence LivermoreNational Laboratory, Technical Report No.UCRL-97196.

    [2] Marsha Berger and Joseph Oliger. Adaptivemesh refinement for hyperbolic partial differ-ential equations. Journal of ComputationalPhysics, 53:484–512, March 1984.

    [3] Greg L. Bryan. Fluids in the universe: Adap-tive mesh refinement in cosmology.Comput-ing in Science and Engineering, 1(2):46–53,March/April 1999.

    [4] Center for Computational Sciences and En-gineering (CCSE). WWW site:http://seesar.lbl.gov/ccse/ .

    [5] Markus H. Gross, Oliver G. Staadt, and RogerGatti. Efficient triangular surface approxima-tions using wavelets and quadtree data struc-tures. IEEE Transactions on Visualizationand Computer Graphics, 2(2):130–143, June1996.

    [6] Kwan-Liu Ma. Parallel rendering of 3D AMRdata on the SGI/Cray T3E. In:Proceedingsof Frontiers ’99 the Seventh Symposium onthe Frontiers of Massively Parallel Computa-tion, pages 138–145, IEEE Computer Soci-ety Press, Los Alamitos, California, February1999.

    [7] Kwan-Liu Ma and Thomas W. Crockett. Ascalable parallel cell-projection volume ren-dering algorithm for three-dimensional un-structured data. In: James Painter, GordonStoll, and Kwan-Liu Ma, editors,IEEE Par-allel Rendering Symposium, pages 95–104,IEEE Computer Society Press, Los Alamitos,California, November 1997.

    [8] Nelson L. Max. Sorting for polyhedroncompositing. In: Hans Hagen, HeinrichMüller, and Gregory M. Nielson, editors,Fo-cus on Scientific Visualization, pages 259–268. Springer-Verlag, New York, New York,1993.

    [9] Nelson L. Max. Optical models for volumerendering. IEEE Transactions on ComputerGraphics, 1(2):99–108, 1995.

    [10] Michael L. Norman, John M. Shalf, Stuart

    Levy, and Greg Daues. Diving deep: Datamanagement and visualization strategies foradaptive mesh refinement simulations.Com-puting in Science and Engineering, 1(4):36–47, July/August 1999.

    [11] Paolo Sabella. A rendering algorithm for vi-sualizing3D scalar fields. In: John Dill, edi-tor,Computer Graphics (SIGGRAPH ’88 Pro-ceedings), volume 22(4), pages 51–58, 1988.

    [12] Gunther H. Weber, Hans Hagen, BerndHamann, Kenneth I. Joy, Terry J. Ligocki,Kwan-Liu Ma, and John M. Shalf. Visu-alization of adaptive mesh refinement data.In: Robert F. Erbacher, Philip C. Chen,Jonathan C. Roberts, Craig M. Wittenbrink,and Matti Groehn, editors,Proceedings of theSPIE (Visual Data Exploration and AnalysisVIII, San Jose, CA, USA, Jan 22–23), volume4302, SPIE – The International Society forOptical Engineering, Bellingham, WA, Jan-uary 2001.

    [13] Gunther H. Weber, Oliver Kreylos, Terry J.Ligocki, John M. Shalf, Hans Hagen, BerndHamann, and Kenneth I. Joy. Extraction ofcrack-free isosurfaces from adaptive mesh re-finement data. In: David Ebert, Jean M.Favre, and Ronny Peikert, editors,Proceed-ings of the Joint EUROGRAPHICS and IEEETCVG Symposium on Visualization, Ascona,Switzerland, May 28–31, 2001, Springer Ver-lag, Wien, Austria, May 2001.

    [14] Craig M. Wittenbrink, Thomas Malzbender,and Michael E. Goss. Opacity-weightedcolor interpolation for volume sampling. In:William Lorensen and Roni Yagel, editors,Proceedings of the 1998 Symposium on Vol-ume Visualization (VOLVIS-98), pages 135–142, 177, ACM Press, New York, New York,October 19–20 1998.

    666