exploded views for volume data stefan bruckner, m. eduard gröller institute of computer graphics...
TRANSCRIPT
Exploded Views for Volume Data
Stefan Bruckner, M. Eduard Gröller
Institute of Computer Graphics and Algorithms
Vienna University of Technology
Stefan Bruckner 2
Motivation (1)
Volumetric data sets: information about interior and exterior of an objectFrequently focus objects are occluded by other structuresReduce opacity, cutaways: information is still removed, particularly for large focus objectsAlternative approach: split up context structures and displace themRely on human perception to “put pieces back together”
Stefan Bruckner 3
Motivation (2)
Plastinated anatomic sculpture (G. von Hagens, “Bodyworlds”)
Interactive exploded-view illustration
Stefan Bruckner 4
Related Work
[McGuffin et al. 2003] Interactive deformation widgets for browsing segmented volume data[Islam et al. 2004] Modeling splitting operations for volumetric data sets[Cornea et al. 2005] Curve-skeleton for partitioning volumes[Cornea et al. 2006] Feature-aligned volume manipulationOur contribution: fully interactive approach, automated part layout, view-dependent explosions, high-quality rendering
Stefan Bruckner 5
Overview (1)
FocusSelection
PartDefinition
LayoutGeneration
Rendering
Stefan Bruckner 6
Focus Selection (1)
Approximate specification of focus object in dataset
Via transfer function, segmentation, volume painting
Degree-of-interest function specifies importance of each voxel [Viola et al. 2004]
Can be refined after an initial exploded view has been generated
All voxels with nonzero degree-of-interest are called selection, rest is background
Stefan Bruckner 7
Focus Selection (2)
selection
background
Stefan Bruckner 8
Overview (2)
FocusSelection
PartDefinition
LayoutGeneration
Rendering
Stefan Bruckner 9
Part Definition (1)
Partition of the background object into several non-overlapping regions
Could be done automatically (curve skeleton, symmetry detection)
Simple interactive approach: user can split volume along arbitrary planes
Different tools: axis splitter, depth splitter, line splitter
Splitting can be refined/modified once the view is exploded
Stefan Bruckner 10
Part Definition (2)
part
Stefan Bruckner 11
Overview (3)
FocusSelection
PartDefinition
LayoutGeneration
Rendering
Stefan Bruckner 12
Layout Generation (1)
Displacing each part manually is cumbersome and time-consuming
Would have to be adjusted whenever the viewpoint changes
Several potentially conflicting layout requirements
We use a three-dimensional force-directed layout approach for part arrangement
Different forces represent our layout requirements
Stefan Bruckner 13
Layout Generation (2)
Stefan Bruckner 14
Explosion Force (1)
Part arrangement should depend on the shape of the selection object
The explosion force moves the parts away from the selection object
A set of points (explosion points) within the selection object is generated
Each point exhibits a repulsive force on all parts
Stefan Bruckner 15
Explosion Force (2)
For each part Pi
For each explosion point ej
Find point p on Pi closest to ej
Apply Fe to Pi at point p with r = p - ej
reec r
reF
Stefan Bruckner 16
Viewing Force (1)
Occlusions of the selection object should be prevented for every viewpoint
The explosion force does not take the viewpoint into account
The viewing force moves parts away from the line of sight
Modeled after the graph distortion viewing technique by [Carpendale et al. 1996]
Stefan Bruckner 17
Viewing Force (2)
For each part Pi
For each explosion point ej
Find point p along ray to ej closest to the center of Pi
Apply Fv to center of Pi with r = center(Pi) - p
vv
c rF
r r
Stefan Bruckner 18
Spacing Force (1)
Parts should move apart in order to prevent clustering
Spacing force causes parts to repel each other
Each part exhibits a spacing force on all other parts
Stefan Bruckner 19
Spacing Force (2)
For each part Pi
For each part Pj
Apply Fs to Pi with r = center(Pi) - center(Pj)
2ssc r
rrF
Stefan Bruckner 20
Return Force (1)
All previous forces move parts away from their original position
To reach an equilibrium, we need a force which works opposite to the other ones
The return force pulls parts back to their initial location
Stefan Bruckner 21
Return Force (2)
For each part Pi
For each vertex vj of Pi
Apply Fr to Pi with r being the vector from the current position of vj to its original location
lnr rcFr
rr
Stefan Bruckner 22
Degree-of-Explosion
For ease of use, we have one global degree-of-explosion parameter
The degree-of-explosion controls how “exploded” the view should be
This parameters scales the normalized explosion, viewing, and spacing forces
For additional control, the contribution of each force to the total force can be adjusted
Stefan Bruckner 23
Constraints (1)
Add additional joints to constrain part movement, e.g. based on semantics
Different joints: hinge joint, slider joint, ball joint, etc.
Adjust mass of parts: heavier parts will move less
Special case: infinite mass means part will not be displaced (useful for “breakaway” views)
Stefan Bruckner 24
Constraints (2)
unconstrainedexplosion
parts connected by slider joint, left part is static
Stefan Bruckner 25
Overview (4)
FocusSelection
PartDefinition
LayoutGeneration
Rendering
Stefan Bruckner 26
Rendering
Background object divided into multiple non-intersecting parts
Each of the parts has its own transformation matrix
Selection object may intersect one or several parts
Additional bounding geometry (e.g. octree) for background and selection (used for empty-space skipping)
Stefan Bruckner 27
Algorithm
Process parts in visibility order (GPU-based visibility sort is performed)
Use Z-Buffer to compute intersections between part geometry and bounding geometry
Store the resulting entry & exit points + depth for background and selection in 2 sets of off-screen buffers
Use buffers in fragment program to perform raycasting for background and selection
Stefan Bruckner 28
Example
selection entry and
exit buffers
Stefan Bruckner 29
Example
selection entry and
exit buffers
background entry and
exit buffers
Stefan Bruckner 30
Example
Stefan Bruckner 31
Raycasting
Do raycasting for selection and background for one part in a single fragment program
Two intervals per ray, one for selection and one for background
selection
background
Need to sample both volumes and do multi-volume compositing
Stefan Bruckner 32
Performance
Expected bad performance due to dynamic branching in fragment program
Does not seem to be the case, most probably due to coherency in branching patterns
Some performance penalties due to usage of OpenGL FBOs – might disappear in the future
Comparison with reference raycaster – same shading and compositing routines, but no handling of exploded views
Stefan Bruckner 33
PerformanceGPU: GeForce 6800 GT Image: 512 x 512 Volume: 256 x 256 x 166
Stefan Bruckner 34
Demonstration
Stefan Bruckner 35
Conclusions and Future Work
Automated approach for interactive generation of exploded view illustrations
Uses a flexible and extensible force-based layout approach
Fast high-quality GPU-based renderer using raycasting
Future: automatic part generation (curve skeleton, symmetry detection)
Pre-generated explosion setups, use template matching to adjust to different datasets
Thank you for your attention! Questions?
http://www.volumeshop.org