Interactive Point-based Isosurface Exploration and High-quality Rendering

29
Interactive Poin t-based Isosurfac e Exploration and High-quality Rend ering Haitao Zhang Arie Kaufman Stony Brook University V I S 2 0 0 6

description

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. - PowerPoint PPT Presentation

Transcript of Interactive Point-based Isosurface Exploration and High-quality Rendering

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!