Title: Interactive Pointbased Isosurface Exploration and Highquality Rendering
1Interactive Point-based Isosurface Exploration
and High-quality Rendering
V I S
2 0 0 6
- Haitao Zhang Arie Kaufman
- Stony Brook University
2Isosurface Exploration
- Isosurface extraction
- Isosurface rendering
- Interactive rate
- Changing view
- Change isovalue
- High quality rendering
3Existing Methods
- Marching Cubes Lorensen Cline 87
- Huge number of triangles within 1-pixel size
- Point-based methods
- Projection-based method Co et al. 03,04
- Accurate point position with expensive
projection operator - Active cell center Rymon-Lipinski et al. 04
- Fast but inaccurate point position
- Dividing Cubes Cline et al. 88
- High-quality but very expensive O(n3)
4Our Point-based Methods
- Active edge instead of active cell
- Easier to position points on the isosurface
- Incorporate together isosurface extraction
rendering - No overhead when changing isovalue
- Edge splatting
- Efficient with accurate point position
- Edge kernel method
- View-dependent subdivision O(n2)
5Edge Splatting
- Send active edge info to GPU
- Use span-triangle for active edge query
- Rymon-Lipinski et al. 04
- Generate point along active edge
- Intersection between active edge and isosurface
- Surface splatting for rendering
- Efficient rendering
6Edge Data Structure
- Span-triangle data structure for active edge
query - Sort by min and max value (minltmax)
- Linear storage of edge info
Base Array Span Array
Edge Info Array
...
7Point Generation
- Edge information
- Position endpoint with min value
- Orientation 6 possible directions
- Normal gradient at edge center
- Values min max value
Edge-Isosurface Intersection Computation
8Use center of active cell 26,044 active cell
Edge splatting 26,042 active edge
9Use center of active cell 368,296 active cell
Edge splatting 370,122 active edge
10Artifacts in Close View
- Fixed number of point (active edge) for a
given isovale.
11Edge Kernel Method
- Subdividing active cell
- sub-cell projection lt 1 pixel
12Edge Kernel Method
- Subdividing active cell
- sub-cell projection lt 1 pixel
13Edge Kernel Method
- Subdividing active cell
- sub-cell projection lt 1 pixel
14Edge Kernel Method
- Subdividing into k3 sub-cells
- At most one intersection for k sub-edges on same
line along X, Y or Z direction
k sub-edges
1 edge
k3 edges ? 3k2 edges
15Edge Kernel
- Edge kernel E(k) 3k2 edges ltc, s, tgt
- c orientation (X-, Y-, or Z-oriented)
- (s,t) local coordinate of edge endpoint
Edgelt 0, 2/3, 1/3 gt Intersection
16Edge Kernel Encoding Rendering
- E(k) 3k2 edges ltc, s, tgt ? ltc, sk, tkgt
- lt 0, 2/3, 1/3 gt ? lt0, 2, 1gt
- E1 E2 E3 E4 E5
- Store one kernel with largest possible size in
VBO E(1000) with 6MB data - Rendering
- CPU select kernel size k for each active cell
- GPU render first 3k2 points of the stored edge
kernel with 1-pixel size
17Inside an Active Cell
Edge splatting Marching Cubes Edge kernel
18Two Neighboring Active Cells
- Marching Cubes Edge kernel
19Smooth Shading
- Per-pixel shading Hadwiger et al. 05
- Render point position to texture
- Shading from volume gradient map
20Results
- 3.59GHz PC with NVIDIA Quadro FX 4500 card
21Rendering of Edge Splatting
Isovalue1405 (15.2 fps) 426,749 active
edges 422,244 active cells
Isovalue840 (19.1 fps) 388,754 active
edges 385,470 active cells
22Rendering of Foot (isovalue36)
Edge Kernel 5.2 fps
Edge Splatting 19.1 fps
23Rendering of Foot (isovalue70)
Edge Splatting 96 fps
Edge Kernel 3.1 fps
24Head MRT Angiography
Edge Kernel 0.8 fps
Edge Splatting 47.5 fps
25Head MRT Angiography
Edge Splatting 123 fps
Edge Kernel 3.1 fps
26Head MRT Angiography
Edge Splatting 86.5 fps
Edge Kernel 4.2 fps
27Conclusion
- Interactive isosurface exploration system with
high quality rendering - Edge splatting
- Accurate point position
- Integrating point generation in rendering
- Edge kernel method
- High quality rendering under close view
- 3D subdivision with complexity O(n2)
-
28Future Work
- Very large volume data
- Design hierarchical data structure
- Improve edge kernel method speed
- GPU implementation using Geometry Shader
- Deal with volume with anisotropic grid
29