290 likes | 415 Views
Interactive Point-based Isosurface Exploration and High-quality Rendering. V I S. 2 0 0 6. Haitao Zhang Arie Kaufman Stony Brook University. Isosurface Exploration. Isosurface extraction Isosurface rendering Interactive rate Changing view Change isovalue High quality rendering.
E N D
Interactive Point-based Isosurface Exploration and High-quality Rendering VIS 2006 Haitao Zhang Arie Kaufman Stony Brook University
Isosurface Exploration • Isosurface extraction • Isosurface rendering • Interactive rate • Changing view • Change isovalue • High quality rendering
Existing 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)
Our 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)
Edge 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
Isovalue GPU Edge Data Structure • Span-triangle data structure for active edge query • Sort by min and max value (min<max) • Linear storage of edge info Base Array & Span Array Edge Info Array ...
Point 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:
Use center of active cell 26,044 active cell Edge splatting 26,042 active edge
Use center of active cell 368,296 active cell Edge splatting 370,122 active edge
Artifacts in Close View Fixed number of point (active edge) for a given isovale.
Edge Kernel Method • Subdividing active cell: sub-cell projection < 1 pixel
Edge Kernel Method • Subdividing active cell: sub-cell projection < 1 pixel
Edge Kernel Method • Subdividing active cell: sub-cell projection < 1 pixel
Edge 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
Edge Kernel • Edge kernel E(k) : 3k2 edges <c, s, t> • c: orientation (X-, Y-, or Z-oriented) • (s,t): local coordinate of edge endpoint Edge:< 0, 2/3, 1/3 > Intersection:
Edge Kernel Encoding & Rendering • E(k): 3k2 edges <c, s, t> <c, sk, tk> < 0, 2/3, 1/3 > <0, 2, 1> • E1E2 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
Inside an Active Cell Edge splatting Marching Cubes Edge kernel
Two Neighboring Active Cells Marching Cubes Edge kernel
Smooth Shading • Per-pixel shading [Hadwiger et al. 05] • Render point position to texture • Shading from volume gradient map
Results 3.59GHz PC with NVIDIA Quadro FX 4500 card
Rendering of Edge Splatting Isovalue=1405 (15.2 fps) 426,749 active edges 422,244 active cells Isovalue=840 (19.1 fps) 388,754 active edges 385,470 active cells
Rendering of Foot (isovalue=36) Edge Kernel 5.2 fps Edge Splatting 19.1 fps
Rendering of Foot (isovalue=70) Edge Splatting 96 fps Edge Kernel 3.1 fps
Head MRT Angiography Edge Kernel 0.8 fps Edge Splatting 47.5 fps
Head MRT Angiography Edge Splatting 123 fps Edge Kernel 3.1 fps
Head MRT Angiography Edge Splatting 86.5 fps Edge Kernel 4.2 fps
Conclusion • 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)
Future 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