Upload
alyssa-boyle
View
214
Download
0
Tags:
Embed Size (px)
Citation preview
Interactive Point-based Isosurface Exploration and High-quality Rendering
Interactive Point-based Isosurface Exploration and High-quality Rendering
Haitao Zhang Arie Kaufman
Stony Brook University
V I S2 0 0 6
Isosurface ExplorationIsosurface Exploration
Isosurface extraction Isosurface rendering
Interactive rate• Changing view• Change isovalue
High quality rendering
Existing MethodsExisting 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 MethodsOur 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 SplattingEdge 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
Edge Data StructureEdge Data Structure Span-triangle data structure for active edge query
• Sort by min and max value (min<max)• Linear storage of edge info
...
Isovalue
GPU
Edge Info Array
Base Array & Span Array
Point GenerationPoint Generation
Edge information• Position : endpoint with min value• Orientation : 6 possible directions• Normal : gradient at edge center• Values : min & max value
][ norientatioDIRminvaluemaxvalue
minvalueisovaluepositionpoint
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 ViewArtifacts in Close View
Fixed number of point (active edge) for a given isovale.
Edge Kernel MethodEdge Kernel Method
Subdividing active cell: sub-cell projection < 1 pixel
Edge Kernel MethodEdge Kernel Method
Subdividing active cell: sub-cell projection < 1 pixel
Edge Kernel MethodEdge Kernel Method
Subdividing active cell: sub-cell projection < 1 pixel
Edge Kernel MethodEdge 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 KernelEdge 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 & RenderingEdge Kernel Encoding & Rendering
E(k): 3k2 edges <c, s, t> <c, sk, tk>
< 0, 2/3, 1/3 > <0, 2, 1> 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
Edge splatting Marching Cubes Edge kernel
Inside an Active CellInside an Active Cell
Two Neighboring Active CellsTwo Neighboring Active Cells
Marching Cubes Edge kernel
Smooth ShadingSmooth Shading Per-pixel shading [Hadwiger et al. 05]
• Render point position to texture• Shading from volume gradient map
ResultsResults
3.59GHz PC with NVIDIA Quadro FX 4500 card
Volume Data
Size
Isovalue
Range
# Cell
# Edge
Creation Time (s)
CT Head 256x256x256
(12-bit) 200-4095 5,444,366
14,831,4036.4
Foot
128x128x128(8-bit) 0-255 658,399
1,069,8040.4
Head MRT Angiography 416x512x112
(10-bit)20-1023
2,063,817
2,954,3843.5
Rendering of Edge SplattingRendering of Edge Splatting
Isovalue=840 (19.1 fps)
388,754 active edges
385,470 active cells
Isovalue=1405 (15.2 fps)
426,749 active edges
422,244 active cells
Rendering of Foot (isovalue=36)Rendering of Foot (isovalue=36)
Edge Splatting
19.1 fps
Edge Kernel
5.2 fps
Rendering of Foot (isovalue=70)Rendering of Foot (isovalue=70)
Edge Splatting
96 fps
Edge Kernel
3.1 fps
Head MRT AngiographyHead MRT Angiography
Edge Splatting 47.5 fps Edge Kernel 0.8 fps
Head MRT AngiographyHead MRT Angiography
Edge Splatting 123 fps Edge Kernel 3.1 fps
Head MRT AngiographyHead MRT Angiography
Edge Splatting 86.5 fps Edge Kernel 4.2 fps
ConclusionConclusion
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 WorkFuture 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
Thank you!