220 likes | 374 Views
Using Difference Intervals for Time-Varying Isosurface Visualization. Kenneth W. Waters Christopher S. Co Kenneth I. Joy Institute for Data Analysis and Visualization Department of Computer Science University of California, Davis. Goals.
E N D
Using Difference Intervals for Time-Varying Isosurface Visualization Kenneth W. Waters Christopher S. Co Kenneth I. Joy Institute for Data Analysis and Visualization Department of Computer Science University of California, Davis
Goals • Target out-of-core time-varying isosurface extraction • Interesting data sets are many times the size of core memory • Extend an existing out-of-core value space isosurface extraction method to work with time-varying data • Reduces development effort • Trade a long pre-processing step for fast visualization of all isosurfaces within a data set • Trade increased disk space usage for decreased disk traffic • Disk space is cheap • Disk access is very slow
Terms • “Full Extraction” is the determination of which cells are active for a particular isosurface from a particular time step • This is provided to us by the underlying non time-varying isosurface extraction algorithm • “Incremental Extraction” is the process of extracting only the differences between an isosurface in one time step and the same isosurface in the next time step. • This work focuses on adding incremental extraction using the machinery of the underlying extraction algorithm • If you scalar volume data is incoherent the difference between two successive isosurfaces may be larger than the isosurfaces themselves, in this case our method is slower than the naive approach.
Span Space Review • Developed by Livnat et. al. • 2-D virtual space where cells are represented by points located by their minimum and maximum intensity values • Isosurface extraction is reduced to finding which points lie within the rectangle corresponding to the isovalue • Each point in span space represents an interval of intensity values
1.6 1.1 1.2 0.9 0.8 1.2 0.7 Cell Movement
Cell Movement 1.1 1.0 1.0 0.9 0.7 0.4 0.5
Difference Intervals • These two intervals break the scalar value space into five intervals. • Suppose you have the complete isosurface for a particular isovalue for the first time step
Difference Intervals • Suppose you had the isosurface, with isovalue q <= a. • This cell is not active in either time step • No work needs to be done for this cell to transform the isosurface from the first time step to the second time step
Difference Intervals - Add • Suppose you had the isosurface, with isovalue a < q <= b. • This cell is not active in the first time step but is active in the second time step • We need to add this cell to the isosurface to transform from the first time step to the second time step
Difference Intervals • Suppose you had the isosurface, with isovalue b < q < c. • This cell is active in both the first time step and the second time step • No work needs to be done for this cell to transform the isosurface from the first time step to the second time step • This is where we save time and disk traffic • A full extraction of second time step would re-extract this interval, we can avoid reading this interval from disk
Difference Intervals - Remove • Suppose you had the isosurface, with isovalue c <= q < d. • This cell is active in the first time step but is not active in the second time step • We need to remove this cell from the isosurface to transform from the first time step to the second time step
Difference Intervals • Suppose you had the isosurface, with isovalue q >= d. • Identical to the first case • This cell is not active in either the first time step or the second time step • No work needs to be done for this cell to transform the isosurface from the first time step to the second time step
Difference Intervals • We now have two intervals which describe when work needs to be done to transform our isosurface • These two intervals can be inserted as cells into our existing extraction algorithm • There are 11 different ways a cell can move in the span space • The two difference intervals are always smaller than the intervals for the original cell • The two difference intervals are always disjoint
Using Difference Intervals - Preprocessing • Between every two time steps compute the set of difference intervals which can be used to transform the isosurface for any isovalue • Insert these difference intervals into our existing out-of-core isosurface extractor, there will be a different instance of the extractor for each pair of time steps. • Label these structures Dn • Create “key frame” extraction structures, use the existing out-of-core isosurface extractor on select “key frames” as if they where non time-varying data sets • Label these structures kn • We chose every 4th time step
Using Difference Intervals - Extraction • To view the isosurface for isovalue q, progressing through all of the time steps • Extract the isosurface for the first time step, using k0 • Extract the difference intervals for value q, from D0 • Apply the extracted add and remove operations to the isosurface for the first time step, to extract the isosurface for the second time step • Repeat with the difference intervals from D1 to get to the isosurface for the third time step, etc. • To change the isovalue or seek to a different time step • Do a full extraction from the nearest key frame • Apply difference intervals until your at the desired time step
Preview Rendering • We only load data from disk when a cell becomes active or inactive • We have no information about the intensity values for an active cell in a particular time step • We cannot use a traditional rendering method to draw the isosurface • Render all the active cells as screen aligned points. • Using the depth buffer approximate normals and lighting in screen space • If the user pauses to take a close look at a particular time step, load the full data for that time step off disk, for higher quality rendering
Compression • A generalized versions of the compression provided by the Temporal Hierarchical Index Tree [Shen 98] • Compress each cell independently • If a cell moves less than e in span space over several time steps “move” that cell to its extreme value for all of those time steps • Makes the cell stationary for several time steps, before jumping a long (> e) distance in span space • Produces only false positives • If a cell doesn’t move in span space between two frames, it produces no difference intervals • Creates fewer but wider difference intervals
Data Sets • Tested using two datasets • 5jet • 128 x 128 x 128 • 1,000 time steps • Float data • 7.81 GiB • Argon Bubble • 640 x 256 x 256 • 131 time steps • Float data • 20.4 GiB
Build Time and Disk Usage • 5jet • e = 50 • 2.94% false positive rate • 96 minute differential span space generation time • 11,574 MiB for difference intervals, 6,000 MiB for key frames • 46.8 GiB uncompressed difference interval size • Argon Bubble • e = 0.025 • 3.34% false positive rate • 83 minute differential span space generation time • 7,496 MiB for difference intervals, 20,948 MiB for key frames • 121.8 GiB uncompressed difference interval size
Conclusion • Extended any existing value-spaced out-of-core isosurface extraction algorithm to work on time-varying data by generating difference intervals • Difference intervals allow us to skip extracting cells which remain active from time step to time step • Reduces disk traffic • Applied compression to the data before difference interval generation • Reduces disk space usage • Rendered the isosurface with only the active cell positions • Eliminates the need to fetch volume data from disk for rendering • Extraction for the 5jet data set averaged 200ms. • Extraction for the larger data set was not real-time, but the results where promising.